TIM_ICPolarity_Rising或TIM_ICPolarity_Falling的区别
时间: 2024-01-29 07:04:23 浏览: 98
在 STM32 的定时器编码器模式中,`TIM_ICPolarity_Rising`和`TIM_ICPolarity_Falling`是用于配置输入捕获信号的极性的选项。
- `TIM_ICPolarity_Rising`:表示输入捕获信号的触发极性为上升沿。当输入信号从低电平变为高电平时,触发输入捕获。
- `TIM_ICPolarity_Falling`:表示输入捕获信号的触发极性为下降沿。当输入信号从高电平变为低电平时,触发输入捕获。
选择适当的极性取决于你的硬件连接以及正交编码器的工作方式。如果正交编码器的脉冲信号是由上升沿触发的,那么应该选择`TIM_ICPolarity_Rising`;如果脉冲信号是由下降沿触发的,那么应该选择`TIM_ICPolarity_Falling`。
请根据你的具体硬件连接和正交编码器的工作方式来选择合适的极性设置。如果还有其他问题,请继续提问。
相关问题
oid TIM5_IRQHandler(void) { if (TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET&&i==0)//捕获1发生捕获事件 { TIM5CH1_CAPTURE_VAL=TIM_GetCapture1(TIM5); temp=TIM5CH1_CAPTURE_VAL; i=1; TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising); //CC1P=0 设置为上升沿捕获 } else if(TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET&&i==1) //捕获到一个shan沿 { TIM5CH1_CAPTURE_duty=TIM_GetCapture1(TIM5); i=2; TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising); //CC1P=0 设置为上升沿捕获 } else //还未开始,第一次捕获上升沿 { TIM5CH1_CAPTURE_VAL=0; TIM_SetCounter(TIM5,0); i=0; TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling); //CC1P=1 设置为下降沿捕获 } TIM_ClearITPendingBit(TIM5, TIM_IT_CC1|TIM_IT_Update); //清除中断标志位 }
这段代码是关于 STM32 的定时器中断处理函数 TIM5_IRQHandler。根据代码逻辑,可以分为三种情况:
. 当捕获事件发生,并且变量 i 的值为 0 时,执行第一个 if 语句块。在这个语句块中,获取 TIM5 的捕获值,并将其赋值给 TIM5CH1_CAPTURE_VAL 和 temp 变量。然后,将变量 i 的值设置为 1,并配置 TIM5 的 CC1Polarity 为上升沿捕获。
2. 当捕获事件发生,并且变量 i 的值为 1 时,执行第二个 else if 语句块。在这个语句块中,获取 TIM5 的捕获值,并将其赋值给 TIM5CH1_CAPTURE_duty 变量。然后,将变量 i 的值设置为 2,并配置 TIM5 的 CC1Polarity 为上升沿捕获。
3. 如果以上两个条件都不满足,则执行最后一个 else 语句块。在这个语句块中,将 TIM5CH1_CAPTURE_VAL 和 i 的值重新初始化为 0,并将 TIM5 的计数器清零。然后,配置 TIM5 的 CC1Polarity 为下降沿捕获。
最后,使用 TIM_ClearITPendingBit 函数清除 TIM5 的中断标志位。
TIM_ICInitTypeDef
TIM_ICInitTypeDef是一个结构体,用于配置定时器输入捕获模式的参数。它通常在使用定时器输入捕获功能时被使用。该结构体定义了以下成员变量:
1. TIM_Channel:指定要配置的输入通道,可以是TIM_CHANNEL_1、TIM_CHANNEL_2、TIM_CHANNEL_3或TIM_CHANNEL_4。
2. TIM_ICPolarity:指定输入捕获信号的极性,可以是TIM_ICPOLARITY_RISING、TIM_ICPOLARITY_FALLING或TIM_ICPOLARITY_BOTHEDGE。
3. TIM_ICSelection:指定输入捕获映射到TI1或TI2的通道,可以是TIM_ICSELECTION_DIRECTTI或TIM_ICSELECTION_INDIRECTTI。
4. TIM_ICPrescaler:指定输入捕获的预分频值,可以是TIM_ICPSC_DIV1、TIM_ICPSC_DIV2、TIM_ICPSC_DIV4或TIM_ICPSC_DIV8。
5. TIM_ICFilter:指定输入捕获的滤波器值,可以是0到15之间的任意值。
以上就是TIM_ICInitTypeDef结构体的成员变量及其作用。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)