|
發布時間: 2019-6-16 20:12
正文摘要:現象如下 不斷復位 順序執行到一半就總是莫名其妙復位 單片機源代碼如下 #include "reg52.h" typedef unsigned int u16; typedef unsigned char u8; #define GPIO ... |
| 沒復位啊,沒跳出循環,一直在while (1) 里面運行你的AT指令啊,你的功能思維好像需要改變一下!不要一直這樣發送AT啊,那邊回復是需要時間的,給個延時或者判斷接收到的數據啊! |
|
sfr WDT_CONTR=0xe1; 我看到了你定義了一個看門狗寄存器,這個寄存器的值為11100001 第7位為看門狗溢出位,溢出置1,需要軟件清0, 第5位為看門狗使能位,置1啟動看門狗 第4位為看門狗清零位,置1清0看門狗,看門狗重新計數后硬件自動清0該位, 第3位為看門狗模式位,置1時為在空閑模式也計數, 后面三位是看門狗定時器分頻值。 意思是你啟動了看門狗,但是我并沒有在你后面的程序中看到喂狗的程序,看門狗計數器清零之后會自動觸發復位中斷,你需要在你的while(2)里面反復喂狗才可以 |
| 你的復位電路是不是一直連高電平了? |
| 還是要具體點把問題描述清楚,復位不止軟件問題,還有可能硬件問題 |
|
1、沒有說明單片機型號和完整電路圖,一切靠猜 2、沒有看到有喂狗代碼,或者喂狗時間超時 |
qinimo2002 發表于 2019-6-17 10:03 看看程序是否寫錯 |
|
1.看門狗定時器是否關閉 2.復位電路設計是否合理 |