第42講.stm8獨(dú)立看門狗iwdg實(shí)驗(yàn)_第1頁(yè)
第42講.stm8獨(dú)立看門狗iwdg實(shí)驗(yàn)_第2頁(yè)
第42講.stm8獨(dú)立看門狗iwdg實(shí)驗(yàn)_第3頁(yè)
第42講.stm8獨(dú)立看門狗iwdg實(shí)驗(yàn)_第4頁(yè)
第42講.stm8獨(dú)立看門狗iwdg實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、(眾想)哈爾濱STM8 開(kāi)發(fā)板課堂筆記科技開(kāi)發(fā)舉一反三課堂筆記STM8開(kāi)發(fā)板課件文檔:http: HYPERLINK http:/z/ http:/z:zxkj-ly,免費(fèi)獲取 STM8 資料。公眾STM8 技術(shù)【】版本號(hào):V2.0第 1頁(yè) 共 9 頁(yè):(眾想)哈爾濱STM8 開(kāi)發(fā)板課堂筆記科技開(kāi)發(fā)第 42 講STM8 獨(dú)立看門狗(IWDG)實(shí)驗(yàn)?zāi)?錄獨(dú)立看門狗介紹342.142.2獨(dú)立看門狗框圖342.3獨(dú)立看門狗超時(shí)周期442.4程序文件設(shè)計(jì)442.4.1main.c 文件中的程序442.4.2pbd文件中的程序542.4.3pbdata.h 文件中的程序742.4.4iwdg.c 文件中

2、的程序742.4.5iwdg.h 文件中的程序742.4.6uart1.c 文件中的程序842.4.7uart1.h 文件中的程序842.4.8led.h 文件中的程序842.4.9led.h 文件中的程序842.5 實(shí)驗(yàn)效果8版本號(hào):V2.0第 2 頁(yè) 共 9 頁(yè):(眾想)哈爾濱STM8 開(kāi)發(fā)板課堂筆記科技開(kāi)發(fā)42.1 獨(dú)立看門狗介紹在由單片機(jī)的微型計(jì)算機(jī)系統(tǒng)中,由于單片機(jī)的工作常常會(huì)受到來(lái)自外界電磁場(chǎng)的干擾,造成程序的跑飛,而陷入死循環(huán),程序的正常運(yùn)行被打斷。由單片機(jī)控制的系統(tǒng)無(wú)法繼續(xù)工作,會(huì)造成整個(gè)系統(tǒng)的陷入停滯狀態(tài),發(fā)生不可預(yù)料的,所以出于對(duì)單片機(jī)運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測(cè)的考慮,便產(chǎn)生了一

3、種專門用于監(jiān)測(cè)單片機(jī)程序運(yùn)行狀態(tài)的模塊或者,俗稱“看門狗”(watchdog) 。STM8 獨(dú)立看門狗模塊它由一個(gè)內(nèi)部的 128kHz 的阻容振蕩器作為時(shí)鐘源驅(qū)動(dòng),因此即使是主時(shí)鐘失效時(shí)它仍然照常工作。42.2 獨(dú)立看門狗框圖圖 42.1 獨(dú)立看門狗框圖當(dāng)在寄存器(IWDG_KR)中寫入數(shù)值 0 xCC 后,獨(dú)立看門狗就被啟動(dòng)了,計(jì)數(shù)器開(kāi)始從它的復(fù)位值 0 xFF 開(kāi)始遞減計(jì)數(shù),當(dāng)計(jì)數(shù)減到 0 x00 時(shí)就會(huì)產(chǎn)生一個(gè)復(fù)位信號(hào)(WDG RESET)。使用 IWDG_PR 和 IWDG_RLR 寄存器配置獨(dú)立看門狗。IWDG_PR 寄存器是用于選擇驅(qū)動(dòng)計(jì)數(shù)器時(shí)鐘的預(yù)分頻系數(shù)。每當(dāng)把數(shù)值(0 xAA

4、)寫入到IWDG_KR 寄存器時(shí),獨(dú)立看門狗將用 IWDG_RLR 的數(shù)值刷新計(jì)數(shù)器的內(nèi)容,從而避免了產(chǎn)生看門狗的復(fù)位。IWDG_PR 和 IWDG_RLR 寄存器具有寫保護(hù)功能,要修改它們前,需首先在 IWDG_KR 寄存器寫入 KEY_ACS 代碼(0 x55);在 IWDG_KR 寫入版本號(hào):V2.0第 3 頁(yè) 共 9 頁(yè):(眾想)哈爾濱STM8 開(kāi)發(fā)板課堂筆記科技開(kāi)發(fā)0 xAA 將恢復(fù)寫保護(hù)狀態(tài)。42.3 獨(dú)立看門狗超時(shí)周期超時(shí)周期由計(jì)數(shù)器數(shù)值和時(shí)鐘預(yù)分頻器決定,下表列出了它們的數(shù)值。圖 42.2 獨(dú)立看門狗超時(shí)周期(假定計(jì)數(shù)器時(shí)鐘為 64KHz)42.4 程序文件設(shè)計(jì)42.4.1ma

