stm32 笔记(HAL库) 外部中断

重新整理一下笔记。

  来自CPU外部的外设产生的紧急事件叫做中断,比如GPIO引脚电平变化;来自CPU内部产生的紧急事件叫做异常。 异常和中断的效果基本一致,都是暂停当前任务,优先执行紧急事件,因此一般将中断和异常统称为中断

中断优先级(16个可编程的优先等级  4位中断优先级  2的4次方=16)

stm32 有20个外部中断线,其中常用的有16个外部中断线

常用的16个外部中断线

 配置过程如下:

                        

以按键外部中断控制灯和蜂鸣器为例,在STM32cubemx 创建工程配置RCC选择外部晶振

修改时钟频率

配置GPIO 这里只放了按键的配置(外部中断)

                                

配置输入模式   上升沿触发  上拉输入

                ​​​​​​​        

使能中断向量

保存工程  。工程创建完毕

在keil 中打开工程。代码分析如下:

gpio.c文件中的 GPIO 初始化函数  使能GPIOA、GPIOB时钟

void MX_GPIO_Init(void)
{

  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOE_CLK_ENABLE();
  __HAL_RCC_GPIOA_CLK_ENABLE();
  __HAL_RCC_GPIOB_CLK_ENABLE();

E2、E3引脚为按键外部中断

配置引脚触发模式   上升沿触发

上拉输入

LED、Beep 为普通GPIO

配置为推挽输出模式

### STM32F4 HAL使用教程与资源获取 对于希望深入了解并掌握STM32F4系列微控制器HAL使用的开发者而言,官方文档和社区贡献的指南都是不可或缺的学习材料。 #### 官方文档下载途径 STMicroelectronics官方网站提供了详尽的技术手册以及参考手册,这些资料不仅包含了关于硬件架构的信息,还深入介绍了软件开发环境下的各种API接口说明。访问官网的产品页面可以找到对应型号MCU的数据表、应用笔记等重要文件[^1]。 #### 中文使用指南推荐 考虑到部分用户可能更倾向于阅读中文版本的内容,《探索STM32F4xx HAL:EXTI外设及函数使用中文指南》这份文档特别适合那些想要快速入门外部中断配置的朋友;而对于关注通用输入输出端口编程的人来说,则有专门针对GPIO模块编写的《STM32F4xx HAL(GPIO外设及函数)中文使用指南》,这两份资料均经过精心翻译整理,能够有效降低理解难度[^2]。 #### 示例代码获取方式 除了理论性的介绍之外,实际案例同样非常重要。GitCode平台上存在多个开源项目可供借鉴,比如`b5d42`仓内就收录了一系列有关于EXTI的应用实例,而`stm32f4xx-hal`则是面向整个STM32 F4家族成员的一个Rust语言实现版HAL层框架,在这里不仅可以学到传统C/C++风格的编码技巧,还能接触到现代嵌入式系统设计的新思路[^3]。 此外,还有具体的移植案例分享——从F407迁移到F427IIHx上的过程记录,其中涉及到了UART与CAN通信协议栈的相关调整细节,这对于计划开展相似工作的工程师来说具有很高的参考价值[^4]。 ```c // EXTI初始化示例代码片段 void MX_GPIO_Init(void){ __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitTypeDef GPIO_InitStruct = {0}; /*Configure GPIO pin : PA0 */ GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; // 上升沿触发中断 GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值