嵌入式蓝桥杯从零点亮第一个LED

很多同学第一次拿到蓝桥杯嵌入式开发板(STM32G431RBT6),打开 CubeMX 看到一堆引脚就懵了。PC8 到 PC15 连了 8 个 LED,为什么还要多一个 PD2?这就要说到蓝桥杯板子一个独特的设计:用锁存器控制 LED

一、为什么 LED 不直接接单片机?

蓝桥杯开发板用的是 SN74HC573 锁存器,LED 并不是直接挂在 PC8~PC15 上的,中间隔了一个锁存器。原因很简单:PC8~PC15 同时还连着 LCD 屏幕,如果 LED 直接挂在引脚上,LCD 一刷新画面,LED 就会跟着乱闪。

锁存器的作用就是"记住"LED 的状态。PD2 是锁存器的"开关":PD2 高电平时,PC8~PC15 的电平会传过去控制 LED;PD2 低电平时,锁存器保持当前状态,PC 引脚再怎么变 LED 也不受影响。所以每次改完 LED 状态,都要给 PD2 一个高脉冲把状态"锁"进去。

二、CubeMX 里的工程配置

先打开CubeMX,然后点击File,再点击Nex Project...(新建工程的意思)

在输入框,输入STM32G431RBT6,选择第一个,双击。

先配置时钟点击SysTem Core,选择RCC,点击Crystal/Ceramic Resonator(晶体 / 陶瓷谐振器)

点击SYS,选择Serial Wire(用于调试)

根据原理图可知,我们这次需要配置PC8、PC9、PC10、PC11、PC12、PC13、PC14、PC15、PD2

点击芯片上的PC8引脚,选择GPIO_Output即可,其他8个也是一样我这边就不展示了。

然后点击System Core下面的GPIO。

按住SHIFT,再点击pc8,选择好后再下滑点击PC15,即可将其全部选中。根据图片操作,选择高电平,因为根据原理图我们要想点亮LED给低电平就可以了,我们这边默认上电不点亮LED,选择高电平。

GPIO模式选择推挽输出(OutPut Push Pull),另一个是开漏输出。

这里选择No pull-up and no pull-down :无上下拉(浮空), Pull-up :上拉

Pull-down :下拉

速度选择低速(Low)

PD2的话就默认不改就行了,高电平允许数据输入低电平锁存上一次输入的电平,这里看不懂的话可以去看这一篇文章74HC573 锁存器:从原理到实战,一篇就够了

然后点击Clock Configuration配置时钟树

输入80点击回车(ENTER)相当于给单片机配置80Mhz的频率

点击OK

点击Project Manager

输入项目名称,我这边输入LED。

启动软件选择MDK-ARM

点击Code Generator,勾选图片里框出来的那个选项,主要是生成单独的.c和.h文件

点击Advanced Settings,因为我这边使用LL库,所以要把HAL库改成LL库

点击切换就可以了

然后点击GENERATE CODE生成即可,主要在输入项目名称下面可以选择文件路径。

生成好后,直接打开工程就可以了

点亮LED 的核心代码

c 复制代码
void Led_Disp(uint8_t uled)
{
  //拉高PD2,使能输入
	LL_GPIO_SetOutputPin(GPIOD,LL_GPIO_PIN_2);
	//控制PC8~PC15的电平变化,因为是低电平点亮,我们如果想要输入1来点亮一个电平就得给uled取反
	LL_GPIO_WriteOutputPort(GPIOC,(~uled)<<8);
	//拉低PD2,失能输入,锁存上一次的输入电平
	LL_GPIO_ResetOutputPin(GPIOD,LL_GPIO_PIN_2);
}

需要完整代码可以点击下载蓝桥杯LL库GPIO驱动LED代码.zip

相关推荐
新晨单片机设计2 小时前
S004R-基于STM32单片机智能门禁系统(密码、指纹、人脸、刷卡、蓝牙)【Proteus仿真+Keil程序+原理图】
stm32·单片机·嵌入式硬件·proteus
桀人3 小时前
MCU系统架构——总线——统一编址
stm32·单片机·嵌入式硬件
可乐鸡翅好好吃3 小时前
通讯协议--硬件模拟和软件模拟
stm32·嵌入式硬件
Zw-awa3 小时前
STM32F103C8T6 最小系统板:从型号差异到启动方式
stm32
嵌入式阿蔡15 小时前
智能家居互联2026:Matter、Thread与嵌入式开发的新范式
嵌入式
LCG元15 小时前
STM32F103 驱动 HX711 称重实战:DOUT 就绪时序、增益切换陷阱与两点标定精度实测
stm32·单片机·嵌入式硬件
花 满 楼15 小时前
HSM自学之路——阶段 1 密码学算法分类与原理
嵌入式·hsm
染予15 小时前
代码中相关C语言知识点总结
stm32
优信电子15 小时前
STM32 驱动 DHT30 测量环境温湿度(兼容SHT30):从时序解析到完整代码实战
stm32·嵌入式·传感器·sht30·温湿度·环境测量·dht30