我准备DIY一个基于stm32的智能车,用的是原子的MINIstm32开发板。里面没有输入捕捉的例程可参考,完全是看着stm32参考手册介绍配置的,不知道对不对,我是设置PA0捕捉上升沿,PA1捕捉下降沿的。这样可以吗?
void TIM2_Cap_Init(void)
{
RCC->APB1ENR|=1<<3; //TIM5 时钟使能
RCC->APB2ENR|=1<<2; //使能PORTA时钟
GPIOA->CRL&=0XFFFFFF00; //PA01 清除之前设置
GPIOA->CRL|=0X00000088; //PA01 输入
GPIOA->ODR|=0<<0; //PA0 下拉
GPIOA->ODR|=0<<1; //PA1 下拉
TIM2->CCMR1|=1<<0; //CC1配置为输入,IC1映射到TI1上
TIM2->CCMR1|=0<<2; //无分频
TIM2->CCMR1|=0<<4; //IC1F=0000 配置输入滤波器 不滤波
TIM2->CCMR1|=1<<8; //输入,映射TI1
TIM2->CCMR1|=0<<10; //不分频
TIM2->CCMR1|=0<<12; //不滤波
TIM2->CCER|=0<<1; //CC1P=0 上升沿捕获
TIM2->CCER|=1<<0; //CC1E=1 允许捕获计数器的值到捕获寄存器中
TIM2->CCER|=1<<4; //CC1E = 1
TIM2->CCER|=1<<5; //CC1P = 1 下降沿捕获
TIM2->DIER|=1<<1; //允许捕获中断
TIM2->DIER|=1<<0; //允许更新中断
TIM2->CR1|=0x01; //使能定时器2 定时器2?????
MY_NVIC_Init(2,0,TIM2_IRQChannel,2);//抢占2,子优先级0,组2
}
|