STM32的電源復位和引腳復位


在調試程序的時候,發現仿真的時候程序一切運行正常,當重新上電后,程序運行不正常

具體現象如下:

1、確定是進入while(1)了,因為有程序運行的秒閃燈在閃爍

2、應該是MCU無法正常收到的24L01的命令(無法驅動4094片子的繼電器動作)

3、當手動把復位引腳的電平拉低后,程序便運行正常了

調試方法如下:

1、懷疑是硬件復位電路的問題,但是確實是普通的阻容復位,沒看出來多大的問題

2、用軟件復位,上電運行第一次先進行軟件復位,第二次正常運行,不知道怎么設置標志位

  系統復位將復位除時鍾控制寄存器CSR中的復位標志和備份區域中的寄存器以外的所有寄存器

  @1、備份區域中的寄存器

1       if(BKP->DR1!=0X5050)
2     {
3         SCB->AIRCR = (u32)0x05FA0000 | (u32)0x04;
4         BKP->DR1 = 0X5050;
5     }

  備份區域中的寄存器在沒有電池供電的情況下,軟件復位后,寄存器的值仍然會丟

  @2、復位除時鍾控制寄存器CSR中的復位標志 

1     if( (RCC->CSR >> 28) == 0 )
2     {    
3         SCB->AIRCR = (u32)0x05FA0000 | (u32)0x04;
4     }

 

  確實能軟件復位了,但是沒起到應有的效果

3、有沒有可能是無線模塊的設置問題

4、由STM32內部復位電路可知,電源復位和軟件復位

 

這個問題確實很困惑,望高手指點啊 。。。。。。。

是不是很有可能是24L01模塊兒的問題啊,在開發板上測試也不行,要不就是程序的問題,初始化設置有問題

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM