微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STM32中断为什么不行呢?

STM32中断为什么不行呢?

时间:10-02 整理:3721RD 点击:

  1. #include"stm32f10x.h"
  2. #include"stm32f10x_gpio.h"
  3. #include"stm32f10x_rcc.h"
  4. #include"delay.h"

  5. void RCC_Configuration(void)
  6. {
  7.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOB,ENABLE);
  8. }

  9. void GPIO_Configuration(void)
  10. {
  11.         GPIO_InitTypeDef GPIO_InitStructure;
  12.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;
  13.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  14.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
  15.         GPIO_Init(GPIOD,&GPIO_InitStructure);
  16.     GPIO_SetBits(GPIOD,GPIO_Pin_7);

  17.     GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
  18.     GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
  19.     GPIO_Init(GPIOB,&GPIO_InitStructure);
  20. }

  21. void EXTI_Configuration(void)
  22. {
  23.     EXTI_InitTypeDef EXTI_InitStructure;
  24.     EXTI_ClearITPendingBit(EXTI_Line10);

  25.     EXTI_InitStructure.EXTI_Line=EXTI_Line10;
  26.     EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
  27.     EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
  28.     EXTI_InitStructure.EXTI_LineCmd=ENABLE;
  29.     EXTI_Init(&EXTI_InitStructure);

  30.     GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource10);
  31. }

  32. void NVIC_Configuration(void)
  33. {
  34.     NVIC_InitTypeDef NVIC_InitStructure;
  35.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

  36.     NVIC_InitStructure.NVIC_IRQChannel=EXTI15_10_IRQn;
  37.     NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
  38.     NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
  39.     NVIC_Init(&NVIC_InitStructure);
  40. }

  41. void EXTI15_10_Handler(void)
  42. {
  43.     if(EXTI_GetITStatus(EXTI_Line10)!=RESET)
  44.     {
  45.         GPIO_ResetBits(GPIOD,GPIO_Pin_7);
  46.         EXTI_ClearFlag(EXTI_Line10);
  47.         EXTI_ClearITPendingBit(EXTI_Line10);               
  48.     }
  49. }

  50. int main(void)
  51. {
  52.         RCC_Configuration();
  53.         GPIO_Configuration();
  54.     EXTI_Configuration();
  55.     NVIC_Configuration();
  56.         while(1);  
  57. }

复制代码


哪位大哥给我看看!

管脚复用AFIO的时钟没有开启啊。RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top