欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STM32嵌入式应用系统设计

程序员文章站 2022-07-03 17:42:34
...

可视化的代码跟踪调试

安装vscode

1.在ubuntu桌面找到应用中心,下载vscode
STM32嵌入式应用系统设计

安装完成
STM32嵌入式应用系统设计
汉化
STM32嵌入式应用系统设计
STM32嵌入式应用系统设计

在ubuntu中用vscode编译调试C\C++

1.安装vscode的C\C++插件

1.在vscode中安装C++的插件,按ctrl+p调出命令行,在上面输入ext install cpptools,或在也可以只输入ext install然后按空格,
STM32嵌入式应用系统设计
等待安装完成

2配置launch.json和task.json这两个文件

首先我们在安装好了插件之后,就可以在vscode打开我们的源码文件了并且调试了,不过要注意vscode要调试的话只能打开包含源码文件的文件夹,不能打开单个文件调试。(我新建了一个main.cpp放在了C++test文件夹中)
STM32嵌入式应用系统设计
选择C++(GDB/LLDB)插件之后再根据提示,选择“g++ -生成和调试活动文件”,运行结束后VSCode会自动生成适用于gcc编译的launch.json文件。
STM32嵌入式应用系统设计

STM32嵌入式应用系统设计
STM32嵌入式应用系统设计

点击工具栏上的Terminal(终端),选择Configure Tasks(配置任务)VSCode会自动生成适用于gcc编译的tasks.json文件保存后继续进行编译,需要在第九行后添加语句:
STM32嵌入式应用系统设计

"${fileDirname}/test.c",

配置launch.json和task.json完成
STM32嵌入式应用系统设计

3.调试代码

command就是调用的控制台命令;
args就是命令行参数了,-g参数是必须的,否则到时候没有调试信息,vscode会无法设置断点。
配置好后在test.c文件界面,我们就可以先按ctrl+shift+B先编译,再按上方调试工具栏的图标绿色箭头,再点击终端:
STM32嵌入式应用系统设计

STM32嵌入式应用系统设计

程序编译成功,输出hello world,没有出错

Proteus仿真STM32流水灯

创建工程

1.点击创建新工程,输入工程名、安装路径。
2.选择从选中的模板中创建原理图(DEFAULT)。
3.选择不创建PCB布版设计。
4.选择创建固件项目,其中:系列选择Cortex-M3,Controller选择STM32F103R6,点击下一步,然后创建成功。
STM32嵌入式应用系统设计

二、配置实验所需原件

1.创建项目完成后就如下图所示,显示出自己所选的型号,STM32F103R6,系统并以配置好电源。
STM32嵌入式应用系统设计

2.添加实验所需灯,点击左边P,然后进入下图,在关键字中输入LED-YELLOW,并点击确认选中。
STM32嵌入式应用系统设计

3.添加实验所需电阻,点击左边P,然后进入下图,在关键字中输入RES,并点击确认选中。
4.添加完灯和电阻后屏幕会如下图所示。
5.将灯和电阻分别添加到原理图,然后右键电阻,编辑电阻,设置其阻值为50(默认阻值过大,不更换led电流达不到,亮不起来)。
STM32嵌入式应用系统设计

6.配置好以上,然后连接电路如下,我们选用C0-C7端口,总共8个,如下图所示。
STM32嵌入式应用系统设计

三、进入keil 5中选择Option for Target,然后勾选Create HEX file,生成hex文件。

STM32嵌入式应用系统设计

2.程序代码如下(程序实现要求:8个led灯依次闪烁,然后8个灯同时闪烁8次,依次重复)
STM32嵌入式应用系统设计

四、配置芯片

1.双击stm32f103r6芯片,然后进入Program File 选择刚才生成的hex文件,并配置Crystal Frequency改成8M(设置晶振为8M)。添加hex文件

STM32嵌入式应用系统设计

五、实验结果

STM32嵌入式应用系统设计

STM32嵌入式应用系统设计
STM32嵌入式应用系统设计
STM32嵌入式应用系统设计

STM32嵌入式应用系统设计

实验总结

通过这次实验,我学习到了很多。
参考链接:https://blog.csdn.net/weixin_46136508/article/details/105846011?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf

https://www.cnblogs.com/lwp-king666/p/10513382.html

https://blog.csdn.net/q932104843/article/details/51924900

https://www.cnblogs.com/maxiaowei0216/p/12616087.html