STM32G030C8T6跑马灯程序V0.2(四)
生活随笔
收集整理的這篇文章主要介紹了
STM32G030C8T6跑马灯程序V0.2(四)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基于RIBEE_02的開發板設計跑馬燈驅動程序,25顆燈按藍、綠、黃、紅、白跑馬點亮。
1.上芯片圖與電路圖,LED燈均串聯1K電阻共地。
?2.晶振配置為內部晶振,配置外設GPIO為64MHZ
3. 編寫LED驅動動GPIO.H文件,定義結構體與枚舉,宏定義GPIO.
/* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __BEE_H #define __BEE_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(GPIOA, PA12_Pin, GPIO_PIN_SET) #define PA12_Low() HAL_GPIO_WritePin(GPIOA, PA12_Pin, GPIO_PIN_RESET)#define PA13_Pin GPIO_PIN_13 #define PA13_GPIO_Port GPIOA #define PA13_High() HAL_GPIO_WritePin(GPIOA, PA13_Pin, GPIO_PIN_SET) #define PA13_Low() HAL_GPIO_WritePin(GPIOA, PA13_Pin, GPIO_PIN_RESET)#define PA14_Pin GPIO_PIN_14 #define PA14_GPIO_Port GPIOA #define PA14_High() HAL_GPIO_WritePin(GPIOA, PA14_Pin, GPIO_PIN_SET) #define PA14_Low() HAL_GPIO_WritePin(GPIOA, PA14_Pin, GPIO_PIN_RESET)#define PB1_Pin GPIO_PIN_1 #define PB1_GPIO_Port GPIOB #define PB1_High() HAL_GPIO_WritePin(GPIOB, PB1_Pin, GPIO_PIN_SET) #define PB1_Low() HAL_GPIO_WritePin(GPIOB, PB1_Pin, GPIO_PIN_RESET)#define PB2_Pin GPIO_PIN_2 #define PB2_GPIO_Port GPIOB #define PB2_High() HAL_GPIO_WritePin(GPIOB, PB2_Pin, GPIO_PIN_SET) #define PB2_Low() HAL_GPIO_WritePin(GPIOB, PB2_Pin, GPIO_PIN_RESET)#define PB3_Pin GPIO_PIN_3 #define PB3_GPIO_Port GPIOB #define PB3_High() HAL_GPIO_WritePin(GPIOB, PB3_Pin, GPIO_PIN_SET) #define PB3_Low() HAL_GPIO_WritePin(GPIOB, PB3_Pin, GPIO_PIN_RESET)#define PB4_Pin GPIO_PIN_4 #define PB4_GPIO_Port GPIOB #define PB4_High() HAL_GPIO_WritePin(GPIOB, PB4_Pin, GPIO_PIN_SET) #define PB4_Low() HAL_GPIO_WritePin(GPIOB, PB4_Pin, GPIO_PIN_RESET)#define PB6_Pin GPIO_PIN_6 #define PB6_GPIO_Port GPIOB #define PB6_High() HAL_GPIO_WritePin(GPIOB, PB6_Pin, GPIO_PIN_SET) #define PB6_Low() HAL_GPIO_WritePin(GPIOB, PB6_Pin, GPIO_PIN_RESET)#define PB7_Pin GPIO_PIN_7 #define PB7_GPIO_Port GPIOB #define PB7_High() HAL_GPIO_WritePin(GPIOB, PB7_Pin, GPIO_PIN_SET) #define PB7_Low() HAL_GPIO_WritePin(GPIOB, PB7_Pin, GPIO_PIN_RESET)#define PB8_Pin GPIO_PIN_8 #define PB8_GPIO_Port GPIOB #define PB8_High() HAL_GPIO_WritePin(GPIOB, PB8_Pin, GPIO_PIN_SET) #define PB8_Low() HAL_GPIO_WritePin(GPIOB, PB8_Pin, GPIO_PIN_RESET)#define PB9_Pin GPIO_PIN_9 #define PB9_GPIO_Port GPIOB #define PB9_High() HAL_GPIO_WritePin(GPIOB, PB9_Pin, GPIO_PIN_SET) #define PB9_Low() HAL_GPIO_WritePin(GPIOB, PB9_Pin, GPIO_PIN_RESET)#define PB10_Pin GPIO_PIN_10 #define PB10_GPIO_Port GPIOB #define PB10_High() HAL_GPIO_WritePin(GPIOB, PB10_Pin, GPIO_PIN_SET) #define PB10_Low() HAL_GPIO_WritePin(GPIOB, PB10_Pin, GPIO_PIN_RESET)#define PB11_Pin GPIO_PIN_11 #define PB11_GPIO_Port GPIOB #define PB11_High() HAL_GPIO_WritePin(GPIOB, PB11_Pin, GPIO_PIN_SET) #define PB11_Low() HAL_GPIO_WritePin(GPIOB, PB11_Pin, GPIO_PIN_RESET)#define PB12_Pin GPIO_PIN_12 #define PB12_GPIO_Port GPIOB #define PB12_High() HAL_GPIO_WritePin(GPIOB, PB12_Pin, GPIO_PIN_SET) #define PB12_Low() HAL_GPIO_WritePin(GPIOB, PB12_Pin, GPIO_PIN_RESET)#define PB13_Pin GPIO_PIN_13 #define PB13_GPIO_Port GPIOB #define PB13_High() HAL_GPIO_WritePin(GPIOB, PB13_Pin, GPIO_PIN_SET) #define PB13_Low() HAL_GPIO_WritePin(GPIOB, PB13_Pin, GPIO_PIN_RESET)#define PB14_Pin GPIO_PIN_14 #define PB14_GPIO_Port GPIOB #define PB14_High() HAL_GPIO_WritePin(GPIOB, PB14_Pin, GPIO_PIN_SET) #define PB14_Low() HAL_GPIO_WritePin(GPIOB, PB14_Pin, GPIO_PIN_RESET)#define PB15_Pin GPIO_PIN_15 #define PB15_GPIO_Port GPIOB #define PB15_High() HAL_GPIO_WritePin(GPIOB, PB15_Pin, GPIO_PIN_SET) #define PB15_Low() HAL_GPIO_WritePin(GPIOB, PB15_Pin, GPIO_PIN_RESET)#define PC6_Pin GPIO_PIN_6 #define PC6_GPIO_Port GPIOC #define PC6_High() HAL_GPIO_WritePin(GPIOC, PC6_Pin, GPIO_PIN_SET) #define PC6_Low() HAL_GPIO_WritePin(GPIOC, PC6_Pin, GPIO_PIN_RESET)#define PC7_Pin GPIO_PIN_7 #define PC7_GPIO_Port GPIOC #define PC7_High() HAL_GPIO_WritePin(GPIOC, PC7_Pin, GPIO_PIN_SET) #define PC7_Low() HAL_GPIO_WritePin(GPIOC, PC7_Pin, GPIO_PIN_RESET)#define PD0_Pin GPIO_PIN_0 #define PD0_GPIO_Port GPIOD #define PD0_High() HAL_GPIO_WritePin(GPIOD, PD0_Pin, GPIO_PIN_SET) #define PD0_Low() HAL_GPIO_WritePin(GPIOD, PD0_Pin, GPIO_PIN_RESET)#define PD1_Pin GPIO_PIN_1 #define PD1_GPIO_Port GPIOD #define PD1_High() HAL_GPIO_WritePin(GPIOD, PD1_Pin, GPIO_PIN_SET) #define PD1_Low() HAL_GPIO_WritePin(GPIOD, PD1_Pin, GPIO_PIN_RESET)#define PD2_Pin GPIO_PIN_2 #define PD2_GPIO_Port GPIOD #define PD2_High() HAL_GPIO_WritePin(GPIOD, PD2_Pin, GPIO_PIN_SET) #define PD2_Low() HAL_GPIO_WritePin(GPIOD, PD2_Pin, GPIO_PIN_RESET)#define PD3_Pin GPIO_PIN_3 #define PD3_GPIO_Port GPIOD #define PD3_High() HAL_GPIO_WritePin(GPIOD, PD3_Pin, GPIO_PIN_SET) #define PD3_Low() HAL_GPIO_WritePin(GPIOD, PD3_Pin, GPIO_PIN_RESET)/* USER CODE BEGIN Private defines */ extern void BEE_GPIO_HORSE(void); /* USER CODE END Private defines */#endif /* __BEE_H *//****END OF FILE****/4.編寫LED跑馬燈GPIO.C文件,引用SWITCH--CASE語句。
#include "BEE_GPIO.h"HORSE_Struct HORSE= {0};/* Private function prototypes --------25 LED HORSE RACE---------------------*/ void BEE_GPIO_HORSE(void) {HORSE.NUM++;switch(HORSE.NUM){case BLUE_B1 :PB1_High();PB2_Low();PB10_Low();PB11_Low();PB12_Low();PB13_Low();PB14_Low();PB15_Low();PA8_Low();PA9_Low();PC6_Low();PC7_Low();PA10_Low();PA11_Low();PA12_Low();PD0_Low();PD1_Low();PD2_Low();PD3_Low();PB3_Low();PB4_Low();PB6_Low();PB7_Low();PB8_Low();PB9_Low();break ;case GREEN_B2 :PB1_Low();PB2_High();break ;case YELLOW_B10 :PB2_Low();PB10_High();break ;case RED_B11 :PB10_Low();PB11_High();break ;case WHITE_B12 :PB11_Low();PB12_High();break ;case BLUE_B13 :PB12_Low();PB13_High();break ;case GREEN_B14 :PB13_Low();PB14_High();break ;case YELLOW_B15 :PB14_Low();PB15_High();break ;case RED_A8 :PB15_Low();PA8_High();break ;case WHITE_A9 :PA8_Low();PA9_High();break ;case BLUE_C6 :PA9_Low();PC6_High();break ;case GREEN_C7 :PC6_Low();PC7_High();break ;case YELLOW_A10 :PC7_Low();PA10_High();break ;case RED_A11 :PA10_Low();PA11_High();break ;case WHITE_A12 :PA11_Low();PA12_High();break ;case BLUE_D0 :PA12_Low();PD0_High();break ;case GREEN_D1 :PD0_Low();PD1_High();break ;case YELLOW_D2 :PD1_Low();PD2_High();break ;case RED_D3 :PD2_Low();PD3_High();break ;case WHITE_B3 :PD3_Low();PB3_High();break ;case BLUE_B4:PB3_Low();PB4_High();break ;case GREEN_B6:PB4_Low();PB6_High();break ;case YELLOW_B7:PB6_Low();PB7_High();break ;case RED_B8:PB7_Low();PB8_High();break ;case WHITE_B9:PB8_Low();PB9_High();HORSE.NUM = 0 ;break ;default :HORSE.NUM = 0 ;break ;//沒有符合的條件即執行本default 非必須} }5.在主程序WHILE()中編寫跑馬延時程序
while (1){HAL_Delay(300);//0.3S--控制跑馬燈速度BEE_GPIO_HORSE();}6.采購地址
https://item.taobao.com/item.htm?spm=a21dvs.23580594.0.0.1d293d0dcKkF6z&ft=t&id=668439791720
總結
以上是生活随笔為你收集整理的STM32G030C8T6跑马灯程序V0.2(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 丁丁打折网卷能用吗_微信群控还能用吗?现
- 下一篇: Maven工程的多模块