本文主要是介绍STM系统应用设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
STM系统应用设计
- 可视化的代码跟踪调试。
- Proteus仿真运行stm32程序
可视化的代码跟踪调试。
上一次在终端使用gdb调试了程序,这次采用可视化的软件来调试
可视化前端 Kdbg。 参考网址
可视化前端 Insight。有点older,不推荐。参考网址
基于跨平台多类型代码编辑器VScode。 强烈推荐。
参考网址一.
参考网址二
参考网址三
示例代码:
#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);
}
这个程序是输出倒序数,编译没有问题,但是输入100的时候,输出为010,下面开始调试看看是哪里出现了问题
设置断点
F5调试并输入100:
进入了函数,继续F5调试:
连续F5了三次,这个循环已经循环了一次,应该输出了0
继续F5:
F5后发现,程序没有再次经过
printf("%d",iNum % 10);iNum = iNum /10;
程序推出了循环,在看看上一次循环完成后,iNum已经除10取余了,iNum=10;现在iNum>10不成立,循环终止,并输出iNum;所以结果输出了010。
那么问题很明显了,循环判断语句iNum>10不适用,我们将它改为iNum>=10就好了。
Proteus仿真运行stm32程序
用Proteus建立一个新的工程
点击P输入LED-“你想要的颜色”
比如输入LED-YELLOW找到黄色的灯
输入RES找到一个负载
连接引线
这篇关于STM系统应用设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!