[mw_shl_code=c,true]void TIM2_Init_1(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<0;
RCC->APB2ENR|=1<<2; //开PA时钟
TIM2->ARR=arr;
TIM2->  SC=psc;
GPIOA->CRL&=0xfffffff0; //通道1的PA1
GPIOA->CRL|=0x00000008;
GPIOA->ODR&=~(1<<0); //下拉输入
TIM2->CCMR1|=1<<3;
TIM2->CCMR1|=1<<0; //CC1S 输入脚的选择
TIM2->CCMR1&=0xff0f; //IC1F清零 //不滤波
TIM2->CCER&=~(1<<1); //选择上升沿极性
TIM2->CCER|=1<<0; //开启通道1
TIM2->SMCR|=0x0007;
TIM2->SMCR|=0x0050;
TIM2->DIER|=1<<0;
TIM2->CR1|=1<<0;
TIM2->CR2|=1<<7;
MY_NVIC_Init(2,3,TIM2_IRQn,2);
}
void TIM2_Init_2(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<0;
RCC->APB2ENR|=1<<2; //开PA时钟
TIM2->ARR=arr;
TIM2->  SC=psc;
GPIOA->CRL&=0xffffff0f;
GPIOA->CRL|=0x00000080;
GPIOA->ODR&=~(1<<1); //下拉输入
TIM2->CCMR1|=1<<11;
TIM2->CCMR1|=1<<8; //CC1S 输入脚的选择
TIM2->CCMR1&=0x0fff; //IC1F清零 //不滤波
TIM2->CCER&=~(1<<5); //选择上升沿极性
TIM2->CCER|=1<<4; //选择通道2
TIM2->SMCR|=0x0007;
TIM2->SMCR|=0x0050;
TIM2->DIER|=1<<0;
TIM2->CR1|=1<<0;
TIM2->CR2|=1<<7;
MY_NVIC_Init(2,3,TIM2_IRQn,2);
}[/mw_shl_code]
[mw_shl_code=c,true]
[/mw_shl_code]
[mw_shl_code=c,true]
[/mw_shl_code]
原子哥,能在从模式下同时开四个通道吗?我这里贴出了两个通道的,我测试的结果是:在给第一个通道输入脉冲的时候,第二个通道也有数值的变化,然后,选择在通道2上输入脉冲,发现通道1的数值和通道2的数值一起变化,我就不理解了,请原子哥指教!
|