您现在的位置: 主页 > MCU > 单片机技术应用 > STM8|STM32 看门狗使用 -
本文所属标签:
为本文创立个标签吧:

STM8|STM32 看门狗使用 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]STM8和STM32都配备了独立看门狗,其作用之大不言而喻。以下为STM8及STM32的独立看门狗使用例:对于STM32单片机:#define SYS_IWDG_OPEN IWDG->KR=0xCCCC;#define SYS_IWDG_FEED IWDG->KR=0xAAAA;void SystemIW

STM8STM32都配备了独立看门狗,其作用之大不言而喻。以下为STM8STM32的独立看门狗使用例:

本文引用地址: http://www.21ic.com/app/mcu/201808/782530.htm

对于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;


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中喂狗一般安排在最高优先级任务中,并且保证此线程不断循环。




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > STM8|STM32 看门狗使用 -
 

"STM8|STM32 看门狗使用 -"的相关文章

网站地图

围观()