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

文章讲述了作者在使用Keil编程STM32开发板时遇到的问题,烧录成功但LED灯未亮,debug时反复循环。经过检查,发现问题可能在于USB线的使用不当,烧录程序可能占用了一部分原本用于供电的引脚。解决方法是更换USB线或确保在烧录后断开再连接电源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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线起到的是充电的作用,应该是烧制程序的引脚占用了执行程序通电的引脚,所以在假设成立的情况下推测,给开发板充上电源应该都可以解决,开发板本身就有一个正牌的充电口,大家可以插上试试(我不测试验证是因为找不到充电器惹,欢迎验证后回复)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值