ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[STM32F7] 外部中断的问题

[复制链接]
495|23
 楼主 | 2019-4-11 17:36 | 显示全部楼层 |阅读模式
  1. #include "EXIT.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "LED.h"


  5. //ÍⲿÖжϳõʼ»¯
  6. void EXIT_Init()
  7. {
  8.    //ÅäÖÃIO¿Ú
  9.          //ʹÄÜIO¿ÚµÄʱÖÓ
  10.          //ÅäÖÃIO¿ÚµÄģʽ ÊäÈë Êä³ö ¸´Óà ÉÏÀ­ÏÂÀ­ ¿ªÂ©ÍÆÍìµÈģʽ
  11.          GPIO_InitTypeDef GPIO_Initure;
  12.          
  13.          __HAL_RCC_GPIOA_CLK_ENABLE();           //ʹÄÜGPIOAµÄʱÖÓ
  14.    __HAL_RCC_GPIOC_CLK_ENABLE();           //ʹÄÜGPIOBµÄʱÖÓ
  15.    __HAL_RCC_GPIOH_CLK_ENABLE();           //ʹÄÜGPIOHµÄʱÖÓ
  16.         //ÅäÖÃPA0
  17.    GPIO_Initure.Pin = GPIO_PIN_0;
  18.          GPIO_Initure.Mode = GPIO_MODE_IT_RISING;//ÉèÖÃΪÉÏÉýÑØ´¥·¢
  19.          GPIO_Initure.Pull = GPIO_PULLDOWN;      //ÏÂÀ­
  20.          HAL_GPIO_Init(GPIOA, &GPIO_Initure);
  21.         //ÅäÖÃPC13
  22.          GPIO_Initure.Pin = GPIO_PIN_13;
  23.          GPIO_Initure.Mode = GPIO_MODE_EVT_FALLING;//ÉèÖÃϽµÑØ´¥·¢
  24.          GPIO_Initure.Pull = GPIO_PULLUP;          //ÉÏÀ­
  25.          HAL_GPIO_Init(GPIOC,&GPIO_Initure);
  26.         //ÅäÖÃPH2ºÍPH3
  27.          GPIO_Initure.Pin = GPIO_PIN_2 | GPIO_PIN_3;
  28.          HAL_GPIO_Init(GPIOH,&GPIO_Initure);
  29.        
  30.          //ÉèÖÃÖжÏÏßµÄÓÅÏȼ¶
  31.          
  32.          //ÖжÏÏß0
  33.    HAL_NVIC_SetPriority(EXTI0_IRQn,2,0);//ÇÀÕ¼ÓÅÏȼ¶2 ÏìÓ¦ÓÅÏȼ¶0
  34.          HAL_NVIC_EnableIRQ(EXTI0_IRQn);      //ʹÄÜÖжÏ
  35.          //ÖжÏÏß2
  36.          HAL_NVIC_SetPriority(EXTI2_IRQn,2,1);
  37.    HAL_NVIC_EnableIRQ(EXTI2_IRQn);
  38.          //ÖжÏÏß3
  39.          HAL_NVIC_SetPriority(EXTI3_IRQn,2,2);
  40.          HAL_NVIC_EnableIRQ(EXTI3_IRQn);
  41.          //ÖжÏÏß13
  42.          HAL_NVIC_SetPriority(EXTI15_10_IRQn,2,3);
  43.          HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
  44.          

  45. }
  46. //ÖжϷþÎñº¯Êý
  47.         void EXIT0_IRQHandler()
  48.          {
  49.           HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
  50.          }
  51.         void EXIT2_IRQHandler()
  52.          {
  53.          HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2);
  54.          }
  55.   void EXIT3_IRQHandler()
  56.          {
  57.          HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);
  58.          }
  59.    void EXIT13_IRQHandler( )
  60.          {
  61.          HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13);
  62.          }
  63.          
  64.          //»Øµ÷º¯Êý
  65.          //ËùÓеÄÖжϺ¯Êý¶¼Òªµ÷ÓÃ
  66.          void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
  67.          {
  68.                  delay_ms(100);
  69.            switch(GPIO_Pin)
  70.                  {
  71.                          case GPIO_PIN_0:
  72.          if(WK_UP==1)
  73.                                  {                                         
  74.                                          //printf("\r\nWK_UP\r\n");
  75.                                          LED0(0);
  76.                                          LED1(0);
  77.                                  }
  78.                                  break;
  79.                          case GPIO_PIN_2:
  80.                                  if(KEY1==0)
  81.                                  {
  82.                                    printf("\r\nKEY1\r\n");
  83.                                  }
  84.                                  break;
  85.        case GPIO_PIN_3:
  86.          if(KEY0==0)
  87.                                  {
  88.                                    printf("\r\nKEY0\r\n");
  89.                                  }
  90.                                  break;
  91.        case GPIO_PIN_13:
  92.                                  if(KEY2==0)
  93.                                  {
  94.                                          printf("\r\nKEY2\r\n");
  95.                                  }
  96.                                  break;       
  97.                  }
  98.          }
