STM32基于HAL库实现 LED 亮灭(中断模式)

目录

一、配置STM32开发环境

二、使用CubeMX生成代码

三、总结

四、参考文献


一、配置STM32开发环境

参考博客:STM32基于HAL库的流水灯实验-CSDN博客

二、使用CubeMX生成代码

1.创建新工程

2.SYS选择Senal Wire

3.RCC选择Crystal/Ceramic Resonator

2.选择芯片类型

3.GPIO端口选择配置

选择 LED 灯引脚 PA5,设置引脚为输出模式 GPIO_Output;
选择作为外部中断的引脚 PB15,设置为与中断线 GPIO_EXTI15 连接

将 GPIO_PA5 命名为 LD1

将 GPIO_PB15 命令为 B1_EXTI ,触发方式选择下降沿触发

配置中断优先级

4.生成并打开代码

5.修改代码

在main函数中添加函数


void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) 
{ 
    if( GPIO_Pin == B1_EXTI_Pin ) // 判断外部中断源
        {
            HAL_GPIO_TogglePin(LD1_GPIO_Port, LD1_Pin); // 翻转LD1状态
        }
}

6.生成编辑生成.hex文件

7.效果图

三、proteus仿真

四、总结

使用CubeMX生成代码能比较方便地实现中断控制灯的亮灭,但需要注意GPIO引脚高低电平的设置和优先级的处理。在实验中是用杜邦线模拟代替开关,不考虑消抖,如果是按键开关就需要延迟消抖处理。

五、参考文献

HAL 库 STM32CubeMX 实现 LED 亮灭----中断模式_stm32f103 中断控制两个led同时亮灭-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值