|
STM32103fx使用定時(shí)器TIM3實(shí)現(xiàn)燈一秒亮一次
使用keil代碼編譯沒問題,但是在proteus仿真上,燈是一直亮的狀態(tài),不進(jìn)行定時(shí)器中斷。改了很多次,不知道為啥,求助。代碼如下
- void TIM3_Config(void)
- {
- /*1表示亮燈 0表示不亮*/
- /* TIM_TimeBaseInitTypeDef結(jié)構(gòu)體在stm32f10x_tim.h中定義 */
- TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
- TIM_DeInit(TIM3);
- /* 計(jì)數(shù)10000次 */
- TIM_TimeBaseStructure.TIM_Period = (10000-1);
- /* 預(yù)分頻系數(shù),7200,因?yàn)橄到y(tǒng)時(shí)鐘72MHZ */
- TIM_TimeBaseStructure.TIM_Prescaler = 71;
- TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
- //TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
- TIM_TimeBaseStructure.TIM_ClockDivision = 0;
- /* 根據(jù)設(shè)定的參數(shù)設(shè)置TIM1 */
- TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
- TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
- TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//使能或者失能指定的TIM中斷TIM3,
- TIM_Cmd(TIM3, ENABLE);
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, DISABLE);
- }
- void GPIO_Config(void)
- {
- /* 定義GPIO_InitTypeDef結(jié)構(gòu)體,在stm32f10x_gpio.h中定義 */
- GPIO_InitTypeDef GPIO_InitStructure;
- /* 使能 */
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
- GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /*驅(qū)動(dòng)LED*/
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- }
- void NVIC_Config(void){
- NVIC_InitTypeDef NVIC_InitStructure;
- // 設(shè)置中斷組為0
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
- // 設(shè)置中斷來源
- NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn ;
- // 設(shè)置主優(yōu)先級(jí)為 0
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
- // 設(shè)置搶占優(yōu)先級(jí)為3
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
- }
復(fù)制代碼 仿真如下圖:
1.png (18.33 KB, 下載次數(shù): 33)
下載附件
2023-5-11 05:25 上傳
燈一直保持亮的狀態(tài),并不會(huì)一亮一滅,覺得是不是中斷有問題,但查了挺多資料,還是不行。
|
|