在蓝桥杯嵌入式资源的配置里面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个灯
 }
}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