iwdg.c里面的代碼如下:
#include "iwdg.h"
//初始化獨立看門狗
//prer:分頻數:0~7(只有低 3位有效!) rlr:自動重裝載值,0~0XFFF.
//分頻因子=4*2^prer.但最大值只能是256!
//rlr:重裝載寄存器值:低11位有效.
//時間計算(大概):Tout=((4*2^prer)*rlr)/32 (ms).
void IWDG_Init(u8 prer,u16 rlr)
{
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //取消寄存器寫保護
IWDG_SetPrescaler(prer); //設置 IWDG分頻系數
IWDG_SetReload(rlr); //設置IWDG裝載值
IWDG_ReloadCounter(); //reload
IWDG_Enable(); //使能看門狗
}
//喂獨立看門狗
void IWDG_Feed(void)
{
IWDG_ReloadCounter();//reload
}
該代碼就 2個函數,void IWDG_Init(u8 prer,u16 rlr)是獨立看門狗初始化函數,就是按照上面介紹的步驟來初始化獨立看門狗的。該函數有2 個參數,分別用來設置預分頻數與重裝載寄存器的值的。通過這兩個參數,就可以大概知道看門狗復位的時間周期為多少了。其計算方式上面有詳細的介紹,這里不再多說了。
void IWDG_Feed(void)函數,該函數用來喂狗,因為STM32的喂狗只需要向關鍵字寄存器寫入 0XAAAA 即可,也就是調用庫函數 IWDG_ReloadCounter(),所以這個函數也是很簡單的。
iwdg.h 內容比較簡單,主要是一些函數申明,這里我們忽略不講解。
接下來我們看看主函數,主程序里面我們先初始化一下系統代碼,然后啟動按鍵輸入和看門狗,在看門狗開啟后馬上點亮 LED0(DS0) ,并進入死循環等待按鍵的輸入,一旦 KEY_UP有按鍵,則喂狗,否則等待IWDG 復位的到來。該部分代碼如下:
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2
delay_init(168); //初始化延時函數
LED_Init(); //初始化 LED 端口
KEY_Init(); //初始化按鍵
delay_ms(100); //延時 100ms
IWDG_Init(4,500); //與分頻數為 64,重載值為500,溢出時間為1s
LED0=0; //先點亮紅燈
while(1)
{
if(KEY_Scan(0)==WKUP_PRES)//如果WK_UP 按下,則喂狗
{
IWDG_Feed();//喂狗
}
delay_ms(10);
};
}
上面的代碼,鑒于篇幅考慮,我們沒有把頭文件給列出來(后續實例將會采用類同的方式處理) ,因為以后我們包含的頭文件會越來越多,大家想看,可以直接打開光盤相關源碼查看。至此,獨立看門狗的實驗代碼,我們就全部編寫完了,接著要做的就是下載驗證了,看看我們的代碼是否真的正確。
上一篇:STM32f4窗口看門狗實驗代碼
下一篇:STM32f4外部中斷實驗代碼(02)
推薦閱讀
史海拾趣
在電子行業中,Diconex公司始終堅持以客戶需求為導向的市場定位策略。公司深入調研市場需求,針對不同客戶群體推出定制化解決方案。這種精準的市場定位使得Diconex的產品能夠更好地滿足客戶需求,贏得了客戶的信任和忠誠。同時,公司還積極拓展國際市場,與全球知名企業建立了長期穩定的合作關系。
人才是企業發展的核心動力。Diconex公司高度重視人才培養和引進工作。公司建立了完善的人才培養機制,為員工提供廣闊的發展空間和良好的職業晉升通道。同時,公司還積極引進行業優秀人才,為公司的快速發展提供了有力的人才保障。這種人才戰略的成功實施使得Diconex在電子行業中擁有了強大的技術團隊和人才隊伍。
Esico-Triton公司成立于XXXX年,起初是一個小型的電子設備研發團隊。當時,創始人[XXXXX]和[XXXXX]看到了電子設備市場的巨大潛力,于是決定合作創辦一家公司。他們的初衷是開發一款能夠簡化工作流程的電子設備。在公司創立初期,資金緊張,研發條件有限,但團隊成員憑借著對技術的熱情和專業知識,成功研發出了第一款產品——一款便攜式數據處理器。這款產品因其便攜性和高效性受到了市場的歡迎,為Esico-Triton的后續發展奠定了堅實的基礎。
隨著環保意識的不斷提高,綠色環保已經成為電子行業的發展趨勢。EHC公司積極響應這一趨勢,致力于研發和生產綠色環保的電子產品。公司采用環保材料和工藝,減少生產過程中的污染排放。同時,EHC公司還積極推動廢舊電子產品的回收和再利用工作,為環保事業做出了積極貢獻。這種對環保的關注和行動讓EHC公司在行業中樹立了良好的形象。
在1902年,Joseph C. Belden在美國芝加哥創立了Belden公司,標志著這家電線電纜公司的誕生。創立初期,公司便專注于電線電纜的研發和生產,憑借其卓越的產品質量和可靠的性能,逐漸在市場上嶄露頭角。隨著業務的發展,Belden逐漸擴大了生產規模,并增設了多個生產基地,以滿足不斷增長的市場需求。
全部打包資料見附件: 包括:USBasp制作資料及全過程(菜鳥版)_全部資料.rar USBasp制作資料及全過程(菜鳥版).doc USB下載線驅動的 ...… 查看全部問答∨ |
|
我用evc,想實現:將通過串口每0.1秒接收到得數據和AD接收到得數據,存儲在一個CList對象中,按照時間點畫兩條曲線出來,當接收到得數據大于設定的縱坐標時重新畫圖,需要將以前的點也畫出來。總共的數據不會超過1000個(不固定)。 我在串口接收 ...… 查看全部問答∨ |
|
小弟我可是辛辛苦苦連哄帶騙才弄到這三個破解碼。。。 過一陣子驅逐艦就要更新DR4.44引擎了。那個時候,破解碼估計太難弄出來,想免費用的速度進來注冊吧。DR4.44出來以后,防毒效果會更好。這個軟件我用了三年,非常不錯,下面的鏈接可以直接下載 ...… 查看全部問答∨ |
我有兩塊開發板,一塊ARM9的開發板移植了LINUX2.4,另一塊51單片機,PC上的串口調試精靈可以接收ARM板的數據,51單片機也可接收PC用串口精靈發送的數據.但將ARM板與51板直接相連,51單片機卻接收不到任何數據.這個奇怪問題折磨我兩天了,哪位知道怎么解決 ...… 查看全部問答∨ |
項目要求在wince下使用RFID讀卡器。本程序每隔200毫秒查詢有無RFID卡來刷(發起邀請)。 現在,在程序執行期間有內存泄露。非常有規律。可以定位到就是在查詢有無RFID卡來刷的某行代碼導致泄露。 這行代碼是執行一個SDK函數的調用。由于SDK函數的 ...… 查看全部問答∨ |
高手請教一個很急的問題,我用c3 800的板子裝wince6.0播放視頻,mpg不支持怎么回事啊?已經選上了AVI Fliter,MPEG-1 Parser/Splitter, MPEG-1 Layer 1 and ...… 查看全部問答∨ |
為今天搞一個看門狗定時器發送數據包!我在主函數里面WDOG_ID wid; 定義一個創建看門狗后的看門狗ID,但一直調試不通! 系統錯誤提示“parse error before \'wid\' 42: \'wid\' undeclared (first use in this function)” 唉折騰了一上午哇! ...… 查看全部問答∨ |