×
单片机 > 单片机程序设计 > 详情

关于STM32开发复位哪些事

发布时间:2020-05-29 发布时间:
|

问:送电后程序无法运行,等按下复位后才可以程序才可以运行,不知道是什么原因。

1答:B0,B1都下拉后,开机应该会启动才对。 

检查你的复位电路是不是有问题,比如104电容丢了?

别用外部晶振,试试。 
屏蔽我们的系统频率设置函数。


2答:已解决了,谢谢大家的支持。下面我写一下情况以供大家参考: 

BOOT设置:BOOT0是下拉100K,BOOT1是直接接地。 
每次上电后程序不能启动,需要手动复位。分析后可能是新上电时BOOT0上的电平不太稳定,可以让CPU延时些启动。通过加大复归脚上对地的电容,用充电时间增加启动时间,现在用的是220uF的就可以每次启动了。

//////////////////////////////////////////////////////////////////////////////////////////////////

我们使用STM32进行产品开发,测试的时候一切都是正常的,看门狗确实也起作用了,但是开始量产后发现有时候异常,这个是我的最怕。


//////////////////////////////////////////////////////////////////////////////////////////////////问:复位引脚可以悬空吗

同问:原子哥,我最近利用stm32f103zet6做了一个控制板,由于空间有限,复位电路没有足够的空间来排布,不知道能否去掉?会不会对电路有影响,我的下载电路是ch340g的一键下载电路

答:非是的,复位信号必须接V3.3,才会正常运行代码。 

10K+10uf是可以,但是10uf有点偏大,建议用104. 

你先让板子正常工作了,再去搞看门狗。

不加复位按键,至少要加RC上电复位电路。 
也就是10K电阻和104电容不能少。



STM32应用在产品上时无需外挂复位电路,但NRST引脚接阻容电路有可能是惯性思维,但并不一定是惯性思维。
来自网上的一段话,我想说的是,在我自己的小板子上,没有复位电路,也可以运行,但是,安全吗,不确定。

接着研究,看来哪里都有惯性思维。


作为复位引脚,一般不宜悬空,所以STM32在NRST引脚内接了一个上拉电阻,典型值为40K左右,为了防止外部干扰,STM32数据手册上建议外接一个对地电容;如果用户认为内接的上拉电阻太弱,则可以自己再接一个上拉电阻。因此众多"开发板"上的阻容电路,并不单单是为了复位才存在的。

问题:如何软件复位

在系统函数里提供了思路,大家可以看看://系统软复位

//CHECK OK

//091209

void Sys_Soft_Reset(void)

{   

SCB->AIRCR =0X05FA0000|(u32)0x04;  

有的人也比较有才,可以设置看门狗的值溢出,方法比较强项。

 

关于热启动的事情:

模块处理都要有热启动,等待一段时间方可初始化和进一步书写进程

一般的处理是等待或者判断就绪,即准备好函数。

有位仁兄的见解:

while等待起震。等待预存储flash准备好。
等待完了
还要再延时一会。。我觉得延时不是芯片的问题。可能是一上电有抖动,这时候不适合初始化


关键字:STM32开发  复位

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于AT91M42800A的LED显示系统设计