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