5、in.c 文件中的程序主程序就實(shí)現(xiàn)初始化和調(diào)用驅(qū)動(dòng)程序,這樣主程序控制思路清晰,流程簡(jiǎn)單。要想了解全面詳實(shí)的程序,請(qǐng)大家參考光盤(網(wǎng)盤)中程序及程序注釋。/*說(shuō)明:獨(dú)立看門狗實(shí)驗(yàn)STM8 開(kāi)發(fā)板https https:/z開(kāi)發(fā):地址:淘寶網(wǎng)店:公眾 STM8 技術(shù):zxkj-ly,免費(fèi)獲取STM8 資料。】【哈爾濱科技開(kāi)發(fā)作版日者:本:期:東V1.02016-05-03IAR 開(kāi)發(fā)環(huán)境 ST 庫(kù)函數(shù)版本 V2.20.1版本 V2.2.0*/版本號(hào):V2.0第 4 頁(yè) 共 9 頁(yè):(眾想)哈爾濱STM8 開(kāi)發(fā)板課堂筆記科技開(kāi)發(fā)#include pbdata.h/引入自定義公共頭文件 void B

6、SP_Configuration(void);/硬件初始化函數(shù)/*函 數(shù) 名: main功能說(shuō)明: c 程序形參:無(wú)返 回 值: 錯(cuò)誤代碼(無(wú)需處理)*/ main(void)BSP_Configuration();/硬件驅(qū)動(dòng)初始化函數(shù)prf(獨(dú)立看門狗測(cè)試程序rn);while(1)/主程序循環(huán),反復(fù)執(zhí)行循環(huán)體里的語(yǔ)句IWDG_Refresh();/*函 數(shù) 名: BSP_Configuration功能說(shuō)明: 初始化硬件設(shè)備。只需要調(diào)用一次。該函數(shù)配置CPU 寄存器和外設(shè)的寄存器并初始化一些全局變量。*形參:無(wú)返 回 值: 無(wú)*/ void BSP_Configuration(void)CL

7、K_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);/時(shí)鐘速度為內(nèi)部 16M,1 分頻, UART1_Congfiguration();/調(diào)用RS232 串口 1 初始化函數(shù)LED_Init();/調(diào)用LED 初始化函數(shù) delay_ms(1000); IWDG_Configuration(); rim();/打開(kāi)總中斷/*斷言函數(shù):它的作用是在編程的過(guò)程中為程序提供參數(shù)檢查*/ #ifdef USE_FULL_ASSERTvoid assert_failed(u8* file,u32 line)while(1)#endif42.4.2pbd文件中的程序版本

8、號(hào):V2.0第 5 頁(yè) 共 9 頁(yè):(眾想)哈爾濱#include pbdata.hSTM8 開(kāi)發(fā)板課堂筆記科技開(kāi)發(fā)/引入自定義公共頭文件/*函 數(shù) 名: delay_us功能說(shuō)明: 微秒延時(shí)程序,注意此函數(shù)的運(yùn)行環(huán)境為(16M 時(shí)鐘速度)形參:nCount 要延時(shí)的微秒數(shù),輸入 nCount=1 微妙返 回 值: 無(wú)*/void delay_us(u16 nCount)/16M 晶振時(shí)延時(shí) 1 個(gè)微妙nCount*=3;/等同于 nCount=nCount*3相當(dāng)于把nCount 變量擴(kuò)大 3 倍while(-nCount);/nCount 變量數(shù)值先減一,再判斷 nCount 的數(shù)值是否大

