您的位置:首页 > 其它

STM32入坑教程(二)让你的LED灯闪烁起来

2020-07-14 06:35 106 查看

单片机入坑教程(二)让你的LED灯闪烁起来

唠唠两句

上一个博客已经说了点亮一个LED灯的具体方法了,本次来说说如何让你的LED灯闪烁起来。
LED灯无非只有亮和灭两种状态,这两种状态其实我们都已经会了:给它加所需要的电压即亮,撤去电压即灭。这个可以根据实际电路给LED灯高低电平就可以了。一个小的LED灯,3.3v20ms足够了,直接用单片机的IO口就可以了。但是如果是大功率的小灯或者LED灯的数量比较多,还是建议外接驱动电路,不然会烧坏单片机。驱动电路无非就是搞个三极管搭一下电路,如果不会百度搜一下,有很多。我们主要说一下程序的写法。

配置方法

  1. 建立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);//拉高电平
}
  1. 建立led.h文件,申明void LED_Init(void)函数
#ifndef _LED_H_
#define _LED_H_

#include "stm32f10x.h"
void LED_Init(void);

#endif
  1. 在main文件中包含led.h和delay.h文件,delay文件是原子哥封装好的延时函数,我们直接调用就可以了。(不经意间又给原子哥打了个广告,原子哥给我发点广告费呗)
  2. 初始化LED和delay
  3. 在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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: