[mw_shl_code=c,true]TIM2 -> PSC = 16000;
TIM2 -> ARR = 300;
TIM2 -> CCR1 = 100;
TIM2 -> CCR2 = 100;
TIM2 -> CCR3 = 100;
TIM2 -> CCR4 = 100;
TIM2 -> CCMR1 |= 0x6060;
TIM2 -> CCMR2 |= 0x6060;
TIM2 -> CCER |= 0x1111;
TIM2 -> BDTR |= 0x8000;
TIM2 -> CR1 = 1;
TIM3 -> PSC = 16000;
TIM3 -> ARR |= 0xffff;
TIM3 -> CCMR1 |= 0x0001;
TIM3 -> CCMR2 |= 0x0001;
TIM3 -> CCER |= 0x0101;
TIM3 -> BDTR |= 0x8000;
TIM3 -> CR1 = 1;
while(1){
chprintf(chp, "%d \n\r", temp);
while(!(TIM3 -> SR & 0x0008));
chprintf(chp, "success SR=%x\n\r", TIM3 -> SR);
TIM3 -> SR &= 0x0;
chThdSleepMilliseconds(3);
chprintf(chp, "one SR=%x\n\r", TIM3 -> SR);
chThdSleepMilliseconds(3);
chprintf(chp, "two SR=%x\n\r", TIM3 -> SR);
temp++;
} [/mw_shl_code]
其中chprintf是打印,chThdSleepMilliseconds(3);是毫秒级的延时
可是为什么我捕获TIM2的时候串口在不停的打印,几乎不是捕获到上升沿的时候CC3IF才会置1 |