void tim3_init(uint16_t time3)
{
TIM_TimeBaseInitTypeDef timer_init_structure;
NVIC_InitTypeDef nvic_init_structure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //ê1ÄüTIM3ê±Öó
nvic_init_structure.NVIC_IRQChannel = TIM3_IRQn; //Ñ¡ÔñTIM3ÖD¶Ïí¨μà
nvic_init_structure.NVIC_IRQChannelCmd = ENABLE; //TIM3ÖD¶Ïê1Äü
nvic_init_structure.NVIC_IRQChannelPriority = 1; //óÅÏ輶Îa1
NVIC_Init(&nvic_init_structure);
TIM_DeInit(TIM3); //¸′λTIM3
TIM_TimeBaseStructInit(&timer_init_structure); //3õê¼»ˉTIMBASE½á11ìå
timer_init_structure.TIM_Prescaler = 80-1; //¼Æêyê±ÖóÔ¤·ÖÆ죬f=1M.systick / 1 us
timer_init_structure.TIM_CounterMode = TIM_CounterMode_Up; //ÏòéϼÆêyÄ£ê½
timer_init_structure.TIM_Period = time3-1; //¶¨ê±ÖüÆú
timer_init_structure.TIM_ClockDivision = TIM_CKD_DIV1; //Ïμí3ê±Öó,2»·ÖÆμ,48M
timer_init_structure.TIM_RepetitionCounter = 0x00; //·¢éú0+1′Îupdate
TIM_TimeBaseInit(TIM3, &timer_init_structure);
TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE); //ê1ÄüTIM3ÖD¶Ï
TIM_SelectOutputTrigger(TIM3, TIM_TRGOSource_Update); //ÔËDDTIME3μÄupdateê±¼ä¸üDÂÎa′¥·¢Ô′
TIM_Cmd(TIM3, ENABLE); //ê1ÄüTIM3
}
其中, TIM_DeInit(TIM3); //¸′λTIM3
TIM_TimeBaseStructInit(&timer_init_structure); //3õê¼»ˉTIMBASE½á11ìå
这两条语句我看好多例程有的加上了,有的没有加上。两种都可以仿真看到定时器已经在工作了。这两个语句在这里初始化有什么作用吗?请朋友指点一下,想不出来原因了。谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>