采用中断模式编程并使用杜邦线模拟开关实现LED灯的亮灭


一、环境

  • 硬件:stm32f103c8t6 核心板
  • 软件:STM32CubeMX 6.4.0
  • 软件:keil5 mdk

二、使用stm32CubeMX创建文件

  1. 创建新项目,搜索框找到自己的板子型号
    在这里插入图片描述

  2. 时钟RCC配置,将HSE选为外部晶振模式
    在这里插入图片描述

  3. 管脚配置
    选择PA5作为LED灯的连接管脚,PB9 作为杜邦线(等价于开关)的连接管脚;具体配置是:左击PA5端口选择GPIO_Output模式,PB9设为EXTI。
    在这里插入图片描述

  4. SYS设置,选择Serial Wire模式。
    在这里插入图片描述

  5. GPIO管脚设置

点击左侧GPIO,PA5是高电平触发,所以不需要改变设置,别名设为**“A5_LED”,选中PB9,将GPIO Mode设置为下降沿触发外部中断;
将GPIO 设置为上拉电阻模式
(Pull-up**);别名设置为B9_EXTI

在这里插入图片描述

6.NVIC配置,
在这里插入图片描述

勾选下方选项表示支持中断操作。

  1. 时钟树设置
    在这里插入图片描述
  2. 设置工程路径、工程名
    在这里插入图片描述
  3. 设置工程文件,并导出
    在这里插入图片描述

三、配置代码

直接打开keil项目或者关闭STMCube再打开对应文件。并在main.c文件的main函数外重写一个回调函数。

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if( GPIO_Pin == B9_EXTI_Pin) //判断中断源
{
HAL_GPIO_TogglePin(GPIOA, A5_LED_Pin); //翻转led管脚 A1口的电平
}
}

1、编译、烧录

在这里插入图片描述
在这里插入图片描述

2、效果

VID_20221023_205054


四、总结

学习了中断模式,并将其成功的应用在了LED的亮灭上,又一次使用STMCube进行HAL库的设置,增加了对STMCube的熟练操作。

五、参考资料

https://blog.csdn.net/qq_47281915/article/details/121024427

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

混子王江江

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

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

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

打赏作者

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

抵扣说明:

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

余额充值