[学习笔记]STM32F1外部中断(寄存器、标准库、HAL库)

本文详细介绍了STM32F1单片机外部中断的配置,包括时钟、GPIO、中断线(EXTI)、NVIC中断管理和中断函数的设置。通过实验步骤展示了如何利用寄存器、标准库和HAL库实现按键中断,当按键按下时点亮LED,松开时熄灭。同时提供了程序设计的各个阶段的源码解析。
摘要由CSDN通过智能技术生成

目录

4. 按键外部中断

1. 实验内容及步骤:

2. 硬件说明

3. 寄存器说明

时钟部分:

GPIO部分:

中断配置根据中断框图顺序配置:

中断线(EXTI)部分:

NVIC中断管理部分:

中断函数部分:

4. 程序设计(寄存器)

5. 程序设计(标准库)

6. 程序设计(HAL库)

7. 实验结果

8. 文件下载


4. 按键外部中断

1. 实验内容及步骤:

实验内容:

       通过按键中断,在中断函数中点亮LED灯,并在中断中等待按键松开;

       在主函数中进行LED灭灯操作。

实验步骤:

       1. 开启LED时钟(PB5)、配置LED推挽输出,10MHz;

       2. 开启按键时钟(PE4)、配置上拉输入;

       3. 开启外部中断时钟,配置按键(PE4)为下降沿中断。

 

2. 硬件说明

 

3. 寄存器说明

时钟部分:

       在本实验中,时钟部分一共包含GPIO时钟、中断线时钟(EXTI)、AFIO时钟

       GPIO时钟,包括按键(PE4),LED(PB5),因此需要使能GPIOB和GPIOE时钟。GPIO挂载在APB2上,因此通过配置RCC_APB2ENR寄存器使能GPIO时钟。(为什么挂载在APB2,可以参考“STM32中文参考手册”P28)

       RCC_APB2ENR|=0000 0000 0100 1001(二进制);

       RCC_APB2ENR |= 0x0049;

GPIO部分:

       LED部分与第一章一致,因此不详细讲解。

       按键部分,根据GPIO外设配置表可知(STM32中文参考手册P113),外部中断需要配置为:浮空输入或带上拉输入或带下拉输入。具体的配置内容参考第二章。

 

中断配置根据中断框图顺序配置:

 

中断线(EXTI)部分:

根据外部中断通用I/O映象表可知,(PE4)的中断线为EXTI4。

       配置中断线   外部中断配置寄存器 (AFIO_EXTICRX)选择EXTIX外部中断输入源。(就是配置那个引脚中断)(STM32中文参考手册P127)

本实验中使用的是PE4作为下降沿中断,因此配置为:

AFIO_EXTICR2 &=1111 1111 1111 0000; (先清零)

AFIO_EXTICR2 |= 0000 0000 0000 0100;(PE[4]为中断源)

=>  AFIO_EXTICR2 &=0xFFF0; (先清零)

=>  AFIO_EXTICR2 |=0x0004; (PE[4]为中断源)

 

       配置中断屏蔽器寄存器:

在本实验中PE4的中断线为EXTI4,因此中断屏蔽器因开放MR4

EXTI_IRM |= 0000 0000 0000 0000 0000 0000 0001 0000(二进制)

EXTI_IRM |= 0x0000 0010;

 

       上下边缘触发配置:

在本实验中,需配置PE4为下降沿触发,因此:

EXTI_FTSR |= 0000 0000 0000 0000 0000 0000 0001 0000(二进制)

EXTI_FTSR |= 0x0000 0010;

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值