赞
踩
LED又名发光二极管,LED内部是一个半导体晶片,晶片一端为负极,另一端为正极,半导体晶片由两部分组成,一部分是P型半导体,空穴占主导地位,另一部分是N型半导体,电子占主导地位,这两种半导体连接起来就形成P-N结,LED是利用P-N结进行发光,当半导体施加正向电压时,电子和空穴就会移动并再次结合,在结合的过程中产生大量的能量,而这些能量以光的形式散发出来。
在电路设计过程中使用74HC锁存器能够有效的节约微控制器的IO口,同时这种电路可以驱动大电容或低阻抗的负载,非常适用于缓冲寄存器,I/O口通道,双向总线驱动器和工作寄存器,74HC573芯片引脚介绍如下。
QE引脚为输出使能引脚,低电平有效,LE为锁存使能引脚,高电平有效。下图为真值表
由74HC573真值表可知:
当QE引脚处于低电平,LE引脚处于高电平,输出端与输入端状态保持一致
当QE引脚处于低电平,LE引脚处于低电平,输出状态被锁存,输入状态改变不影响输出
当QE引脚处于高电平,无论LE引脚处于何种状态,输出均为高阻态
因此可以直接将QE引脚接地,通过控制LE引脚高低电平实现”锁存“功能
实验现象:通过GPIO驱动锁存器,电亮指示灯LED1,LED2
1.首先查看原理图,由原理图可以看出,LED通过74HC573锁存器与STM32G431RBT6微控制器的PC8-PC15号引脚相连,所以显然不能通过直接控制PC8-PC15引脚输出来改变LED的状态
2.指示灯驱动步骤:
(1)控制PC8-PC15端口为输出状态
(2)使能锁存器74HC573,即PD2引脚(LE引脚)输出高电平,将输入状态与输出状态同步
(3)失能锁存器74HC573,即PD2引脚(LE引脚)输出低电平,输出状态“锁存”
3.STM32 Cube MX配置
(1)将PC8-PC15端口配置为GPIO_Output模式
(2)PC8-PC15默认引脚电平为高电平,PD2默认引脚电平为低电平,输出模式均为推挽输出
(3)设置输出Keil工程文件
4.代码编辑部分
(1)将LED进行模块化处理,使用库函数对LED相关引脚进行拉低
(2)将PD2引脚拉高,使能锁存器
(3)将PD2引脚拉低,关闭所锁存器
(4)在主函数里调用LED模块化函数,
5.参考代码
- void LED_Disp(uint8_t ucLed)
- {
- HAL_GPIO_WritePin(GPIOC,~ucLed<<8);/*LED输出*/
- /*LED锁存*/
- HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
- HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
- }
-
- /*如何调用LED模块化函数实现LED点亮、熄灭*/
- LED_Disp(ucLed, |=0x01);//点亮LD1
- LED_Disp(ucLed,&=~0x01);//熄灭LD1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。