关于STM32的中断一些感想

本文详细介绍了STM32中窗口看门狗的中断配置步骤,包括创建句柄、设置参数、初始化函数以及中断服务函数的实现。在中断触发后,通过HAL库的中断处理函数调用回调函数实现特定功能,例如看门狗的刷新以防止程序重启,并通过LED状态监控看门狗的工作情况。
摘要由CSDN通过智能技术生成

以窗口看门狗为例

STM32的中断配置流程通常为

先创建句柄

WWDG_HandleTypeDef WWDG_Handler;

WWDG_Handler通常有几个成员,其中包括instance成员表示配置的对象

WWDG_Hadler.init成员也是一个结构体变量,其成员包括需要设置的参数,以看门狗为例

包含

WWDG_Handler.init.Prescaler 设置分频系数

WWDG_Handler.init.Window 设置窗口值

WWDG_Handler.init.Counter 设置计数器值

编写WWDG_Init函数,在其中配置好参数,并调用HAL_WWDG_Init(&WWDG_Handler)完成对看门狗的参数设置初始化。

前面调用的HAL_WWDG_Init(&WWDG_Handler)函数其内部调用了MSP回调函数,其功能类似同样是进行初始化配置,对时钟使能,设置优先级,使能中断。重写MSP函数后不需要再运行MSP函数,调用HAL_WWDG_Init(&WWDG_Handler)时其内部就调用了MSP函数。

以上完成了中断配置。

当中断触发后,会进入中断服务函数void WWDG_IRQHandler(),我们通常在中断服务函数中调用中断处理共用函数HAL_WWDG_IRQHandler(&WWDG_Handler),经过中断共用函数的判断后,将会调用相应的回调函数void HAL_WWDG_EarlyWakeupCalback(WWDG_HandlerTypeDef *hwwdg),中断时的我们希望实现的功能最终在回调函数中实现,以看门狗为例,我们希望程序正常运行时看门狗不会导致程序重启,因此我们加入看门狗刷新函数HAL_WWDG_Refresh(&WWDG_Handler);

再加入LED灯状态以观察看门狗运行是否正常

LED1=!LED1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值