7.4任务实践STM32F401RE :中断方式检测按键

任务内容:采用中断方式检测按键B1的状态,按键按下后执行如下操作:翻转指示灯LD2的状态

硬件原理:按键B1由引脚PC13控制:按键按下时为下降沿触发方式,释放时为上升沿触发方式。指示灯LD2由引脚PA5控制:PA5输出高电平,开启指示灯;PA5输出低电平,关闭指示灯。

目录

一,proteus 放置器件

1. 新建项目

2. 选择器件

3. 开始连线

二,STM32cubeMX 进行工程文件的预配置

1. 新建工程文件选择

2. 分析题意 设置引脚

3. 配置完成生成工程文件跳转keil5

三,Keil 编写具体实现代码

1. 编写实现的中断函数

2. 开始仿真


一,proteus 放置器件

1. 新建项目

Next-----next----

两次默认下一次即可

  选择创建 firmware project

     Cortex-M4

     STM32F401RE

Finish 完成

2. 选择器件

 我们需要 led灯 按键 电阻

搜索  LED-RED BUTTON RES  双击添加

 

3. 开始连线

分析题意

引脚PC13 控制按键B1

引脚PA5 控制LD2

最终连接如下图所示

3.1你可能会遇到的问题

1).如何放置器件?

点击器件后 在点击合适的位置两下 即可放下  

线与线的连接 建议直线连接 可适当调整器件的位置

2).led灯选择角度位置怎么调?

可以rotate 进行调整角度的问题

3).哪里找GND?

如下图

 proteus器件接好了暂时不需要管这个了  开始进行代码的编写

二,STM32cubeMX 进行工程文件的预配置

1. 新建工程文件选择

2. 分析题意 设置引脚

引脚PC13配置成中断模式检测按键B1(控制按键B1)按键按下时为下降沿触发方式,释放时为上升沿触发方式

 

采用中断方式检测按键B1的状态 需开启中断

引脚PA5 输出高低电平 所以将PA5设置为输出模式

  注意配置NVIC 因为我们使用了EXTI13

3. 配置完成生成工程文件跳转keil5

 注意:要先命名

三,Keil 编写具体实现代码

1. 编写实现的中断函数

在这里的中断 是说按键一旦检测到中断  程序的pc指针 会跳到指定地址 执行我们预先设定好的代码 

在main.c文件中

/* USER CODE BEGIN 4 */

/* USER CODE END 4 */

的位置添加代码

/* USER CODE BEGIN 4 */

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)

{

    if(GPIO_Pin==GPIO_PIN_13)

{

HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);

}

}

/* USER CODE END 4 */

 

点击ok这样就可以进行编译了

2. 开始仿真

双击板子 进入页面 进入工程文件夹目录 \MDK-ARM\10_23\10_23.hex

选择 刚刚编译生成的hex文件、

 点击按钮开始仿真

按下按键

 实验成功

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昵称还在想呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值