STM系统应用设计

可视化的代码跟踪调试。

上一次在终端使用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找到一个负载
在这里插入图片描述

连接引线
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值