9、于 0,大于 0 循環(huán)減一,等于 0 退出循環(huán)。/*函 數(shù) 名: delay_ms功能說(shuō)明: 毫秒延時(shí)程序,注意此函數(shù)的運(yùn)行環(huán)境為(16M 時(shí)鐘速度)形參:nCount 要延時(shí)的毫秒數(shù),輸入 nCount=1 毫秒返 回 值: 無(wú)*/ void delay_ms(u16 nCount)/16M 晶振時(shí)延時(shí) 1 個(gè)毫秒while(nCount-)/先判斷while()循環(huán)體里的nCount 數(shù)值是否大于 0,大于 0 循環(huán),減一執(zhí)行循環(huán)體,等于 0 退出循環(huán)。delay_us(1000);/調(diào)用微妙延時(shí)函數(shù),輸入 1000 等譯演示 1 毫秒。/*函 數(shù) 名: Get_decimal功能說(shuō)明:

10、獲得數(shù)值小數(shù)部分形參:dt 輸入數(shù)據(jù) deci 小數(shù)位數(shù),最多保留 4 位小數(shù)返 回 值: 放大后的小數(shù)部分*/ u16 Get_decimal(double dt,u8 deci)/獲得數(shù)值小數(shù)部分long x1=0;u16 x2=0,x3=0;if(deci4) if(deci1) x3=(u16)deci=4; deci=1; (10, deci);x1=(long)(dt*x3); x2=(u16)(x1%x3);return x2;版本號(hào):V2.0第 6 頁(yè) 共 9 頁(yè):(眾想)哈爾濱STM8 開(kāi)發(fā)板課堂筆記科技開(kāi)發(fā)42.4.3pbdata.h 文件中的程序#ifndef _PBDA

11、TA_H/宏定義,定義文件名稱 #define _PBDATA_H#include #include #include #include #include #includestm8s.h/引入STM8 的頭文件/需要 math.h/需要 led.h/ uart1.h/ iwdg.h這個(gè)頭文件才能實(shí)現(xiàn)這個(gè)頭文件才能實(shí)現(xiàn)LED 頭文件 RS232 頭文件void delay_us(u16 nCount); /微秒延時(shí)程序 void delay_ms(u16 nCount); /毫秒延時(shí)程序u16 Get_decimal(double dt,u8 deci);/獲得數(shù)值小數(shù)部分#endif /定義文

12、件名稱結(jié)束42.4.4iwdg.c 文件中的程序#include pbdata.hvoid IWDG_Configuration(void)if(RST_GetFlagSus(RST_FLAG_IWDGF)/判斷看門狗復(fù)位標(biāo)志的狀態(tài)RST_ClearFlag(RST_FLAG_IWDGF);/清空看門狗復(fù)位標(biāo)志IWDG_Enable();/看門狗使能(0 xCC)IWDG_WriteAc 器和重載寄存器(0X55sCmd(IWDG_WriteAc)s_Enable);/允許或者寫預(yù)分頻IWDG_SetPrescaler(IWDG_Prescaler_256);/預(yù)分頻 IWDG_SetRelo

13、ad(0 xFF);/付初值 0 xFFIWDG_ReloadCounter();/ 把初值送到遞減計(jì)數(shù)器 (0 xAA每當(dāng)把數(shù)值(0 xAA)寫入到IWDG_KR 寄存器時(shí),獨(dú)立看門狗將用IWDG_RLR 的數(shù)值刷新計(jì)數(shù)器)void IWDG_Refresh(void)delay_ms(500); IWDG_ReloadCounter(); LED1_R;prf(喂狗!rn);42.4.5iwdg.h 文件中的程序版本號(hào):V2.0第 7 頁(yè)共 9 頁(yè):(眾想)哈爾濱STM8 開(kāi)發(fā)板課堂筆記科技開(kāi)發(fā)#ifndef _IWDG_H/宏定義,定義文件名稱 #define _IWDG_H#include stm8s.h/STM8 頭文件void IWDG_Configuration(void); void IWDG_Refresh(void); #endif42.4.6uart1.c 文件中的程序詳細(xì)程序請(qǐng)參考程序例程。42.4.7uart1.h 文件中的程序詳細(xì)程序請(qǐng)參考程序例程。42.4.8led.h 文件中的程序詳細(xì)程序請(qǐng)參考程序例程。42.4.9led.h 文件中的程序詳細(xì)程序請(qǐng)參考程序例程

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論