正点原子stm32f7 HAL库教程输入捕获中断程序理解

本文详细解析了STM32F7使用HAL库进行输入捕获测量高电平长度的原理及中断回调函数逻辑,包括输入捕获中断回调函数HAL_TIM_IC_CaptureCallback和更新中断回调函数HAL_TIM_PeriodElapsedCallback的工作流程,以及在高电平频率较高时如何避免数据丢失的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正点原子 STM32F7 HAL库教程实验九——输入捕获实验一章,用输入捕获测量高电平的长度,输入捕获中断回调函数 HAL_TIM_IC_CaptureCallback 和更新中断回调函数 HAL_TIM_PeriodElapsedCallback 的逻辑让人费解,而且原子有的注释不是很准确。现分析如下,以备遗忘。

1.输入捕获原理

用输入捕获测量一段高电平持续时间的原理如图,先设置上升沿触发中断,当捕获到上升沿时,让定时器重新计数,并设置下降沿触发中断。当下降沿到来时,记录下此时定时器的值CCRx2。在高电平期间,定时器可能有N次溢出,所以总共计数次数为 N ∗ A R R + C C R x 2 N*ARR+CCRx2 NARR+CCRx2,再乘以一次计数的时间就得到高电平长度。
在这里插入图片描述

2.输入捕获中断回调函数

正点原子在输入捕获中断回调函数中用到了两个很重要的变量,如下,这里的注释和原子的不一样,我认为原子的注释写错了。

//捕获状态
//位[7]:0,没有捕获到一段高电平;1,捕获到一段高电平。
//位[6]:0,还没捕获到上升沿;1,已经捕获到上升沿。
//[5:0]:捕获到上升沿后,计数器溢出的次数
u8  TIM5CH1_CAPTURE_STA=
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值