keil程序烧录到板子成功,但是没有实验现象,debug时反复循环几句话问题的解决

keil程序烧录到板子成功,但是没有实验现象,debug时反复循环几句话问题的解决



问题描述

  1. 参照stm32的pdf学习过程中,已完成用stlink连接好板子与计算机,蓝色电源灯亮起。
    在这里插入图片描述
  2. 打开keil中示例的走马灯项目,编译并成功下载烧录到主板中,按照书中描述的现象,此时应该交替亮起led灯,但亮起失败。
  3. 使用debug功能,不断的在循环之中,将代码停下后逐步运行,在汇编窗口发现程序反复在三句话中循环执行,程序卡在这无法执行。
    在这里插入图片描述

设备及其他简介

若部分设备型号与本文不同,但面对的情况相同,可以适当依照本文尝试解决。

开发板:stm32zet6
仿真器:stlink
IDE:keil mdk5.18

解决过程及思路

理论上来说,程序的烧录过程并没有任何问题,所以个人认为问题不是出现在软件上,而是硬件上。在debug的过程中,有时在命令行窗口上是可以看到很多cannot access memory。所以我一开始还以为是没有存储卡什么的(,有些换晶振的帖子看了感觉又有点舍不得,在反复折磨boot01上的跳线帽无果之后,愤怒之下将stlink直接给拔了,发现它的usb线另一端可以插在开发板上,就插上去了。

是的,没装stlink那个盒子,直接用那个usb线插板子上了

第一时间当然是没有反应,但好巧不巧,我这乱动手的毛病,顺手把电源按了,于是跑马灯就这样跑了起来,我一愣,马上考虑查看现在debug的情况,在keil上的debug直接给你结束了,告诉你连接stlink中断,也就是说,板子现在是在跑之前烧制在里面的程序

结合情况推理:如果有两根这个线,就可以一根连接在usb232那个口子,另一根按照之前连接在stlink来负责烧程序和debug

纳尼,这又是什么原理?我百思不得其解,如果是电源上的需求,理论上来说stlink不是也可以给开发板充电吗?毕竟我们cpu灯还在歪脖子树上亮着呢,又或者是usb232串口有什么特殊性?

  • 进一步测试,说干就干

将线连接到usb_slave紧挨着的另一个串口。(考虑有人版本不一样,给演示一下图,图来自正点原子的pdf资料,侵权请联系删除,大家请勿商业使用),经测试与usb232在这里干的事没有任何区别。
在这里插入图片描述

结论及相关推测

  1. 嫌麻烦就再找根线,连上usb口;不嫌麻烦就烧制再拔线到usb口查看演示效果,就是不能debug了有点伤。
  2. 记得按下电源开关。
  3. 推测这里usb线起到的是充电的作用,应该是烧制程序的引脚占用了执行程序通电的引脚,所以在假设成立的情况下推测,给开发板充上电源应该都可以解决,开发板本身就有一个正牌的充电口,大家可以插上试试(我不测试验证是因为找不到充电器惹,欢迎验证后回复)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Keil5软件debug程序没有箭头是因为没有设置程序断点或者程序没有编译成功。在使用Keil5软件进行程序调试,我们需要首先设置断点,即在程序中选择一个需要暂停执行的位置,并在该位置上打上断点标记。连续按下F9键调用编译和烧录操作后,程序会在设置的断点处停止执行,并且会在Keil5软件的debug窗口中显示一个箭头,指示当前执行到的位置。如果debug窗口中没有箭头显示,有几种可能的原因。 首先,可能是因为没有设置断点。在仅有一个main函数的简单程序中,程序会从开头一直执行到结尾,也就是没有明确的中断点。在这种情况下,可以在main函数起始位置或需要调试的代码处右键点击,选择"Toggle Breakpoint"(设置断点)来创建断点。 其次,如果程序没有编译成功,可能会导致debug窗口中没有箭头显示。编译错误可能由于语法错误、库文件缺失等原因引起。在这种情况下,可以查看build窗口或者messages窗口来查看编译错误信息。 除此之外,还有可能是Keil5软件本身的问题。在这种情况下,可以尝试重新安装或升级软件版本来解决问题。 综上所述,Keil5软件debug程序没有箭头可能是没有设置断点或者程序没有编译成功所导致的。通过设置断点和解决编译错误可以解决这个问题,同也可以考虑更新或修复软件来解决可能的软件问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值