文章目录
- 前言
- 一、实验原理
- 二、配置步骤
- 三、LED灯闪烁
- 四、LED流水灯
- 总结
前言
经过前面几个笔记的学习,我们已经了解了蓝桥杯嵌入式的比赛大纲,了解了STM32G431芯片的基本信息,以及开发环境的配置,接下来就可以针对开发板来进行学习了。
本次我们来学习开发板的LED灯实验
一、实验原理
1. SN74HC573是一款八路输出的锁存器,当输入端的数据消失或改变时,输出端的数据在锁存状态下仍保持不变
2. 芯片功能表如上图所示,根据原理图和功能表可以分析出。
1. OE引脚直接与GND相连,因此OE始终位L状态,芯片一直保持输出状态。
2. LE引脚与STM32的PD2引脚相连。
- 当PD2为高电平时,输出端数据等于输入端数据。
- 当PD2为低电平时,输出端数据保持数据不变。
- led灯正极与串联300Ω电阻至电源VDD,因此74HC573输出端低电平即可点亮LED灯。
二、配置步骤
1.创建工程,配置时钟、MDK5配置等。
2.配置GPIO,界面右侧,直接选中IO口,点击选择GPIO_Output输出模式。
3.同样的操作,配置PC8-PC15为输出模式
4.配置所有的IO口默认输出状态高电平,配置上拉电阻,输出速度为低速即可,同时为PD2引脚自定义名称“LE”。
- 默认输出状态高电平是为了让LED灯默认不点亮状态。
- IO口一般都是配置为推挽输出,除非驱动大功率期间且外部单独进行上拉电阻。
- 上拉电阻是可以让IO口在高电平时增加抗干扰能力,不会轻易拉低。
- 低速是因为点亮LED灯不需要很高的速度。
- 自定义名称是为了便于使用。
三、LED灯闪烁
1.在main.c中输入相应代码
//翻转GPIOC 8-15的状态
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
//延时1000ms
HAL_Delay(1000);
2.编译后烧录至开发板中,实验现象,8个LED灯,间隔1S闪烁。
四、LED流水灯
1.在main.c中输入相应代码
uint16_t led = 8; //定义点亮某个灯 从pin8开始
//默认所有灯都熄灭
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15,GPIO_PIN_SET);
//点亮某个灯
HAL_GPIO_WritePin(GPIOC,1 << led,GPIO_PIN_RESET);
led ++ ;
if(led == 16){ //如果已经到了最后一个灯led = 8; //返回第一个灯
}
//延时200ms
HAL_Delay(200);
2.编译后烧录至开发板中,实验现象,8个LED灯,循环200ms闪烁。
总结
以上就是开发板的LED灯实验,如有错误,感谢指正。
鉴于官方开发板售价过高,本人自己制作了一款蓝桥杯嵌入式开发板,完全兼容官方的开发板,并且接下来会基于这款开发板进行学习和制作学习日志,到时候所拍实物图片会与官方开发板略有不同,如果有意向一起学习的同学也可以私聊我互相学习交流,ps:
找我低价买块开发板自己学习也是可以的~ 。