本实例基于RIBEE_02开发板设计,5个按键分别是PB5、PC13、PA0、PA2、PB0,其余25个LED进行点亮动作,实现按键输入与LED输出逻辑功能。
1.上芯片图与电路图
2.配置晶振,启用内部晶振,失能外部晶振。设置晶振倍频与分频,外设基础时钟配置为64MHZ。
3.编写LED与按键KEY驱动程序
LED.H文件
#ifndef __LED_H
#define __LED_H
/* Includes ------------------------------------------------------------------*/
#include "stm32g0xx_hal.h"
typedef struct
{
uint8_t NUM;
} HORSE_Struct;
/************* 共25个灯跑马点亮 *************/
typedef enum {
BLUE_B1= 1, //蓝灯
GREEN_B2, //绿灯
YELLOW_B10, //黄灯
RED_B11, //红灯
WHITE_B12, //白灯
BLUE_B13, //蓝灯
GREEN_B14, //绿灯
YELLOW_B15, //黄灯
RED_A8, //红灯
WHITE_A9, //白灯
BLUE_C6, //蓝灯
GREEN_C7, //绿灯
YELLOW_A10, //黄灯
RED_A11, //红灯
WHITE_A12, //白灯
BLUE_D0, //蓝灯
GREEN_D1, //绿灯
YELLOW_D2, //黄灯
RED_D3, //红灯
WHITE_B3, //白灯
BLUE_B4, //蓝灯
GREEN_B6, //绿灯
YELLOW_B7, //黄灯
RED_B8, //红灯
WHITE_B9, //白灯
} LEDEnum;
/* Private defines -----------------------------------------------------------*/
#define PA8_Pin GPIO_PIN_8
#define PA8_GPIO_Port GPIOA
#define PA8_High() HAL_GPIO_WritePin(GPIOA, PA8_Pin, GPIO_PIN_SET)
#define PA8_Low() HAL_GPIO_WritePin(GPIOA, PA8_Pin, GPIO_PIN_RESET)
#define PA9_Pin GPIO_PIN_9
#define PA9_GPIO_Port GPIOA
#define PA9_High() HAL_GPIO_WritePin(GPIOA, PA9_Pin, GPIO_PIN_SET)
#define PA9_Low() HAL_GPIO_WritePin(GPIOA, PA9_Pin, GPIO_PIN_RESET)
#define PA10_Pin GPIO_PIN_10
#define PA10_GPIO_Port GPIOA
#define PA10_High() HAL_GPIO_WritePin(GPIOA, PA10_Pin, GPIO_PIN_SET)
#define PA10_Low() HAL_GPIO_WritePin(GPIOA, PA10_Pin, GPIO_PIN_RESET)
#define PA11_Pin GPIO_PIN_11
#define PA11_GPIO_Port GPIOA
#define PA11_High() HAL_GPIO_WritePin(GPIOA, PA11_Pin, GPIO_PIN_SET)
#define PA11_Low() HAL_GPIO_WritePin(GPIOA, PA11_Pin, GPIO_PIN_RESET)
#define PA12_Pin GPIO_PIN_12
#define PA12_GPIO_Port GPIOA
#define PA12_High() HAL_GPIO_WritePin(GPI