初级会员

- 积分
- 54
- 金钱
- 54
- 注册时间
- 2020-2-25
- 在线时间
- 5 小时
|
1金钱
在学习输入捕获实验的时候,我发现实验例程中的“timer.c”中的两个函数:“TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising); //CC1P=0 设置为上升沿捕获”和“TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling);//CC1P=1 设置为下降沿捕获”
很奇怪。
TIM_OC1PolarityConfig();这个函数的格式(可能这样说不够准确)应该是TIM_OC1PolarityConfig(TIMx,TIM_OCPolarity_High)或者TIM_OC1PolarityConfig(TIMx,TIM_OCPolarity_Low)
但是原子哥这里面却是TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising)和TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling)。
为什么会这样呢?恳请大神为小弟指点迷津。
|
最佳答案
查看完整内容[请看2#楼]
我明白原因了。查看TIM_OC1PolarityConfig()函数的内容,这个函数是用来配置TIMx_CCER这个寄存器的值。再从参考手册里查这个寄存器,手册里说,当这个寄存器的某一位为0时是上升沿捕获,为1时是下降沿捕获。于是,我们配置TIM_OC1PolarityConfig()时,就相当于配置TIMx_CCER寄存器,而配置这个寄存器就可以配置是上升还是下降沿捕获。函数的输入参数完全可以写成TIM_OCPolarity_High,意思是配置成上升沿捕获,或者写成TIM_OCP ...
|