ST意法半导体
直播中

绝代双骄

13年用户 1166经验值
私信 关注
[问答]

STM32F103RBT6开发板每次程序都得重新烧录才能正常运行,如何解决?

每次板子都得重新烧录程序才能运行起来。第一次烧录完程序后,能正常运行,等我把开关断开再打开,程序就基本运行不起来。有很低的概率能运行起来,但是得灯很长一段时间。还出现了一个问题,我发现我把手放到开发板的背面,串口调试助手上直接打印了一堆空数据,只显示的我在串口调试助手勾选的显示时间,不知道是不是开发板坏了。我换了别的开发板每这个问题。还有一个问题,就是我之前烧了一个挺大的程序,我编译完看了看KEIL5下面的那几个RA RO等占的字节数,占了有30K个字节,我那天下午再烧录我的程序就出问题了,发现板子插烧录器那个USB接口旁边有点微热,我觉得是正常,但就出现了我刚开始描述的问题,那天是烧录程序后直接就不给运行,怎么烧录都运行不起来,能烧进去。突然我手碰了下OLED显示屏,整个屏幕都是热的,还有点烫,我就赶紧拔了,不知道是不是因为我的取字模取的数据太多了,烧的程序太大了,还是因为板子出问题了。后面是能烧进程序,但断开开关再打开就不行了,除非重新烧录。换了小的程序也是这个问题。  希望大佬们,能给我提出点思路,先谢谢大家了。我描述的太多了,可这个问题我苦恼了2天了。



回帖(2)

朱寅竹

2025-3-11 16:24:53
板子上的部件明显发热肯定不对了,多半是硬件有问题了。

可以对照板子的原理图,从电源线路量测,看看哪一部分出了问题。

不解决硬件问题,板子是没法用的。
举报

马刺牛逼

2025-3-12 17:45:01

根据你描述的情况,问题可能涉及多个方面,包括硬件、软件和烧录过程。以下是一些可能的原因和解决方法:


1. 电源问题



  • 现象:程序在第一次烧录后能正常运行,但断电后再上电时无法正常运行。

  • 可能原因:电源不稳定或电源电路有问题,导致MCU无法正常启动。

  • 解决方法

    • 检查电源电压是否稳定,确保在3.3V左右。

    • 检查电源滤波电容是否正常工作,尤其是靠近MCU的电容。

    • 使用示波器观察电源上电时的波形,确保没有电压跌落或波动。



2. 复位电路问题



  • 现象:程序无法正常启动,或者需要很长时间才能启动。

  • 可能原因:复位电路设计不当,导致MCU复位不稳定。

  • 解决方法

    • 检查复位电路,确保复位引脚(NRST)在上电时能够正确复位。

    • 检查复位电容和电阻的值是否合适,通常复位电容为0.1µF,电阻为10kΩ。

    • 使用示波器观察复位引脚的波形,确保复位信号在上电时能够正确拉低并保持一段时间。



3. 晶振问题



  • 现象:程序无法正常启动,或者需要很长时间才能启动。

  • 可能原因:外部晶振电路不稳定,导致MCU无法正常起振。

  • 解决方法

    • 检查晶振电路,确保晶振和负载电容的焊接良好。

    • 使用示波器观察晶振引脚波形,确保晶振能够正常起振。

    • 如果晶振电路有问题,可以尝试使用内部RC振荡器作为系统时钟源,看看问题是否依然存在。



4. 烧录器或烧录方式问题



  • 现象:烧录后程序无法正常运行,或者需要重新烧录才能运行。

  • 可能原因:烧录器或烧录方式有问题,导致程序烧录不完整或烧录后无法正确启动。

  • 解决方法

    • 确保烧录器连接正常,烧录过程中没有出现错误。

    • 检查烧录配置,确保烧录时选择了正确的芯片型号和烧录选项。

    • 尝试使用不同的烧录器或烧录软件,看看问题是否依然存在。



5. 程序问题



  • 现象:程序烧录后无法正常运行,或者需要很长时间才能启动。

  • 可能原因:程序代码有问题,导致MCU无法正常启动或运行。

  • 解决方法

    • 检查程序代码,确保初始化代码(如时钟、外设等)正确无误。

    • 确保程序中没有死循环或阻塞操作,导致MCU无法正常启动。

    • 使用调试器(如ST-Link)进行调试,观察程序运行时的状态,找出问题所在。



6. 硬件干扰问题



  • 现象:手触摸开发板背面时,串口调试助手打印空数据。

  • 可能原因:硬件设计或布局不当,导致外部干扰影响MCU正常工作。

  • 解决方法

    • 检查PCB布局,确保电源、地线和信号线的走线合理,减少干扰。

    • 确保MCU和外部电路的接地良好,避免接地不良导致的干扰。

    • 如果问题依然存在,可以尝试在MCU的电源引脚附近添加去耦电容,减少电源噪声。



7. 芯片损坏



  • 现象:换了别的开发板没有问题,但当前开发板存在问题。

  • 可能原因:当前开发板的MCU或外围电路可能损坏。

  • 解决方法

    • 尝试更换MCU芯片,看看问题是否依然存在。

    • 检查外围电路,确保没有短路或损坏的元件。



8. 程序大小问题



  • 现象:烧录较大的程序后,板子无法正常工作。

  • 可能原因:程序大小超过了芯片的Flash或RAM容量,导致MCU无法正常运行。

  • 解决方法

    • 检查程序的Flash和RAM占用情况,确保没有超过芯片的容量限制。

    • 优化程序代码,减少Flash和RAM的占用。



总结


建议你按照以下步骤逐步排查问题:



  1. 检查电源和复位电路,确保MCU能够正常上电和复位。

  2. 检查晶振电路,确保MCU能够正常起振。

  3. 使用调试器,观察程序运行时的状态,找出问题所在。

  4. 检查烧录器和烧录方式,确保程序烧录正确。

  5. 检查硬件布局和元件,确保没有硬件设计或元件损坏的问题。


如果以上方法都无法解决问题,可能是芯片或开发板本身存在问题,建议更换芯片或开发板进行测试。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分