[STM32] 求助帖,STM32基本时钟中断触发

[复制链接]
 楼主| 8677343898 发表于 2018-3-29 11:10 | 显示全部楼层 |阅读模式
各位大佬,我在编写TIM6基础时钟代码的时候,发现进不去中断,我仔细核对了代码没有发现问题,麻烦各位指导下,以下是具体代码
  1. #include<stm32f10x.h>
  2. #define TIM6_IRQn    54
  3. static unsigned int time;
  4. void delay(uint16_t n)
  5. {
  6.         int i,j;
  7.         for(i=0;i<n;i++)
  8.                 for(j=0;j<8500;j++);
  9. }
  10. void tim_init()
  11. {
  12.         TIM_TimeBaseInitTypeDef tim;
  13.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);
  14.         tim.TIM_Period = 1000-1;
  15.         tim.TIM_Prescaler = 71;
  16.         tim.TIM_ClockDivision = TIM_CKD_DIV1;
  17.         tim.TIM_CounterMode = TIM_CounterMode_Up;
  18.         tim.TIM_RepetitionCounter = 0;
  19.        
  20.         TIM_TimeBaseInit(TIM6,&tim);
  21.         TIM_ClearFlag(TIM6,TIM_FLAG_Update);
  22.         TIM_ITConfig(TIM6,TIM_IT_Update,ENABLE);
  23.         TIM_Cmd(TIM6,ENABLE);
  24.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,DISABLE);
  25. }

  26. void nvic_init()
  27. {
  28.         NVIC_InitTypeDef nvic;
  29.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
  30.         nvic.NVIC_IRQChannel  =TIM6_IRQn;
  31.         nvic.NVIC_IRQChannelPreemptionPriority = 0;
  32.         nvic.NVIC_IRQChannelSubPriority = 3;
  33.         nvic.NVIC_IRQChannelCmd= ENABLE;
  34.         NVIC_Init(&nvic);
  35. }
  36. void led_init()
  37. {
  38.         GPIO_InitTypeDef led_gpio;
  39.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC| RCC_APB2Periph_AFIO,ENABLE);
  40.         GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
  41.         GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
  42.         led_gpio.GPIO_Pin = GPIO_Pin_13;
  43.         led_gpio.GPIO_Mode = GPIO_Mode_Out_PP;
  44.         led_gpio.GPIO_Speed = GPIO_Speed_50MHz;
  45.         GPIO_Init(GPIOC,&led_gpio);
  46. }
  47. int main()
  48. {
  49.         led_init();
  50.         tim_init();
  51.         nvic_init();
  52.         GPIOC->BSRR = GPIO_Pin_13;
  53.                 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);
  54.         //delay(1000);
  55.         while(1){}
  56. }
  57. void TIM6_IRQHandler()
  58. {
  59.         if(TIM_GetITStatus(TIM6,TIM_IT_Update) != RESET){
  60.                 time++;
  61.                 if(time >=1000)
  62.                 {
  63.                         time = 0;
  64.                         /*GPIOC->IDR = ~GPIOC->IDR & GPIO_Pin_13;
  65.                         if(GPIOC->ODR & GPIO_Pin_13)
  66.                         {
  67.                                 GPIOC->BRR = GPIO_Pin_13;
  68.                         }else
  69.                         {GPIOC->BSRR = GPIO_Pin_13;}
  70.                         */
  71.                         GPIOC->BRR = GPIO_Pin_13;
  72.                 }
  73.                 TIM_ClearITPendingBit(TIM6,TIM_FLAG_Update);
  74.         }
  75. }
 楼主| 8677343898 发表于 2018-3-29 11:14 | 显示全部楼层
另外,宏定义#define TIM6_IRQn  是因为工程选项里的预先宏定义中是STM32F10X_MD,里面没有包含TIM6_IRQn的定义,我如果换成有TIM6定义的,编译的时候会出现更多的错误,所以直接在代码开头谢了#defineTIM6_IRQn 。编译完成后,烧到板子上发现功能实现不了,请各位指导
ayb_ice 发表于 2018-3-29 13:11 | 显示全部楼层
TIM6_IRQHandler要与启动文件的中断名对应
ayb_ice 发表于 2018-3-29 13:21 | 显示全部楼层
我用的是STM32F4,中断号也是54,但名字是TIM6_DAC_IRQHandler

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评论

老铁,我找到错误了,已经成功了。TIM6没有全部改为TIM3 。 这低级错误,我也是醉了,再次感谢。  发表于 2018-3-29 22:01
delin17 发表于 2018-3-29 13:52 | 显示全部楼层
首先初始化完了后,把他时钟关掉了?他怎么跑啊?
ayb_ice 发表于 2018-3-29 13:58 | 显示全部楼层
delin17 发表于 2018-3-29 13:52
首先初始化完了后,把他时钟关掉了?他怎么跑啊?

后面又开了
 楼主| 8677343898 发表于 2018-3-29 17:52 | 显示全部楼层
ayb_ice 发表于 2018-3-29 13:21
我用的是STM32F4,中断号也是54,但名字是TIM6_DAC_IRQHandler

