天天看点

蓝桥杯嵌入式(G4系列)HAL:LED流水灯目录前言:正文开始:

目录

前言:

正文开始:

573锁存器:

管脚操作:

代码编写:

前言:

        本篇博客建立在新建工程的基础上,大家如果感兴趣的话,可以去看一下,这里我就不再展示新建工程的部分了。

正文开始:

        根据官方提供的数据手册,我们在驱动LED模块的时候不得不使用74HC573锁存器。

蓝桥杯嵌入式(G4系列)HAL:LED流水灯目录前言:正文开始:

         在开始驱动之前,我们了解一下573锁存器。

573锁存器:

蓝桥杯嵌入式(G4系列)HAL:LED流水灯目录前言:正文开始:

        D0-D7是8位数据输入线,Q0-Q7是8位数据输出线。

        OE是输出允许,低电平有效,为低电平时,三态门全开,当OE为高电平时,输出为高阻态。

        LE是数据输入允许,高电平有效。

        当使能LE(G)为高时,Q 输出将随数据LE(D)输入而变。当使能为低时,将输出锁存在已建立的数据电平上。

        而官方的设计将OE端接地,LE端连接在了PD2上,也就意味着,我们将PD2置为高时,Q0-Q7的输出均由D0-D7决定。明白了这一点之后,我们再来到STM32Cubemx上操作。

管脚操作:

        在软件中,我们选择PC8到PC15这八个引脚,全部选择为GPIO_Output模式,然后我们将电平全部设为高(个人习惯),然后我们也将PD2置为GPIO_Output模式。之后,我们只需要点击右上方的GENERATE CODE即可。

蓝桥杯嵌入式(G4系列)HAL:LED流水灯目录前言:正文开始:

代码编写:

        因为我们是第一次添加外设,我们先在工程文件夹下新建一个BSP文件夹,这个文件夹用来存放以后我们添加的外设。

蓝桥杯嵌入式(G4系列)HAL:LED流水灯目录前言:正文开始:

         然后,右键点击项目,选择manage project,将我们新建的文件夹给添加进来。

蓝桥杯嵌入式(G4系列)HAL:LED流水灯目录前言:正文开始:

         我们再新建一个LED.c和LED.h文件,并且将这两个文件给放到BSP这个文件夹里面,同时在魔法棒里点击C/C++选项卡

蓝桥杯嵌入式(G4系列)HAL:LED流水灯目录前言:正文开始:

         将这个文件路径给包含过来之后,我们就可以在LED.c和LED.h中编写我们的程序了

        led.c:

#include "led.h"

void led_Disp(uchar dsled)
{
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOC,dsled<<8,GPIO_PIN_RESET);
	HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
}
           

        led.h:

#ifndef __LED_H
#define __LED_H

#include "main.h"

void led_Disp(uchar dsled);

#endif
           

        之后,为了实现LED流水灯效果,我在main.里面做了如下修改:

for(led_bit = 0;led_bit < 8;led_bit ++)
		{
			led_Disp(0x01<<led_bit);
			HAL_Delay(500);
		}
           

继续阅读