STM32:(单片机)实现LED跑马灯程序的两种方法

思路:理解跑马灯的含义—-了解GPIO知识要点(掌握两个GPIO的HAL库函数)—参数配置—运行代码—烧入开发板

一、理解跑马灯的含义:

我们思考一下,什么是跑马灯呢?

跑马灯是一种传统的中国节日玩具,主要由圆筒形灯笼、画轴等组成,其工作原理是通过点燃蜡烛或电灯产生的热量,带动空气流动,进而是画轴旋转或滚动,依次实现不同的画面。

简单理解呢就像我们运动会的接力赛,由不同的的队员依次接力传递。

如何在开发板中实现呢?

首先,需要两个灯:LED1(PA3)、LED2(PB8)

再者:让LED1一亮一灭,紧接着再LED2一亮一灭,就实现了两个灯的跑马。

二、了解GPIO的知识要点(掌握两个GPIO的HAL库函数)

如何让LED1和LED2一亮一灭呢?

【1】GPIO电平输出HAL库函数:

void HAL_GPIO_WritePin[读写](GPIOx,GPIO_PIN,PinSate)

GPIOx:目标引脚端口 ;GPIO-Pin:目标引脚的引脚号;

PinSate:【点亮】(高电平)-GPIO-Pin-SET;【熄灭】(低电平)-GPIO-Pin_RESET

例:输出LED2灯高电平==(点亮LED2灯)(LED2(PB8):B是端口号,8是引脚号)

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET);

例:输出LED2灯低电平==(熄灭LED2灯)

HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_RESET);

例:输出LED1灯高电平==(点亮LED1灯)(LED1(PA3):A是端口号,3是引脚号)

HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_SET);

例:输出LED1灯低电平==(熄灭LED1灯)

HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_RESET);

程序实例:(第一种方法)

【2】电平翻转HAL库函数:

电平翻转:一亮一灭

void HAL_GPIO_TogglePin[翻转](GPIOx,GPIO_PIN)

GPIOx:目标端口号;GPIO_PIN:目标引脚号

例:将LED1灯电平翻转   (LED1(PA3):A是端口号,3是引脚号)

HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_3);

例:将LED2灯电平翻转(LED2(PB8):B是端口号,8是引脚号)

HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8);

程序实例:(第二种方法)

以上就是两种跑马灯的实现方法,作为补充知识点,再了解一下GPIO这个大家族吧( ̄︶ ̄)↗  

GPIO】:General Purpose Input &Output(输入输出引脚)

STM32芯片最多拥有GPIOA…GPIOG等7组端口;每组端口至多拥有Pin0…Pin15共16个引脚。

STM32的每个I/O端口都由7个寄存器来控制,并且每个I/O端口都可以由软件配置成8种模式

(高低电平就是推挽输出模式)

三、参数配置【例题版本:STM32L151C8/也可用STM32F103F8(配置一致)】(以下是略快速版本,超详细配置可参考文章【STM32(入门)实现LED2灯循环闪烁】)

STM32CubeMX配置:

(1)新建项目:

(2)选择版本:

(3)SYS参数配置:

(4)RCC参数配置:

 

(5) LED1、LED2灯配置

(6)系统时钟配置

 

(7)项目管理配置

(8) Code Generator 勾选

(9) 配置完成并打开

四、运行代码(展示一种,步骤一致)

五、烧入开发板(所需工具如图)

 

 

 以上就是实现跑马灯的两种方式(非常抱歉╯︿╰,因为不能放视频,暂时不能展示效果)

感谢大家的观看啦(。・∀・)ノ

作者:二月红.

物联沃分享整理
物联沃-IOTWORD物联网 » STM32:(单片机)实现LED跑马灯程序的两种方法

发表回复