stm32 tim6、tim7中斷配置以及注意事項

void TIM6_Init(void)
{
NVIC_InitTypeDef NVIC_InitStructure;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 13;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);


RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); 
TIM6->PSC = 72*2 - 1; //
TIM6->ARR = 25-1; // 10 000 Hz
TIM6->CR1 = 0x0004 + 0x0001; // URS = 1 CEN = 1
TIM6->DIER = 0x0001; // 

}

static uchar TIM6_Flag=0;
static uchar TIM6_Count=0;
void TIM6_IRQHandler(void)
{
////
//// TIM6_Count++;
//// if(TIM6_Count==4)
//// {
// if(TIM6_Flag==0)
// {
// TIM6_Flag=1 ;
// LED1(OFF)   ;
// }
// else
// {
// LED1(ON);
// TIM6_Flag=0;
// }
//// TIM6_Count=0;
//// }
//
//// LED2_TOGGLE ;
TIM6->SR=0x0000;//
STEPMOTOR1_STEP;
// TIM6->SR=0x0000;//
}

注意:進入中斷後,要立刻清標誌位。否則會出現意外。

發佈了26 篇原創文章 · 獲贊 10 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章