打印
[STM32F1]

定时器输入捕获中断自动发生

[复制链接]
744|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
MOMO2333|  楼主 | 2017-5-8 21:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define TIM2CH1_CAPTURE_STA TIM2->SR//输入捕获状态                           
#define TIM2CH1_CAPTURE_VAL TIM2->CCR1//输入捕获CNT的值


void TIM2_IRQHandler()
{
    if(TIM_GetFlagStatus(TIM2,TIM_FLAG_Update)!=RESET)//溢出次数
   {        
        flag++;
        printf("%d",flag);
          delay_ms(200);
     }
    if((TIM2CH1_CAPTURE_STA&0x03)==0x03)//捕获到了
    {
     if(Flag_RisingFalling==1)        //捕获到上升沿
    {
          TIM2CH1_CAPTURE_STA&=0Xfd;        //标志位置0
          printf("A=%d\r\n",TIM2CH1_CAPTURE_VAL);
             delay_ms(10);
            TIM2CH1_CAPTURE_VAL;
            TIM_SetCounter(TIM2,0);//把计数器和CCR1的值都置0
              Flag_RisingFalling=0;//上升沿 1,下降沿 0
                    TIM_OC1PolarityConfig(TIM2,TIM_ICPolarity_Falling); //CC1P=0 设置为下降沿捕获
    }
    else  //捕获到下降沿
                {
                 TIM2CH1_CAPTURE_STA&=0Xfd;
                      TIM2CH1_CAPTURE_VAL;
                    
                      printf("B=%d\n",TIM2CH1_CAPTURE_VAL);
                        delay_ms(10);
                      Flag_RisingFalling=1;
                      TIM_OC1PolarityConfig(TIM2,TIM_ICPolarity_Rising); //CC1P=0 设置为上升沿捕获
                }   
   }

      TIM_ClearITPendingBit(TIM2, TIM_IT_CC1|TIM_IT_Update); //清除中断标志位
}
   

请问为什么我把程序下载后,串口自动打印数据?
沙发
huangcunxiake| | 2017-5-8 22:21 | 只看该作者
你肯定设置了下载完成后自动复位运行吧。

使用特权

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

本版积分规则

8

主题

11

帖子

0

粉丝