久芯网

哪款芯片的TIM14输入捕获极性CC1P可设置为双沿(CCER第2位有效)?

avatar ZzZzZz......... 提问时间: 2023-08-27 12:56:26 / 已解决
STM32F103手册中介绍,TIM14输入捕获极性CC1P(bit1-2)可设置为11,为双沿捕获,但是手册又描述了bit2为保留,哪些芯片能够设置呢?双沿是1次上升沿采样,下1次下降沿采样吗?
7个回答
  • avatar butterflyspring
    最佳答案
    回答时间: 2023-08-27 13:24:38

    的确如楼主说的,寄存器位描述是可以双边沿的,但是寄存器BIT2描述成保留位,但实际上这两位设置是用了CC1NP共同设置,请参考附图。不过个人认为通常设置双边沿捕获的方式不太常用,而且没有前后区分。脉冲时间短,处理起来时间又紧张。 我和 yr的观点一致,用一个定时器的两个引脚做捕获,一个上升沿,一个下降沿。这样只响应一个中断,那么前面那个值和顺序也就固定了,处理起来时间就宽松很多。唯一缺点就是多用了一个引脚。

  • avatar yr
    回答时间: 2023-08-27 13:43:29

    你不能同时用两个通道吗,接在一起,一个配成上升沿捕捉,一个配成下降沿捕捉,分别在两个中断内处理。f103有timer14吗?我知道g4系列支持两个沿捕捉。

  • avatar xmshao
    回答时间: 2023-08-27 14:01:47

    首先,STM32F1系列的TIM14的通道1是支持双沿捕捉的。 不过,客观上将手册这个地方写得有点问题,描述有点突兀。看懂不易,呵呵! 建议你将上文也看看。保留位是BIT2不错。手册里的00/01其实是bit3/bit1,对于一个通道的极性选择实质上是由CCxNP和CCxP控制位决定的。 if (HAL_TIM_IC_Init(&htim14) != HAL_OK) { Error_Handler(); } sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_BOTHEDGE; sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI; sConfigIC.ICPrescaler = TIM_ICPSC_DIV1; sConfigIC.ICFilter = 0; if (HAL_TIM_IC_ConfigChannel(&htim14, &sConfigIC, TIM_CHANNEL_1) != HAL_OK) { Error_Handler(); }

  • avatar ZzZzZz.........
    回答时间: 2023-08-27 14:33:50
    yr 发表于 2021-7-21 08:49
    你不能同时用两个通道吗,接在一起,一个配成上升沿捕捉,一个配成下降沿捕捉,分别在两个中断内处理。f103 ...

    感谢您的解答。 STM32F103的超大容量xl类型有tim9---tim14;

  • avatar ZzZzZz.........
    回答时间: 2023-08-27 14:55:15
    xmshao 发表于 2021-7-21 11:07
    首先,STM32F1系列的TIM14的通道1是支持双沿捕捉的。

    感谢您的解答。那是不是这种双沿没有实际应用呢? 因为不确定进中断是上升沿还是下降沿,无法测出高电平或者低电平时间,只能测试周期,那这种模式就没有存在的意义了吧。

  • avatar ZzZzZz.........
    回答时间: 2023-08-27 15:23:05
    butterflyspring 发表于 2021-7-21 11:19
    的确如楼主说的,寄存器位描述是可以双边沿的,但是寄存器BIT2描述成保留位,但实际上这两位设置是用了CC1N ...

    感谢您的解答。1、那是不是这种双沿不是用的少,而是压根没有实际应用呢? 因为不确定进中断是上升沿还是下降沿,无法测出高电平或者低电平时间,只能测试周期,那这种模式就没有存在的意义了吧。 2、还有个问题请教下,直接用一个通道采集可以吗?上升沿捕获完成后切换极性为下降沿,下降沿捕获完成后切换极性为上升沿。

  • avatar xmshao
    回答时间: 2023-08-27 15:54:35
    ZzZzZz......... 发表于 2021-7-21 11:53
    感谢您的解答。那是不是这种双沿没有实际应用呢? 因为不确定进中断是上升沿还是下降沿,无法测出高电平 ...

    1、至于这个特性用得多寡,个人没法做结论。反正有这个特性在,遇到合适场合时就可以使用。 2、如果你想测量脉宽,1个通道配合极性切换也可以,那就得手动做极性的切换,也是种可行的常用方法。当然,我们也可以基于一路输入,映射到2个捕捉通道,分别就不同极性进行捕捉。大部分定时器支持该特性。这个方法也比较方便,手册里有相关方式的介绍。

会员中心 微信客服
客服
回到顶部