完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
独立看门狗
1. 独立看门狗简介 看门狗其实就是一个定时器,从功能上说它可以让微控制器在程序发生意外(程序进入死循环或跑飞)的时候,能重新回复到系统刚上电状态,以保障系统出问题的时候可以重启一次。说的复杂一点,看门狗就是能让程序出问题是能重新启动系统 STM32的独立看门狗(IWDG)由内部专门的40KHz低速时钟驱动,即使主时钟发生故障,它也仍然有效。注意IWDG的时钟是一个内部RC时钟,是一个在30~60KHz之间的一个可变化的时钟,只是我们在估算的时候以40KHz的频率来计算,看门狗对时间的要求不是很精确 独立看门口功能框图如下。实际上独立看门口狗是一个递减计数器,当计时器的值减到0时,IWDG会产生一个复位信号,系统复位重新启动。为避免产生看门狗复位,则需在计数器减到0之前重载计数器,即“喂狗”。当程序出错时没有刷新计数器,计数器递减到0,系统复位重新启动,避免程序继续错误运行 独立看门狗超时时间(40KHz的输入时钟LSI) 2. 硬件设计 使用USART1来打印调试信息,PC0用来指示程序是否复位 3. 软件设计 3.1 STM32CubeMX设置 RCC设置外接HSE,时钟设置为72M;IWDG的时钟默认为LSI时钟 PC0设置为GPIO推挽输出模式、上拉、高速、默认输出电平为高电平 USART1选择为异步通讯方式,波特率设置为115200Bits/s,传输数据长度为8Bit,无奇偶校验,1位停止位 激活IWDG,IWDG的时钟为40kHz,此时设置计数器时钟为32分频,则分频后的时钟频率为1.25KHz(时钟周期为1s/1250 = 0.8ms),递减基础器重载值(down-counter reload value)配置为1000,即800ms不刷新IWDG则系统复位 输入工程名,选择工程路径(不要有中文),选择MDK-ARM V5;勾选Generated periphera initialization as a pair of ‘.c/.h’ files per IP ;点击GENERATE CODE,生成工程代码 3.2 MDK-ARM编程 在iwdg.c文件中可以看到独立看门狗的初始化函数 void MX_IWDG_Init(void){ hiwdg.Instance = IWDG; hiwdg.Init.Prescaler = IWDG_PRESCALER_32; hiwdg.Init.Reload = 1000; if (HAL_IWDG_Init(&hiwdg) != HAL_OK){ Error_Handler(); } } 在main函数中编写代码,while循环里每500ms喂一次狗 int main(void){ HAL_Init(); SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_IWDG_Init(); MX_USART1_UART_Init(); /* USER CODE BEGIN 2 */ printf(“rn***** AndyXi IWDG test program *****rn”); HAL_Delay(300); HAL_GPIO_WritePin(GPIOC,LED1_Pin,GPIO_PIN_RESET); /* USER CODE END 2 */ /* USER CODE BEGIN WHILE */ while (1){ printf(“rnRefreshes the IWDG.。。!rn”); HAL_IWDG_Refresh(&hiwdg); HAL_Delay(500); /* USER CODE END WHILE */ } } 4. 下载验证 while循环里每500ms喂一次狗,因此程序不会被复位,LED1常亮。 如果注释掉while循环里的喂狗动作,程序会一直被复位,LED1闪烁。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
645浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
516浏览 3评论
532浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
505浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 10:36 , Processed in 0.844241 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号