欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 定时器输入捕获实验配置

定时器输入捕获实验配置

2025/10/15 20:53:12 来源:https://blog.csdn.net/CLO_se_/article/details/143669256  浏览:    关键词:定时器输入捕获实验配置

首先,第一个时基工作参数配置 HAL_TIM_IC_Init( )

还是一样的套路,传参是一个句柄,先定义一个结构体

Instance:指向TIM_TypeDef的指针,表示定时器的实例。TIM_TypeDef是一个包含了定时器寄存器的结构体,用于对寄存器进行配置和操作。
Init:定时器基本配置,是一个TIM_Base_InitTypeDef类型的结构体变量,包含了定时器的时钟分频系数、计数模式、自动重装载值等信息。
Channel:定时器活动通道,用于指示当前活动的通道。在定时器的输入捕获和输出比较等功能中使用。
hdma[TIM_DMA_ID_CC1]:定时器DMA句柄数组,用于配置和管理定时器的DMA传输。在使用DMA传输时,可以将DMA句柄与定时器关联。
Lock:定时器锁,用于保护对定时器的并发访问。在多线程或中断环境中使用。
State:定时器状态,表示定时器的当前状态。是一个HAL_TIM_StateTypeDef类型的枚举变量,包括以下值:
HAL_TIM_STATE_RESET:定时器已复位。
HAL_TIM_STATE_READY:定时器准备好并且未启动。
HAL_TIM_STATE_BUSY:定时器正在进行配置或操作。
HAL_TIM_STATE_TIMEOUT:定时器操作超时。
HAL_TIM_STATE_ERROR:定时器操作错误。

基本用不到下面几个,把上面两个使用了即可


接着是输入通道配置HAL_TIM_IC_ConfigChannel()

第一个 ICPolarity 就是极性,

第二个ICSelection 就是通道的映射,

第三个ICPrescaler 就是分屏,

第四个 ICFilter 就是滤波

那么第一个 ICPolarity  就有三个参数选择,上升和下降沿触发

第二个ICSelection 也有三个参数,直接和间接,这里选择直接T1

 第三个ICPrescaler 有四个参数,分别是一分频二分频四分频八分频,这里我们默认不分频,就是一分频

第四个 ICFilter 正常我们不滤波,直接写0即可

接着使用 使能更新中断 __HAL_TIM_ENABLE_IT( )

一共两个参数,第一个还是句柄 handle ,第二个就是中断的类型,这里我们选择上面的更新中断类型

然后我们使用 使能捕获、捕获中断及计数器 HAL_TIM_IC_Start_IT 

一共也是两个参数,句柄和通道,句柄没得说直接使用创建,通道就是我们使用的通道二

这下就完成了我们的 Ic_init 的配置


接着我们写中断服务函数 TIM2_IRQHandler 

它通常是跟中断处理函数 HAL_TIM_IRQHandler 一起使用,只有一个参数也就是句柄


最后就是回调函数 HAL_TIM_IC_CaptureCallback ,在中断处理函数里面找的到,但是我们的步骤图里面写出来了 就不一一找了

最后就是两个NVIC ,参数就是中断线,抢占优先级和响应优先级

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词