嵌入式蓝桥杯从零点亮第一个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

相关推荐
LCG米1 天前
STM32 ADC多通道DMA定时器触发实测:TRGO触发链、采样率精确控制与乒乓缓冲落地
stm32·单片机·嵌入式·adc
youcans_1 天前
【嵌入式软件AI编程】22. STM32 基础实验:GPIO外部中断
stm32·单片机·嵌入式硬件·ai编程·claude
未来_攻城狮1 天前
STM32F407VGT6 芯片详解:高性能 Cortex-M4 MCU 入门指南
stm32·单片机·嵌入式硬件
xcLeigh1 天前
FreeRTOS实战:用STM32+SEGGER打造工业级实时嵌入式系统
人工智能·stm32·单片机·嵌入式硬件·ai
硅基造物主1 天前
STM32 从 0 到 1 做智能家居(十二):USART2 分时复用 —— ESP-12F + MQTT
网络·stm32·mqtt·智能家居·esp-12f
芯岭技术郦1 天前
XL4460 FSK 无线透传模组
stm32·单片机·嵌入式硬件
硅基造物主1 天前
STM32 从 0 到 1 做智能家居(十):串口与 printf 重定向
stm32·单片机·智能家居·usart·中断
新晨单片机设计1 天前
S033A-基于STM32单片机拼图游戏机【Proteus仿真+Keil程序+原理图】
stm32·单片机·嵌入式硬件·拼图游戏机
comyccccc2 天前
STM32F407VET6核心板的部分电路绘制学习笔记
笔记·stm32·学习
简单电磁炮2 天前
关于can的调试
c语言·stm32·单片机