STM8|STM32 看门狗使用
2016-08-22 15:46
204 查看
源:STM8|STM32 看门狗使用
STM8和STM32都配备了独立看门狗,其作用之大不言而喻。以下为STM8及STM32的独立看门狗使用例:
对于STM32单片机:
对于STM8单片机:
使用:先在主程序中打开看门狗,在主循环或任务中喂狗,但千万别在中断中喂狗。
操作系统OS中喂狗一般安排在最高优先级任务中,并且保证此线程不断循环。
STM8和STM32都配备了独立看门狗,其作用之大不言而喻。以下为STM8及STM32的独立看门狗使用例:
对于STM32单片机:
#define SYS_IWDG_OPEN IWDG->KR=0xCCCC; #define SYS_IWDG_FEED IWDG->KR=0xAAAA; void SystemIWDG_Config(uint32 OverTime) { RCC->CSR|=RCC_CSR_LSION; while((RCC->CSR&RCC_CSR_LSIRDY)==0); IWDG->KR=0x5555; //使能模块访问 while(IWDG->SR&IWDG_SR_PVU); IWDG->PR=0x0006; //256分频 40000/256=156HZ T=6.4ms while(IWDG->SR&IWDG_SR_RVU); IWDG->RLR=(OverTime*10)>>6; //溢出时间 IWDG->KR=0xAAAA; //装载IWDG->RLR }
对于STM8单片机:
#define SYS_IWDG_OPEN IWDG_KR=0xCC; #define SYS_IWDG_FEED IWDG_KR=0xAA; <pre class="cpp" name="code">void SystemIWDG_Config(void) { CLK_ICKCR|=S3; while((CLK_ICKCR&S4)==0); //STM8单片机需先执行0xCC指令,即先打开IWDG模块,否则IWDG工作不正常 IWDG_KR=0xCC; //启动看门狗 IWDG_KR=0x55; //使能模块访问 IWDG_RLR=0xFF; //溢出时间 IWDG_PR=0x06; //256分频 38000/256=148HZ T=6.7ms IWDG_KR=0xAA; //装载IWDG->RLR }
使用:先在主程序中打开看门狗,在主循环或任务中喂狗,但千万别在中断中喂狗。
void main() { ...... SYS_IWDG_OPEN ...... while(1){ ...... SYS_IWDG_FEED ------ } }
操作系统OS中喂狗一般安排在最高优先级任务中,并且保证此线程不断循环。
相关文章推荐
- STM8|STM32 看门狗使用
- 【转载】如何使用STM32的窗口看门狗
- 16、STM32 窗口看门狗的使用
- STM32 独立看门狗使用经验(Cortex-M3)
- 15、STM32 独立看门狗的使用
- 如何使用STM32的窗口看门狗
- STM32学习——STM32 独立看门狗的使用
- STM32外设使用要点
- STM32 硬件看门狗 IWDG 的时间设置
- STM32 DMA控制器使用
- STM32 下使用printf
- 在Keil MDK环境下使用STM32 V3.4库“小”教程 简介和第一步(转)
- 使用3.4固件库自己建立自己的STM32程序
- 转:在Keil MDK环境下使用STM32 V3.4库“小”教程
- 浅谈STM32的DMA模块的使用
- 看门狗在多线程程序中的使用
- [文档].如何使用STM32的软件库在IAR的EWARM下进行应用开发
- MSP430学习小结1-看门狗的使用总结
- STM32中DMA的使用入门
- STM32上不使用外部晶振,OSC_IN和OSC_OUT的接法