蓝桥杯嵌入式 LED配置
在蓝桥杯嵌入式资源的配置里面LED的配置是最简单的、最基本的。他的原理其实简单的对GPIO的操作。值得注意的是他不是直接的对GPIO进行操作,而是对74HC573锁存器上进行操作。下面我们看看原理图。原理图上我们看到用到H D0-H D7(PC8-PC15)和N LE(PD2)引脚。但是这里加入了一个74HC573作为数据锁存器,所以每次操作需要给PD2一个下降沿。再看看锁存器:74HC573是拥
在蓝桥杯嵌入式资源的配置里面LED的配置是最简单的、最基本的。他的原理其实简单的对GPIO的操作。值得注意的是他不是直接的对GPIO进行操作,而是对74HC573锁存器上进行操作。
对于GPIO的配置可以参考一下我写的另外一篇文章:stm32 GPIO分析讲解
下面我们看看原理图。

原理图上我们看到用到H D0-H D7(PC8-PC15)和N LE(PD2)引脚。但是这里加入了一个74HC573作为数据锁存器,所以每次操作需要给PD2一个下降沿。
再看看锁存器:
74HC573是拥有八路输出的透明锁存器,输出为三态门,是一种高性能硅栅CMOS器件。74HC573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭。
真值表:
代码:
led.h
#include "stm32f10x.h"
#define led0 GPIO_Pin_8
#define led1 GPIO_Pin_9
#define led2 GPIO_Pin_10
#define led3 GPIO_Pin_11
#define led4 GPIO_Pin_12
#define led5 GPIO_Pin_13
#define led6 GPIO_Pin_14
#define led7 GPIO_Pin_15
#define ledall GPIO_Pin_All
void led_init(void);
void led_scanf(unsigned char mode,unsigned int led);
led.c
#include "led.h"
void led_init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD,ENABLE); //使能相对应的时钟
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; //GPIO模式
GPIO_InitStruct.GPIO_Pin=led0|led1|led2|led3|led4|led5|led6|led7; //pin口
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; //速度
GPIO_Init(GPIOC,&GPIO_InitStruct);
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_2;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOD,&GPIO_InitStruct);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
GPIO_SetBits(GPIOC,ledall); //初始化led全灭
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
}
void led_scanf(unsigned char mode,unsigned int led)
{
if(mode==0)//当mode==0,点亮led
{
GPIO_SetBits(GPIOD,GPIO_Pin_2); //使PD2触发一个下降沿
GPIO_ResetBits(GPIOC,led); //点亮led
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
}
else if(mode==1)//mode==1,灭灯
{
GPIO_SetBits(GPIOD,GPIO_Pin_2);
GPIO_SetBits(GPIOC,led);//灭灯
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
}
}
在main函数上,我们要加上#include "led.h"这个头文件。
int main(void)
{
led_init();//初始化led
while(1)
{
led_scanf(0,led1);//点亮第2个灯
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)