初级会员

- 积分
- 80
- 金钱
- 80
- 注册时间
- 2016-6-6
- 在线时间
- 17 小时
|

楼主 |
发表于 2017-5-6 14:25:33
|
显示全部楼层
本帖最后由 lkposible4 于 2017-5-6 14:27 编辑
定时器4中断程序
[mw_shl_code=c,true]void TIM4_IRQHandler(void){
GPIOC_2=!GPIOC_2;
TIM_ClearITPendingBit(TIM4,TIM_IT_Update);
}[/mw_shl_code]
主函数
[mw_shl_code=c,true]int main(void){
Init();
TIM_Cmd(TIM4,ENABLE);
while(1){
delay_ms(5000);
}
}[/mw_shl_code]
定时器初始化:
[mw_shl_code=c,true] TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); ///ê1ÄüTIM4ê±Öó
TIM_TimeBaseInitStructure.TIM_Period = 5000-1; //×Ô¶ˉÖØ×°ÔØÖμ
TIM_TimeBaseInitStructure.TIM_Prescaler=8400-1; //¶¨ê±Æ÷·ÖÆμ£¨òÑμ÷êÔ£¬¶¨ê±Æ÷ê±ÖóÎa84M£©//¶¨ê±Æ÷ê±Öó84M£¬·ÖÆμÏμêy8400£¬ËùòÔ84M/8400=10KhzμļÆêyÆμÂ꣬¼Æêy5000′ÎÎa0.5s
TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //ÏòéϼÆêyÄ£ê½
TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure);//3õê¼»ˉTIM4
TIM_ClearITPendingBit(TIM4,TIM_IT_Update);//Çå3yÖD¶Ï±êÖ¾
TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE); //ÔêDí¶¨ê±Æ÷4¸üDÂÖD¶Ï
//TIM_Cmd(TIM4,ENABLE); //ê1Äü¶¨ê±Æ÷4
NVIC_InitStructure.NVIC_IRQChannel=TIM4_IRQn; //¶¨ê±Æ÷4ÖD¶Ï
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01; //ÇàÕ¼óÅÏè¼¶1
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03; //×óóÅÏè¼¶3
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);[/mw_shl_code] |
|