STM32入坑教程(二)让你的LED灯闪烁起来
2020-07-14 06:35
106 查看
单片机入坑教程(二)让你的LED灯闪烁起来
唠唠两句
上一个博客已经说了点亮一个LED灯的具体方法了,本次来说说如何让你的LED灯闪烁起来。
LED灯无非只有亮和灭两种状态,这两种状态其实我们都已经会了:给它加所需要的电压即亮,撤去电压即灭。这个可以根据实际电路给LED灯高低电平就可以了。一个小的LED灯,3.3v20ms足够了,直接用单片机的IO口就可以了。但是如果是大功率的小灯或者LED灯的数量比较多,还是建议外接驱动电路,不然会烧坏单片机。驱动电路无非就是搞个三极管搭一下电路,如果不会百度搜一下,有很多。我们主要说一下程序的写法。
配置方法
- 建立led.c文件,初始化LED小灯对应的端口(本例是PA8)
void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能GPIOA时钟 GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8; GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStruct);//初始化 GPIO_SetBits(GPIOA,GPIO_Pin_8);//拉高电平 }
- 建立led.h文件,申明void LED_Init(void)函数
#ifndef _LED_H_ #define _LED_H_ #include "stm32f10x.h" void LED_Init(void); #endif
- 在main文件中包含led.h和delay.h文件,delay文件是原子哥封装好的延时函数,我们直接调用就可以了。(不经意间又给原子哥打了个广告,原子哥给我发点广告费呗)
- 初始化LED和delay
- 在while中实现逻辑:高电平-延时低电平-延时
#include "LED.h" #include "delay.h" int main() { LED_Init(); delay_init(); while(1) { GPIO_SetBits(GPIOA,GPIO_Pin_8); delay_ms(2000); GPIO_ResetBits(GPIOA,GPIO_Pin_8); delay_ms(2000); } }
程序已经过实测验证,可使LED闪烁起来
如果想要完整程序,这里有个传送门:
https://download.csdn.net/download/m0_46195580/12503016
没积分打不开上个传送门??这里还有个传送门:
链接:https://pan.baidu.com/s/1LUDzxyqDM8VB3N6Q8_2tKw
提取码:byzd
相关文章推荐
- 最简单的STM32入门教程----闪烁LED
- Beaglebone Black教程项目1闪烁板载LED
- stm32实现LED灯的闪烁
- linux 让led闪烁起来,by timer,device tree
- STM32实例之LED灯闪烁控制以及相关注意事项
- STM32入坑教程(三)led流水灯
- [stm32][ucos] 1、基于ucos操作系统的LED闪烁、串口通信简单例程
- 基于STM32的按键控制闪烁LED
- [stm32][ucos][ucgui] 2、LED闪烁、串口、滑块、文本编辑框简单例程
- STM32定时器程序(一个LED闪烁)
- 【Arduino官方教程第一辑】示例程序 2-1 LED闪烁进阶
- STM32点亮LED使其闪烁(8个LED)
- stm32 TouchGFX基础教程(十四)触控点亮LED
- 简单的STM32 汇编程序—闪烁LED
- Linux设备驱动程序设计(三)----Linux的特殊字符设备:混杂设备,依旧让LED闪烁起来
- Stm32定时器中断使LED灯闪烁
- STM32通用定时器实现LED灯闪烁
- STM32固件库实现led亮灭闪烁和音频发生器设计
- stm32 ucos LED灯延时闪烁+按键闪烁+串口输出
- 【STM32】HAL库STM32CubeMX+True Studio系列教程(一)——GPIO配置LED灯