上传者: 38595356
|
上传时间: 2022-04-15 23:57:12
|
文件大小: 47KB
|
文件类型: PDF
贴了两块样板,烧写同样的固件。其中一块工作正常,但是另外一块出现了很奇怪的现象:在线调试正常;每次烧写完后工作正常;重新上电有时候工作正常,有时候工作不正常;工作不正常时,按下复位按键,恢复正常。
工作异常现象:main函数中的系统运行指示灯不闪烁,但是初始化过程中点的一个灯是亮的!说明程序运行一段时间后,不工作了。
由于在线调试模式,板子工作正常,无法通过在线调试的方式判断程序运行的异常状态。
分析可能的原因:
1、初始化过程中,程序陷入死循环。但程序初始化过程中,没有while(1)死循环的代码。
2、板子上电后不断复位,导致无法进入main函数中的while(1)循环。
问题查找:
硬件:
1、确认BOOT0管脚接10kΩ欧电阻下拉到地;
2、RC上电延时复位电路中,R为10kΩ,C由0.1uF改为10uF,现象依旧;
3、MCU3.3V电源纹波很小,排除电源问题。
好像从硬件上查不出什么问题。只能从板子上唯一点亮的灯下手了。
软件:
1、好像跟硬件复位没什么关系,为了确认板子是不是在不停复位,在点亮的那个灯前加了100ms延时,如果是在复位,那灯就应该