完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
0、窗口看门狗的使用
WWDG_HW:窗口看门狗激活方式,默认值为0。 0x4805: OPT3[1]; 0x4806: NOPT3[1];
0x4805: OPT3[0]; 0x4806: NOPT3[0];
窗口看门狗的时钟由CPU时钟fCPU提供,因此在使用窗口看门狗前,请配置合适的CPU时钟。 3.1、 通过官方库“stm8s_wwdg”提供的函数初始化WWDG /** * @brief WWDG Initialization Function * @param None * @retval None */ static void _WWDG_Init(void) { /* WWDG 配置: WWDG 的时钟为 SYSCLK = fCPU */ /* WWDG 的超时时间为 maxSetCounterTime */ /* Watchdog 窗口 = (COUNTER_INIT - 63) * 1 step = 64 * (12288 / fCPU) = maxSetCounterTime s */ /* 禁止复位窗口 = (COUNTER_INIT - WINDOW_VALUE) * 1 step = (COUNTER_INIT - WINDOW_VALUE) * (12288 / fCPU) = minSetCounterTime s */ /* 禁止复位窗口范围为 0.0 ms 到 minSetCounterTime ms Watchdog 窗口范围为 minSetCounterTime ms to maxSetCounterTime ms 如果在禁止复位窗口进行复位,将产生一个复位信号。 如果在Watchdog 窗口范围进行复位,将不产生复位信号。 如果在WWDG向下计数器小于63进行复位,将产生一个复位信号。 */ WWDG_Init(COUNTER_INIT, WINDOW_VALUE); } 例子(获得最大范围窗口范围): * @brief WWDG Initialization Function * @param None * @retval None */ static void _WWDG_Init(void) { /* WWDG 配置: WWDG 的时钟为 SYSCLK = fCPU */ /* WWDG 的超时时间为 maxSetCounterTime */ /* Watchdog 窗口 = (Counter- 63) * 1 step = 64 * (12288 / fCPU) = maxSetCounterTime s */ /* 禁止复位窗口 = (Counter- WindowValue) * 1 step = (Counter- WindowValue) * (12288 / fCPU) = minSetCounterTime s */ /* 禁止复位窗口范围为 0.0 ms 到 minSetCounterTime ms Watchdog 窗口范围为 minSetCounterTime ms to maxSetCounterTime ms 如果在禁止复位窗口进行复位,将产生一个复位信号。 如果在Watchdog 窗口范围进行复位,将不产生复位信号。 如果在WWDG向下计数器小于63进行复位,将产生一个复位信号。 */ // 复位WWDG的WR寄存器的值,防止使能后,窗口看门狗立即产生复位信号。 WWDG->WR = 0x7F; // 使能窗口看门狗,并配置计数器值。 WWDG->CR = (uint8_t)((uint8_t)(0x80| 0x40) | (uint8_t)Counter); // 配置窗口看门狗窗口值。 WWDG->WR = (uint8_t)((uint8_t)(~0x80) & (uint8_t)(0x40| WindowValue)); } /** * @brief WWDG Initialization Function * @param None * @retval None */ static void _WWDG_Init(void) { /* WWDG 配置: WWDG 的时钟为 SYSCLK = fCPU */ /* WWDG 的超时时间为 maxSetCounterTime */ /* Watchdog 窗口 = (Counter- 63) * 1 step = 64 * (12288 / fCPU) = maxSetCounterTime s */ /* 禁止复位窗口 = (Counter- WindowValue) * 1 step = (Counter- WindowValue) * (12288 / fCPU) = minSetCounterTime s */ /* 禁止复位窗口范围为 0.0 ms 到 minSetCounterTime ms Watchdog 窗口范围为 minSetCounterTime ms to maxSetCounterTime ms 如果在禁止复位窗口进行复位,将产生一个复位信号。 如果在Watchdog 窗口范围进行复位,将不产生复位信号。 如果在WWDG向下计数器小于63进行复位,将产生一个复位信号。 */ // 复位WWDG的WR寄存器的值,防止使能后,窗口看门狗立即产生复位信号。 WWDG->WR = 0x7F; // 使能窗口看门狗,并配置计数器值。 WWDG->CR = (uint8_t)((uint8_t)(0x80| 0x40) | (uint8_t)Counter); // 配置窗口看门狗窗口值。 WWDG->WR = (uint8_t)((uint8_t)(~0x80) & (uint8_t)(0x40| WindowValue)); } 请确保窗口看门狗的窗口值WindowValue <= 0x7F,否则WWDG->WR会溢出。 4、WWDG寄存器简介
|
|
|
|
只有小组成员才能发言,加入小组>>
3311 浏览 9 评论
2994 浏览 16 评论
3493 浏览 1 评论
9058 浏览 16 评论
4087 浏览 18 评论
1176浏览 3评论
604浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
597浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2334浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1895浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 19:24 , Processed in 1.223277 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号