复制代码


查看了寄存器的值没发现问题 但是不可以用 求大佬指教

使用特权

评论回复
 楼主 | 2019-4-11 17:48 | 显示全部楼层
实在找不到问题了 有大佬给看看没

使用特权

评论回复
| 2019-4-12 00:00 | 显示全部楼层
到底啥问题,不能用如何不能用

使用特权

评论回复
| 2019-4-12 00:01 | 显示全部楼层
编译能通过吗

使用特权

评论回复
| 2019-4-12 00:01 | 显示全部楼层
跑个官方的例子。

使用特权

评论回复
| 2019-4-12 00:01 | 显示全部楼层
下载cubeF7里面很多例子的。这个HAL库要掌握个基本使用方法。

使用特权

评论回复
| 2019-4-12 16:00 | 显示全部楼层
楼主这个中断时什么问题呢?      

使用特权

评论回复
| 2019-4-12 16:00 | 显示全部楼层
是不是外部的中断没有开启呢   

使用特权

评论回复
| 2019-4-12 16:00 | 显示全部楼层
楼主可以使用官网的代码进行测试。  

使用特权

评论回复
| 2019-4-12 16:00 | 显示全部楼层
外部中断存在什么问题呢?            

使用特权

评论回复
| 2019-4-12 16:00 | 显示全部楼层
STM32F7这个芯片没有使用过。         

使用特权

评论回复
| 2019-4-12 16:01 | 显示全部楼层
楼主可以使用stm32cube生成文件呢。   

使用特权

评论回复
| 2019-4-12 16:01 | 显示全部楼层
楼主的问题解决了吗?               

使用特权

评论回复
| 2019-4-12 16:01 | 显示全部楼层
现在来看也有可能是硬件的问题了。   

使用特权

评论回复
| 2019-4-12 16:01 | 显示全部楼层
软件解决不了吗?                  

使用特权

评论回复
| 2019-4-12 16:02 | 显示全部楼层
使用别人配置好的代码进行编写。  

使用特权

评论回复
| 2019-4-12 16:02 | 显示全部楼层
这个代码报错吗?           

使用特权

评论回复
| 2019-4-12 16:55 | 显示全部楼层
参考例子。

使用特权

评论回复
 楼主 | 2019-4-12 17:53 | 显示全部楼层
zhuotuzi 发表于 2019-4-12 00:00
到底啥问题,不能用如何不能用

就是按下之后 能进入中断 但是串口并没有输出数据

使用特权

评论回复
 楼主 | 2019-4-13 14:35 | 显示全部楼层
myiclife 发表于 2019-4-12 16:01
楼主的问题解决了吗?

解决了 但是只有一个按键可以用其他三个却不可以用

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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