你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32F7学习笔记(四)-外部中断

[复制链接]
STMCU小助手 发布时间:2022-7-3 16:00
一、打开cubemx,配置按键相关的管脚为外部中断模式

20190410200153855.png
20190410200213300.png

2019041020023397.png

J`622WPAG1H6(WN_[E3ZP.png


根据阿波罗开发板的原理图可以知道,只有PA0脚当按键按下时是高电平,其余几个按键按下时都为低电平,因此配置PA0为下拉,上升沿触发中断,其他按键管脚配置为上拉,下降沿触发中断。配置完如下图所示

EKZR(]F{GMCEGU_Y2EB92RO.png

二、配置中断优先级
点击NVIC选项卡,配置如下

V0A(B2A%@2@UI_N~GQWL011.png

三、生成代码
在stm32f7xxit.c文件中可以看到与外部中断相关的中断服务函数

{M3_~XQWUPD`K{`~Y[YMBSC.png

根据上图的方法我们进入到HAL_GPIO_EXTI_IRQHandler函数中可以看到函数调用了 HAL_GPIO_EXTI_Callback函数,我们只需要重构该函数即可。



四、添加代码
在stm32f7xxit.c中添加函数如下

  1. void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
  2. {
  3.     switch(GPIO_Pin)
  4.     {
  5.         case KEY0_Pin:
  6.             printf("key0 pass\r\n");
  7.         break;
  8.         case KEY1_Pin:
  9.             printf("key1 pass\r\n");
  10.         break;
  11.         case KEY2_Pin:
  12.             printf("key2 pass\r\n");
  13.         break;
  14.         case WK_UP_Pin:
  15.             printf("kwk_up pass\r\n");
  16.         break;
  17.         default:break;
  18.     }
  19. }
复制代码

五、编译下载,通过串口调试助手观看现象
按下按键会有对应的键值打印出来,实际现象当按下某个按键时,该键值会多次打印,是由于按键抖动造成了,只需要添加消抖程序即可

5F8Y9I`@WE}2$F[XAH5B552.png


收藏 评论0 发布时间:2022-7-3 16:00

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版