可视化的代码跟踪调试与Proteus仿真运行stm32程序
可视化的代码跟踪调试
有以下三种方法
1、可视化前端 Kdbg。参考网址:链接.
2、可视化前端 Insight。有点older,不推荐。参考网址:链接.
3、 基于跨平台多类型代码编辑器VScode,强烈推荐。参考网址:
链接1.
链接2.
l链接3.
我选择的是方法三
在ubuntu18.04版本安装vscode
1.进入ubuntu桌面版系统,点击图片中指向的图标(软件中心)。
2.在软件中心中,搜索Visual Studio Code
3.在页面中就可以直接选择安装
4.即可进入vscode
关于在ubuntu中用vscode编译调试C\C++
(注意以上过程请确保在ubuntu里面安装了c++编译器,和vscode)
1.安装vscode的C\C++插件。
(1)在vscode中安装C++的插件,按ctrl+p调出命令行,在上面输入ext install cpptools,或在也可以只输入ext install然后按空格
可以三个都安装了,接下来就是漫长的等待安装过程(因为网络的问题所以漫长)。安装成功后可能会有提示要重启vscode,重启后就可以了。
(2)就是配置调试和编译文件,launch.json和task.json。
首先我们在安装好了插件之后,就可以在vscode打开我们的源码文件了并且调试了,不过要注意vscode要调试的话只能打开包含源码文件的文件夹,不能打开单个文件调试。(我新建了一个main.cpp放在了主目录中)
在vscode中打开刚才创建的main.cpp文件。
点击左边三角形的图标,进行运行,然后就自带生成出来一个.json文件,
2.配置launch.json和task.json这两个文件
想要调试源代码文件,我们需要创建或者生成tasks.json和launch.json文件,tasks.json文件帮助我们自动在终端中输入gcc指令,编译输出可运行文件的,而launch.json文件则是启动gdb程序进行调试的。
1.创建文件夹并进入该文件夹内部
mkdir test
cd test
2.编写代码
创建并编写test.c
代码块:
#include <stdio.h>
void ShowRevertNum(int iNum)
{
while (iNum > 10)
{
printf("%d", iNum % 10);
iNum = iNum / 10;
}
printf("%d\n", iNum);
}
int main(void)
{
int iNum;
printf("Please input a number :");
scanf("%d", &iNum);
printf("After revert : ");
ShowRevertNum(iNum);
return 0;
}
3.选择C++(GDB/LLDB)插件之后再根据提示,选择“g++ -生成和调试活动文件”,运行结束后VSCode会自动生成适用于gcc编译的launch.json文件。
4.点击工具栏上的Terminal(终端),选择Configure Tasks(配置任务) -> C/C++:gcc build active file,VSCode会自动生成适用于gcc编译的tasks.json文件保存后继续进行编译,需要在第九行后添加语句:
"${fileDirname}/test.c",
3.编译调试C++程序
注意:
command就是调用的控制台命令;
args就是命令行参数了,-g参数是必须的,否则到时候没有调试信息,vscode会无法设置断点。
配置好后在test.c文件界面,我们就可以先按ctrl+shift+B先编译,再按上方调试工具栏的图标绿色箭头,再点击终端:
发现输入为“100”时,原则上应该输出“001”,但是现在输出的是“010”,说明代码出现问题,设置断点开始调试。
(设置点击语句前面来设置断点)
此时点击下图箭头所指的图标开始向下调试:
调试后发现错误,在当iNum=10时,程序会跳出循环,对此进行修改,将循环条件改为:
while (iNum >= 10)
重新进行调试,并再次输入100。
成功编译!!!!!
proteus中运行stm32程序
(实验keil和proteus所用文件工程百度网盘链接,提取码为0f7c ,以下为链接:所用keil和proteus文件工程) 点这里.
1.创建proteus新工程文件
1.点击创建新工程,输入工程名、安装路径。
2.选择从选中的模板中创建原理图(DEFAULT)。
3.选择不创建PCB布版设计。
4.选择创建固件项目,其中:系列选择Cortex-M3,Controller选择STM32F103R6,点击下一步,然后创建成功。
2.配置实验所需原件
1.创建项目完成后就如下图所示,显示出自己所选的型号,STM32F103R6,系统并以配置好电源。
2.添加实验所需灯,点击左边P,然后进入下图,在关键字中输入LED-YELLOW,并点击确认选中。
3.添加实验所需电阻,点击左边P,然后进入下图,在关键字中输入RES,并点击确认选中。
4.添加完灯和电阻后屏幕会如下图所示。
5.设置电阻值为50
6.链接器件,如图
3.keil5中编写程序
进入keil 5中选择Option for Target,然后勾选Create HEX file,生成hex文件。
4.导入hex文件进入stm32芯片中
配置Crystal Frequency改成8M(设置晶振为8M)。
5.开始仿真
仿真结果如下:
(该程序是8个led灯依次闪烁,然后全部闪烁一次,再全部熄灭,重复上述现象)
Altium Designer绘制STM32最小系统原理图
安装软件
Altium_Designer_Beta_18.1.7版本
查找STM32最小系统原理图样式
进入浏览器,搜索该网址 点这里.
进入后,选择查看产品,点击上方选择栏,点击选择3×3的图标
然后选择”Microcontrollers & Microprocessors”
再次点击选择"STM32-bits Arm cortex MCUs"
之后在左侧菜单栏选择"STM32 F1series"
再次选择"STM32F103"
选择"STM32F103C8"
选择下载“STM32F103C8"的数据表”Download datasheet“
之后进入查看文档,查找所需要的STM32最小系统原理图
创建stm32最小系统元件库
详细步骤可看视频:视频.
(以下为部分细节)
注意封装参数
最后finfish,显示如下:
放置引脚后的原理图显示如下
引脚放置时需注意,点击引脚,空格键翻转,摆放到合适位置后左键点击固定位置
封装步骤:
点这里找到刚才画出的2D图片文件
找到文件如图所示
封装成功
绘制stm32最小系统原理图
再新建工程,右键[Schematic]建立原理图绘制界面
放置元器件,右方点击Libraries,再点击installed,即可把自己创建的库加进来
双击放置一个芯片
放置线将各个引脚延长
连接在VBAT1端口之后,修改名称为VOUR如下
此时注意,查看添加网络端口时必须确认有4个点才能算是连上,(查看放大图像crtl+鼠标滚轮)如下:
添加VCC,电压为3.3V
添加上GND
再在官方库里搜索添加RES,10kΩ
芯片如图
再在官方库里搜索添加添加元器件,放进电路中即可;
由于在AD自带的官方库里没有USB以及AM1107(稳压模块会用到),因此仿造前文绘制元器件的办法(用系统自带的封装即可),再绘制USB、AM1107放置在自己创建的库里,步骤与前文一致,不再赘述,如下:
放置所有元器件:
参考来源:
链接.
总结:
Altium Designer软件绘制原理图比较复杂,需要多了解相关的操作