基于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(四)相关推荐

  1. 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础

    上篇文章 单片机入门学习四 STM32单片机学习一 跑马灯程序和创建工程 仅介绍了入门程序及其编译运行过程,下面开始对stm32的一些基础知识做一个记录. 1.stm32f103zet6(上篇问题3 ...

  2. ARM上裸奔的跑马灯程序

    今天用优龙ST2410测试了一下在不进系统的情况下裸奔跑马灯程序.首先总结下在ARM板上裸奔程序的几种方法:既然要在ARM上裸奔,首先地让ARM板不进系统,方法是上电复位后选BIOS的最后一项:7 : ...

  3. Proteus仿真STM32F103R6的寄存器版跑马灯程序(存储器宏定义)

    跑马灯程序,存储器映像.用宏定义,增强程序的可读性.. 头文件: #ifndef __STM32F10x_H #define __STM32F10x_H#define PERIPH_BASE (0X4 ...

  4. Proteus仿真STM32F103R6的寄存器版跑马灯程序

    STM32最简单的外设莫过于IO口的高低电平控制了, Proteus仿真STM32F103R6的跑马灯程序. 一.原理图 二.跑马灯C程序 // 粗略延时函数 static void delay(un ...

  5. 02 ARM11 时钟初始化后的跑马灯程序

    2019独角兽企业重金招聘Python工程师标准>>> .text .globl _start _start:ldr r0, =0x70000000orr r0, r0, #0x13 ...

  6. 第十九节:依次逐个点亮LED之后,再依次逐个熄灭LED的跑马灯程序。

    开场白: 上一节讲了把74HC595驱动程序翻译成类似单片机IO口直接驱动的方式.这节在上一节的驱动程序基础上,开始讲跑马灯程序.我的跑马灯程序看似简单而且重复,其实蕴含着鸿哥的大智慧.它是基于鸿哥的 ...

  7. arm 跑马灯 linux,02 ARM11 时钟初始化后的跑马灯程序

    .text .globl _start _start: ldr r0, =0x70000000 orr r0, r0, #0x13 mcr p15, 0, r0, c15, c2, 4 ldr r0, ...

  8. 基于8255A接口芯片的跑马灯程序

    目前这段时间,微机原理这门课上到了接口部分:开始接触到基于接口芯片的汇编编程,这个星期五上机实验完成后.考虑了一下老师说的跑马灯程序,感觉逻辑上实现不是很复杂 于是去实现了一下,但是没跑起来:于是最后 ...

  9. 写一个ST语言的跑马灯程序

    ST语言的跑马灯程序如下: repeat for i:=1 to 8 do for j:=1 to 8 do if (i=j) then write('*'); else write(' '); en ...

  10. 写一个跑马灯程序并注释

    我可以写一个简单的跑马灯程序,代码如下:// 定义一个字符串,用于显示跑马灯 var str = '你好,世界!';// 定义一个变量,用于表示跑马灯的位置 var pos = 0;// 使用循环,不 ...

最新文章

  1. python php区别-PHP,Python,Java写出来的WEB程序有什么区别?
  2. Linux - 后台运行 ctrl + z , jobs , bg , fg
  3. 成功解决softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be
  4. opengl加载显示3D模型UC类型文件
  5. 编程语言的发展趋势及未来方向(1):历史回顾及趋势概述
  6. list 泛型_带你深挖Java泛型类型擦除以及类型擦除带来的问题
  7. 用iArduino app+以太网插板实现“iPhone,iPadiPod无线控制Arduino”!
  8. python爬考研_用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!
  9. iOS常用第三方类库 Xcode插件
  10. linux下文件打包、压缩详解
  11. ERP原理学习3-5
  12. 华为升级鸿蒙系统教程,华为升级鸿蒙系统方法汇总 华为手机各型号升级鸿蒙系统教程...
  13. 阿里云OSS浏览图片报403错误的解决方法
  14. sigmoid函数及其导数
  15. java根据经纬度获取地址(百度地图)
  16. mysql 集群 运维_【MySQL运维】Canal集群模式与多数据库同步部署
  17. 给discuz x增加后台菜单管理功能
  18. 七、BDB JE与BDB Java API
  19. 微波背景辐射的发现(获诺贝尔奖)——彭齐亚斯和威尔逊
  20. 【004 关键字】extern “C“的作用是什么?

热门文章

  1. 深度装机大师一键重装_手把手教你深度装机大师u盘装系统教程
  2. IDEA / webstorm 破解
  3. layui扩展第三方模块_Layui集成第三方插件nicescroll
  4. 计算机在教学中应用论文,极域电子教室在计算机教学中的应用
  5. 凸优化与非线性优化基础(3)-- 二次规划Quadratic Programming
  6. 谷歌浏览器如何正确离线网页
  7. 解决新用户注册Kaggle无法显示验证码的问题
  8. 万里牛B轮融资过亿,电商SaaS究竟有多吸金?
  9. 硬盘的老化测试软件,固态硬盘不耐用?教你检测固态硬盘还能用多久
  10. SHA256算法原理及其实现