天天看點

藍橋杯嵌入式(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);
		}
           

繼續閱讀