hal 外部唤醒脚唤醒_STM32学习笔记(九) 外部中断,待机模式和事件唤醒

本文深入讲解STM32的外部中断和事件唤醒功能,通过实例代码介绍GPIO初始化、EXTI配置、中断处理及低功耗模式。重点讨论了中断与事件的区别,以及如何利用事件实现低功耗模式的唤醒。
摘要由CSDN通过智能技术生成

学会知识只需要不段的积累和提高,但是如何将知识系统的讲解出来就需要深入的认知和系统的了解。外部中断和事件学习难度并不高,不过涉及到STM32的电源控制部分,还是值得认真了解的,在本文中我将以实际代码为例详细讲解这些内容,希望对每一个阅读者有帮助。

1.外部中断

如果已经学习了SysTick系统时钟滴答实验,掌握了Cortex-M3中断的相关知识,那么外部中断也是比较好理解的,和SysTick中断一样,外部中断也是当有信号触发时,如果中断屏蔽寄存器允许触发,就会产生中断,这时CPU查找中断向量表,找到入口函数,就会正确的执行相关代码,因为外部中断本身就是依托于普通GPIO口的上升沿或者下降沿信号的,所以本例中以按键作为测试外部中断的硬件电路。

根据工作原理图:KEY1 ~PC4;KEY2 ~PB10;

KEY3 ~PC13;KEY4 ~PA0;

其中KEY1,2,3作为外部中断引脚,KEY4作为唤醒引脚,后续会讲解。

知晓了工作原理图,下面就要确定其对应的中断线号了,这个在参考手册外部中断/事件线路映像章节中有详细的说明,这里截图部分:

从上面可以看出,不同区域的相同位置的管脚共用同一个中断线号,依次类推,上面的四个管脚分别对应的中断线号为EXIT4, EXIT10, EXIT13,EXIT0,在这里还有个注意点:那就是一个中断线号只能反过来对应一个管脚,这就需要设计外部中断硬件电路时不要重复,如PA0和PB0不能同时设计为外部中断。

了解了这些之后,如果熟悉STM32设计流程的话,那么就知道顺序是:

1.外部中断管脚GPIO初始化,代码如下:

/****************************************************************

* function : EXTI_GPIO_Config

* Description : 外部中断触发对应GPIO口配置

KEY1 PC4 外部中断4

KEY2 PB10 外部中断10

KEY3 PC13 外部中断13

KEY4 PA0 WAKEUP唤醒事件

* input : 无

* output : 无

*****************************************************************/

void EXTI_GPIO_Config(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB<

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值