完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
//窗口看门狗初始化程序 void WWDG_Init(uint8_t ztr,uint8_t zwr,uint32_t ***prer) { NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE); //使能窗口看门狗时钟 WWDG_CNT=ztr&WWDG_CNT; //初始化WWDG_CNT. WWDG_SetPrescaler(***prer); //设置分频值 WWDG_SetWindowValue(zwr); //设置窗口值 //WWDG_SetCounter(WWDG_CNT);//设置计数值 WWDG_Enable(WWDG_CNT); //开启看门狗, WWDG_ClearFlag();//清除提前唤醒中断标志位 WWDG_EnableIT();//开启提前唤醒中断 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//嵌套优先级分组为2, NVIC_InitStructure.NVIC_IRQChannel=WWDG_IRQn; //窗口看门狗中断 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x02; //抢占优先级为2 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03; //子优先级为3 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //使能窗口看门狗 NVIC_Init(&NVIC_InitStructure); } /*****************************************************************************/ //窗口看门狗中断服务程序 void WWDG_IRQHandler(void) { // WWDG_SetCounter(WWDG_CNT); //一般不在这个中断里喂狗 WWDG_ClearFlag();//清除提前唤醒中断标志位 //执行一些系统在复位前要做的一些操作,比如保存重要数据等 } /*****************************************************************************/ //窗口看门狗喂狗操作,即如何喂狗 void SetWatchDog(void) { zwr=WWDG->CFR&0X5F;//窗口值 ztr=WWDG->CR&0X7F;//计数值 if((0x40 {//这一地方刚开始错写成if(0x40 WWDG_SetCounter(WWDG_CNT);//喂狗 printf("正在喂狗n"); } } /*****************************************************************************/ |
|
相关推荐
|
|
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
621 浏览 1 评论
1962 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1068 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1487 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1924 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 19:37 , Processed in 0.475480 second(s), Total 68, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号