当前位置: 首页 > article >正文

学习CubeIDE——外设中断开发

实验现象:使用按键(KEY_2)来产生中断,中断程序是LED灯翻转

在我看来,外设中断就是芯片与人们对其进行操作和控制的一种交互方式。芯片内的程序是循环执行下去的,我们通过一些操作,比如键盘按键,鼠标等让CPU意识到有指令进来,放下手头的工作来响应我们。

1、ioc设置

将PC13 设置GPIO_EXTI 模式

(1)在GPIO mode 中选择 “下降沿触发中断模式”,选择接“上拉电阻” 。

(2) 在NVIC中点击Enable,使能中断。

2、程序

中断的过程可以简单地理解为: 外设中断触发——中断处理函数——中断操作

中断处理函数,分为优先级选择——>中断源选择——>回调函数。这里为什么要打箭头呢?

优先级选择:EXTI15_10_IRQHandler()   位于 “stm32f1xx_it.c”  

 中断源选择: HAL_GPIO_EXTI_IRQHandler(KEY_2_Pin) 位于“stm32f1xx_hal_gpio.c”。

 弱回调函数:__weak void HAL_GPIO_EXTI_Callback()  位于“stm32f1xx_hal_gpio.c”。

 可以看到这三个函数是依次包含。回调函数一般是我们来写,这里的弱回调是为了在没有回调函数时让程序正常执行。

我们写的回调函数:

回调函数

 这里的 HAL_NVIC_DisableIRQ(KEY_2_EXTI_IRQn); 是在按键处理期间禁止再次触发KEY2键的外部中断。HAL_NVIC_EnableIRQ(KEY_2_EXTI_IRQn); 结束后开启中断允许。

以上是笔者的理解,理解有误不要细究。

 


http://www.kler.cn/a/320785.html

相关文章:

  • Jenkins的pipeline Script的 每个组件的详细讲解
  • PlantUML——时序图
  • linux虚拟机无法使用yum在线拉取
  • 风电电力系统低碳调度论文阅读第一期
  • 活着就好20241118
  • uniapp自动注册机制:easycom
  • C++中的typeid使用方法
  • Mac优化清理工具CleanMyMac X 4.15.6 for mac中文版
  • c++:set和map
  • 脉冲式投币器与售货机主板RS232连接WF-700B适配器介绍
  • 程序编译的四个阶段
  • python 异步读取文件,速度变快了吗
  • Linux Centos7达梦8数据库安装说明(附安装包,超详细图文!)收藏这一篇就够了!
  • 基于quill2.0的富文本编辑器,Fluent Editor,支持表格,图片,表情等
  • 中间添加一条可以拖拽的分界线,来动态调整两个模块的宽度
  • 如何在调试状态下部署局域网网站
  • Qt C++设计模式->外观模式
  • 牛骨髓油茶,美味不可错过
  • 华为机考练习(golang)
  • 算法.图论-并查集
  • C++:string类写时拷贝|引用计数
  • git使用方法详解(适合新手)
  • 找免费正版高清图片,就上这8个网站。
  • 深度拆解:如何在Facebook上做跨境电商?
  • 【docker】debian中配置docker(2024年9月)
  • YOLOv8-pose+streamlit 实现人体关键点检测/姿态估计系统(后续可用于健身时的姿态估计,训练纠正等....)