老铁,果不出你所料,不过不同的是,我的启动文件里竟然没有TIM6的入口,我也是醉了,
之后,我把TIM6换成了TIM3,还是有问题,目前正努力排错中。谢啦,老铁
  1. __Vectors       DCD     __initial_sp               ; Top of Stack
  2.                 DCD     Reset_Handler              ; Reset Handler
  3.                 DCD     NMI_Handler                ; NMI Handler
  4.                 DCD     HardFault_Handler          ; Hard Fault Handler
  5.                 DCD     MemManage_Handler          ; MPU Fault Handler
  6.                 DCD     BusFault_Handler           ; Bus Fault Handler
  7.                 DCD     UsageFault_Handler         ; Usage Fault Handler
  8.                 DCD     0                          ; Reserved
  9.                 DCD     0                          ; Reserved
  10.                 DCD     0                          ; Reserved
  11.                 DCD     0                          ; Reserved
  12.                 DCD     SVC_Handler                ; SVCall Handler
  13.                 DCD     DebugMon_Handler           ; Debug Monitor Handler
  14.                 DCD     0                          ; Reserved
  15.                 DCD     PendSV_Handler             ; PendSV Handler
  16.                 DCD     SysTick_Handler            ; SysTick Handler

  17.                 ; External Interrupts
  18.                 DCD     WWDG_IRQHandler            ; Window Watchdog
  19.                 DCD     PVD_IRQHandler             ; PVD through EXTI Line detect
  20.                 DCD     TAMPER_IRQHandler          ; Tamper
  21.                 DCD     RTC_IRQHandler             ; RTC
  22.                 DCD     FLASH_IRQHandler           ; Flash
  23.                 DCD     RCC_IRQHandler             ; RCC
  24.                 DCD     EXTI0_IRQHandler           ; EXTI Line 0
  25.                 DCD     EXTI1_IRQHandler           ; EXTI Line 1
  26.                 DCD     EXTI2_IRQHandler           ; EXTI Line 2
  27.                 DCD     EXTI3_IRQHandler           ; EXTI Line 3
  28.                 DCD     EXTI4_IRQHandler           ; EXTI Line 4
  29.                 DCD     DMA1_Channel1_IRQHandler   ; DMA1 Channel 1
  30.                 DCD     DMA1_Channel2_IRQHandler   ; DMA1 Channel 2
  31.                 DCD     DMA1_Channel3_IRQHandler   ; DMA1 Channel 3
  32.                 DCD     DMA1_Channel4_IRQHandler   ; DMA1 Channel 4
  33.                 DCD     DMA1_Channel5_IRQHandler   ; DMA1 Channel 5
  34.                 DCD     DMA1_Channel6_IRQHandler   ; DMA1 Channel 6
  35.                 DCD     DMA1_Channel7_IRQHandler   ; DMA1 Channel 7
  36.                 DCD     ADC1_2_IRQHandler          ; ADC1_2
  37.                 DCD     USB_HP_CAN1_TX_IRQHandler  ; USB High Priority or CAN1 TX
  38.                 DCD     USB_LP_CAN1_RX0_IRQHandler ; USB Low  Priority or CAN1 RX0
  39.                 DCD     CAN1_RX1_IRQHandler        ; CAN1 RX1
  40.                 DCD     CAN1_SCE_IRQHandler        ; CAN1 SCE
  41.                 DCD     EXTI9_5_IRQHandler         ; EXTI Line 9..5
  42.                 DCD     TIM1_BRK_IRQHandler        ; TIM1 Break
  43.                 DCD     TIM1_UP_IRQHandler         ; TIM1 Update
  44.                 DCD     TIM1_TRG_COM_IRQHandler    ; TIM1 Trigger and Commutation
  45.                 DCD     TIM1_CC_IRQHandler         ; TIM1 Capture Compare
  46.                 DCD     TIM2_IRQHandler            ; TIM2
  47.                 DCD     TIM3_IRQHandler            ; TIM3
  48.                 DCD     TIM4_IRQHandler            ; TIM4
  49.                 DCD     I2C1_EV_IRQHandler         ; I2C1 Event
  50.                 DCD     I2C1_ER_IRQHandler         ; I2C1 Error
  51.                 DCD     I2C2_EV_IRQHandler         ; I2C2 Event
  52.                 DCD     I2C2_ER_IRQHandler         ; I2C2 Error
  53.                 DCD     SPI1_IRQHandler            ; SPI1
  54.                 DCD     SPI2_IRQHandler            ; SPI2
  55.                 DCD     USART1_IRQHandler          ; USART1
  56.                 DCD     USART2_IRQHandler          ; USART2
  57.                 DCD     USART3_IRQHandler          ; USART3
  58.                 DCD     EXTI15_10_IRQHandler       ; EXTI Line 15..10
  59.                 DCD     RTCAlarm_IRQHandler        ; RTC Alarm through EXTI Line
  60.                 DCD     USBWakeUp_IRQHandler       ; USB Wakeup from suspend
simonliu009 发表于 2018-4-1 11:26 | 显示全部楼层
用cubeMX 这种低级错误就不容易犯了
caoenq 发表于 2018-4-9 08:46 | 显示全部楼层
只初始化定时器,没有开启的语句?
kingkits 发表于 2018-4-19 14:06 | 显示全部楼层
中断的名字要和中断向量表中一致
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

43

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部