想用TIM16 触发 TIM1,TIM2 同时启动计数。结果TIM1,TIM2 的CR1_CEN置一后自己就跑起来了。
void StartTimers(void)
{
RCC-> APB1RSTR1 = RCC_APB1RSTR1_TIM2RST|RCC_APB1RSTR1_TIM3RST|RCC_APB1RSTR1_TIM4RST;
RCC-> APB2RSTR = RCC_APB2RSTR_TIM1RST;
RCC-> APB1RSTR1 =0;
RCC-> APB2RSTR = 0;
/*********TIM16 为触发源,进入被触发模式********** */
uint32_t tmp = TIM_TS_ITR7|TIM_SLAVEMODE_TRIGGER;
TIM1->SMCR =tmp;
TIM2->SMCR =tmp;
TIM3->SMCR =tmp;
TIM4->SMCR =tmp;
TIM1 ->CR1 |= TIM_CR1_CEN;
TIM2 ->CR1 |= TIM_CR1_CEN;
TIM3 ->CR1 |= TIM_CR1_CEN;
TIM4 ->CR1 |= TIM_CR1_CEN;
//?! 这时候4个定时器都开始计数了,不等TIM16触发
见鬼了。SLAVE 改成GATE触发模式倒是都安静等待触发。
这 G431 是不是山寨的? |
|