打印

【NUCLEO-F411RE】外部中断检测周期,一个定时器捕获2路高脉宽,定时器产生3路PWM

[复制链接]
213|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
棋王高手|  楼主 | 2018-7-29 20:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天终于搞定了多路定时器输入捕获!使用的还是ST提供的【NUCLEO-F411RE】板子。在写多路捕获的时候,有个问题需要注意:捕获参数的初始化需要分别进行,比如:

[mw_shl_code=cpp,true]//初始化TIM5输入捕获参数
        TIM5_ICInitStructure.TIM_Channel = TIM_Channel_2;//使能2通道
        TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;        //上升沿捕获
        TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射CH1->TI1,CH2->TI2,CH3->TI3,CH4->TI4
        TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;         //配置输入分频,不分频
        TIM5_ICInitStructure.TIM_ICFilter = 0x00;//配置输入滤波器 不滤波
        TIM_ICInit(TIM5, &TIM5_ICInitStructure);
        TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1;
        TIM_ICInit(TIM5, &TIM5_ICInitStructure);[/mw_shl_code]
若如下进行初始化,则可能出现捕获中断错误:
[mw_shl_code=cpp,true]        TIM5_ICInitStructure.TIM_Channel = TIM_Channel_2| TIM_Channel_1;//使能四个通道
        TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;        //上升沿捕获
        TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射CH1->TI1,CH2->TI2,CH3->TI3,CH4->TI4
        TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;         //配置输入分频,不分频
        TIM5_ICInitStructure.TIM_ICFilter = 0x00;//配置输入滤波器 不滤波
        TIM_ICInit(TIM5, &TIM5_ICInitStructure);[/mw_shl_code]
这一点要注意!
代码添加到附件里,有兴趣的可以看看

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

378

主题

378

帖子

0

粉丝