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(四)相关推荐
- 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础
上篇文章 单片机入门学习四 STM32单片机学习一 跑马灯程序和创建工程 仅介绍了入门程序及其编译运行过程,下面开始对stm32的一些基础知识做一个记录. 1.stm32f103zet6(上篇问题3 ...
- ARM上裸奔的跑马灯程序
今天用优龙ST2410测试了一下在不进系统的情况下裸奔跑马灯程序.首先总结下在ARM板上裸奔程序的几种方法:既然要在ARM上裸奔,首先地让ARM板不进系统,方法是上电复位后选BIOS的最后一项:7 : ...
- Proteus仿真STM32F103R6的寄存器版跑马灯程序(存储器宏定义)
跑马灯程序,存储器映像.用宏定义,增强程序的可读性.. 头文件: #ifndef __STM32F10x_H #define __STM32F10x_H#define PERIPH_BASE (0X4 ...
- Proteus仿真STM32F103R6的寄存器版跑马灯程序
STM32最简单的外设莫过于IO口的高低电平控制了, Proteus仿真STM32F103R6的跑马灯程序. 一.原理图 二.跑马灯C程序 // 粗略延时函数 static void delay(un ...
- 02 ARM11 时钟初始化后的跑马灯程序
2019独角兽企业重金招聘Python工程师标准>>> .text .globl _start _start:ldr r0, =0x70000000orr r0, r0, #0x13 ...
- 第十九节:依次逐个点亮LED之后,再依次逐个熄灭LED的跑马灯程序。
开场白: 上一节讲了把74HC595驱动程序翻译成类似单片机IO口直接驱动的方式.这节在上一节的驱动程序基础上,开始讲跑马灯程序.我的跑马灯程序看似简单而且重复,其实蕴含着鸿哥的大智慧.它是基于鸿哥的 ...
- arm 跑马灯 linux,02 ARM11 时钟初始化后的跑马灯程序
.text .globl _start _start: ldr r0, =0x70000000 orr r0, r0, #0x13 mcr p15, 0, r0, c15, c2, 4 ldr r0, ...
- 基于8255A接口芯片的跑马灯程序
目前这段时间,微机原理这门课上到了接口部分:开始接触到基于接口芯片的汇编编程,这个星期五上机实验完成后.考虑了一下老师说的跑马灯程序,感觉逻辑上实现不是很复杂 于是去实现了一下,但是没跑起来:于是最后 ...
- 写一个ST语言的跑马灯程序
ST语言的跑马灯程序如下: repeat for i:=1 to 8 do for j:=1 to 8 do if (i=j) then write('*'); else write(' '); en ...
- 写一个跑马灯程序并注释
我可以写一个简单的跑马灯程序,代码如下:// 定义一个字符串,用于显示跑马灯 var str = '你好,世界!';// 定义一个变量,用于表示跑马灯的位置 var pos = 0;// 使用循环,不 ...
最新文章
- python php区别-PHP,Python,Java写出来的WEB程序有什么区别?
- Linux - 后台运行 ctrl + z , jobs , bg , fg
- 成功解决softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be
- opengl加载显示3D模型UC类型文件
- 编程语言的发展趋势及未来方向(1):历史回顾及趋势概述
- list 泛型_带你深挖Java泛型类型擦除以及类型擦除带来的问题
- 用iArduino app+以太网插板实现“iPhone,iPadiPod无线控制Arduino”!
- python爬考研_用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!
- iOS常用第三方类库 Xcode插件
- linux下文件打包、压缩详解
- ERP原理学习3-5
- 华为升级鸿蒙系统教程,华为升级鸿蒙系统方法汇总 华为手机各型号升级鸿蒙系统教程...
- 阿里云OSS浏览图片报403错误的解决方法
- sigmoid函数及其导数
- java根据经纬度获取地址(百度地图)
- mysql 集群 运维_【MySQL运维】Canal集群模式与多数据库同步部署
- 给discuz x增加后台菜单管理功能
- 七、BDB JE与BDB Java API
- 微波背景辐射的发现(获诺贝尔奖)——彭齐亚斯和威尔逊
- 【004 关键字】extern “C“的作用是什么?