中级会员
 
- 积分
- 447
- 金钱
- 447
- 注册时间
- 2014-9-4
- 在线时间
- 107 小时
|
5金钱
本帖最后由 liujia 于 2020-10-11 15:08 编辑
在正点原子的例程里,定时器TIM2上升沿捕获程序是这样的:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
TIM2_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; //
..................
中断服务程序:
void TIM2_IRQHandler(void)
{
if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET)//捕获1发生捕获事件
{
status=1;//捕获到了上升沿
}
TIM_ClearITPendingBit(TIM2, TIM_IT_CC1|TIM_IT_Update); //清除中断标志位
}
实验测试:PA0引脚初始电平为低电平,能够捕获上升沿
现在我的疑问是:怎么捕获下降沿?
我修改成这样:
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
TIM2_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Falling;
修改这两个地方
测试结果:PA0初始电平还是低电平,还是只能捕获上升沿
PA0硬件没有接其他外设
|
|