關於復位部分事兒

問:送電後程序無法運行,等按下復位後纔可以程序纔可以運行,不知道是什麼原因。

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開發復位哪些事

STM32應用在產品上時無需外掛復位電路,但NRST引腳接阻容電路有可能是慣性思維,但並不一定是慣性思維。
來自網上的一段話,我想說的是,在我自己的小板子上,沒有復位電路,也可以運行,但是,安全嗎,不確定。
接着研究,看來哪裏都有慣性思維。

作爲復位引腳,一般不宜懸空,所以STM32在NRST引腳內接了一個上拉電阻,典型值爲40K左右,爲了防止外部干擾,STM32數據手冊上建議外接一個對地電容;如果用戶認爲內接的上拉電阻太弱,則可以自己再接一個上拉電阻。因此衆多"開發板"上的阻容電路,並不單單是爲了復位才存在的。
問題:如何軟件復位
在系統函數裏提供了思路,大家可以看看://系統軟復位
//CHECK OK
//091209
void Sys_Soft_Reset(void)
{   
SCB->AIRCR =0X05FA0000|(u32)0x04;  
有的人也比較有才,可以設置看門狗的值溢出,方法比較強項。
 
關於熱啓動的事情:
模塊處理都要有熱啓動,等待一段時間方可初始化和進一步書寫進程
一般的處理是等待或者判斷就緒,即準備好函數。
有位仁兄的見解:
while等待起震。等待預存儲flash準備好。
等待完了
還要再延時一會。。我覺得延時不是芯片的問題。可能是一上電有抖動,這時候不適合初始化

來源參考:http://blog.sina.com.cn/s/blog_87b584a20102v8lc.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章