完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1. IWDG独立看门狗概述
HAL_StatusTypeDef HAL_WWDG_Init(WWDG_HandleTypeDef *hwwdg);//初始化函数,分频系数等 void HAL_WWDG_MspInit(WWDG_HandleTypeDef*hwwdg);//初始化回调函数 HAL_StatusTypeDef HAL_WWDG_Start(WWDG_HandleTypeDef*hwwdg);//启动看门狗 HAL_StatusTypeDef HAL_WWDG_Start_IT(WWDG_HandleTypeDef*hwwdg);//开启提前唤醒中断 HAL_StatusTypeDef HAL_WWDG_Refresh(WWDG_HandleTypeDef*hwwdg);//喂狗,配置CR寄存器 void HAL_WWDG_IRQHandler(WWDG_HandleTypeDef*hwwdg);//初始化回调函数,中断处理 void HAL_WWDG_EarlyWakeuoCallback(WWDG_HandleTypeDef*hwwdg);//初始化提前唤醒回调函数 3. 实例 #include "sys.h" #include "lcd.h" #include "delay.h" #include "key.h" #include "uart.h" #include "wkup.h" /*************************************** 使能窗口看门狗时钟 ***************************************/ void HAL_WWDG_MspInit(WWDG_HandleTypeDef*hwwdg) { __HAL_RCC_WWDG_CLK_ENABLE(); //设置中断优先级 HAL_NVIC_EnableIRQ(WWDG_IRQn); HAL_NVIC_SetPriority(WWDG_IRQn,3,3); } WWDG_HandleTypeDef wwdg_handler; /*************************************** 中断服务函数 ***************************************/ void HAL_WWDG_IRQHandler(void) { HAL_WWDG_IRQHandler(wwdg_handler); } /*************************************** 唤醒回调函数,喂狗 ***************************************/ void HAL_WWDG_EarlyWakeuoCallback(WWDG_HandleTypeDef*hwwdg) { HAL_StatusTypeDef HAL_WWDG_Refresh(&wwdg_handler, 0x7f); LED1=!LED1; } /*************************************** 主函数 ***************************************/ int main(void) { HAL_Init();//初始化HAL库 Stm32_CLock_Init(360,25,2,8);//设置时钟180MHz delay_init(180);//初始化延时函数 uart_init(115200);//初始化USART LED_Init();//初始化LED KEY_Init();//初始化KEY LED0=0;//点亮LED0 delay_ms(300);//初始化延时函数 /*************************************** 1. 初始化看门狗 ***************************************/ wwdg_handler.Instance=WWDG; wwdg_handler.Init.Prescaler=WWDG_PRESCALER_8; wwdg_handler.Init.Window=0x5f; wwdg_handler.Init.Counter=0x7f; HAL_WWDG_Init(&wwdg_handler); /*************************************** 2. 使能窗口看门狗并且开启中断 ***************************************/ //HAL_IWDG_Start(&iwdg_handler); HAL_WWDG_Start_IT(&wwdg_handler); LED0=0; while(1) { LED0=1; } } |
|
|
|
只有小组成员才能发言,加入小组>>
3280 浏览 9 评论
2958 浏览 16 评论
3460 浏览 1 评论
9004 浏览 16 评论
4052 浏览 18 评论
1115浏览 3评论
573浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
571浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2303浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1860浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 21:54 , Processed in 1.258846 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号