- 主题:请教stm32怎样同时捕获输入脉冲的上升沿和下降沿?
我用的TIM9,代码如下:
TIM9->CCMR1 |= TIM_CCMR1_CC1S_0 ; // CC1S[1:0] = 01 选择输入端 IC1映射到TI1上 */
TIM9->CCMR1 |= TIM_CCMR1_CC2S_1 ; // CC2S[1:0] = 10 选择输入端 IC2映射到TI1上 */
TIM9->CCER |= TIM_CCER_CC1E ; // 使能捕获1,上升沿捕获
TIM9->CCER |= TIM_CCER_CC2P ; // 使能捕获2,下降沿捕获
但是程序工作不正常,好像只能捕获到一个沿,另一个沿捕获不到,
请问是哪里设置不对?
--
FROM 111.9.5.*
捕捉完,都清掉了SR的。
【 在 Mikov 的大作中提到: 】
: 每次捕捉完要重置标识位么?
--
FROM 117.136.64.*
请问伸两条腿具体是什么意思?
【 在 AGust2022 的大作中提到: 】
: 先伸两条腿
:
--
FROM 117.136.64.*
电路板已经做好了,这个恐怕不好改
【 在 AGust2022 的大作中提到: 】
: 节省时间,弄两个io脚,中断一上一下
: 等跑起来再说
:
--
FROM 117.136.64.*
这是个定义,请问具体怎么用呢?
【 在 AGust2022 的大作中提到: 】
: #define GPIO_MODE_IT_RISING_FALLING (MODE_INPUT | EXTI_IT | TRIGGER_RISING | TRIGGER_FALLING)
: 试试这个
:
--
修改:moonwalker FROM 117.136.64.*
FROM 117.136.64.*
我用的管脚是stm32f407的PA2,我回去查查能不能设为中断。
【 在 AGust2022 的大作中提到: 】
: 你把接收中断的引脚找到,配置为上下都启动,这是中断控制字
:
--
FROM 117.136.64.*
那个例程我看过,好像是用一个通道,先捕获高电平,捕获到高电平后再修改设置,改为捕获低电平,这样不符合我的应用要求。
【 在 eggcar 的大作中提到: 】
: st有个例程,使用TIMER获取占空比的,参考那个
:
--
FROM 117.136.64.*
我在中断里把isr打出来,只发现通道1的标识,以及超时溢出的标识,没发现通道2的标识。
等会我会去把整段代码贴出来
【 在 ironwei 的大作中提到: 】
: 首先是两个CC都要使能,只使能CC1E不行,其次要检查一下回调函数,是否包含了通道2的处理?
--
FROM 117.136.62.*
完全版的代码和串口输出结果在这里,麻烦您帮忙看看哪里不对?
【 在 ironwei 的大作中提到: 】
: 首先是两个CC都要使能,只使能CC1E不行,其次要检查一下回调函数,是否包含了通道2的处理?



--
FROM 111.9.5.*
比如?我主要是觉得用HAL或者STD的学习成本太多了,用又用不到几句,不划算。
【 在 freynew123 的大作中提到: 】
: ????????????????
: 现在不是HAL,怎么也得STD吧
: 还自己写寄存器
: ...................
--
修改:moonwalker FROM 111.9.5.*
FROM 111.9.5.*