基于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语句。
5.在主程序WHILE()中编写跑马延时程序
- while (1)
- {
- HAL_Delay(300);//0.3S--控制跑马灯速度
- BEE_GPIO_HORSE();
- }
复制代码
————————————————
版权声明:米蜂科技
|