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) 配置完成并打开
四、运行代码(展示一种,步骤一致)
五、烧入开发板(所需工具如图)
以上就是实现跑马灯的两种方式(非常抱歉╯︿╰,因为不能放视频,暂时不能展示效果)
感谢大家的观看啦(。・∀・)ノ
作者:二月红.