欢迎您光临机械网,如有问题请及时联系我们。

怎样用STM32点亮LED灯?怎样用STM32让LED闪烁?

作者:机械网
文章来源:本站

  对于单片机编程而言,点亮LED是单片机编程的入门操作。

  对于STM32,本人习惯使用寄存器操作,所以本文将以KEIL4.12作为开发环境,以寄存器操作试验为编程思路讲解。

  先创建一个工程名为LED_Project,在keil的右侧的工程窗口,选中项目,鼠标右手单击,出现如下图所示

  选择Device项,选择对应型号,

  在工程中添加对应的寄存器版本的支持文件,因只需要LED相关的寄存器操作,则只需要RCC,GPIO的固件库文件,

  创建main.c文件,并包含 #include <stm32f10x_lib.h>头文件

  首先我们假设当PA4引脚为高电平时,LED灯亮,为低电平时,LED等灭,

  设置LED的宏定义,如下:

  #define LED_ON GPIOA->ODR

  =(1<<4);

  #define LED_OFF GPIOA->ODR&=~(1<<4);

  定义一个LED的GPIO初始化函数,

  如上图所示,

  RCC->APB2ENR

  =1<<2; 是PA端口的时钟使能

  我们使用PA4作为LED输出控制端口,配置PA4作为推挽输

  设置led灯1秒钟亮灭一次,俗称呼吸灯函数如下:

  如上图所示,函数中使用for循环,完成一个led闪烁频率从最快10ms间隔闪烁一次,渐渐增大时间,最后到1S闪烁一次,再逐渐减小间隔时间,闪烁频率加快。

  LED闪烁的实现效果还可以进行设计,大家可以自由的进行发挥代码的魅力和能力

  以上是问题的粗略解答,难免会有遗漏

  希望大家留言,点赞,转发,关注

  用单片机来点亮一个LED灯,是非常基本的操作,是初学者第一个、而且是必经历的小项目。在用STM32单片机实现点灯的时候,需要将端口设置为输出,并且要输出高电平或者低电平。下面详细讲解。

  下图是单片机驱动LED的电路原理图,采用灌电流的方式,当单片机输出低电平时,LED被点亮;当单片机输出高电平时,LED熄灭。

  如果要让LED发光,单片机就要输出低电平。STM32单片机寄存器的配置不同于51单片机,需要打开端口的时钟、需要设置端口的方向、输出类型等。配置程序如下图所示。

  上图中使用STM32的PA4来控制LED,首先将GPIOA的时钟打开,再将端口配置为推挽输出,上图中速度设置为了50MHz。这里采用的库函数。

  将端口配置后以后,就可以控制端口的输出了,如果端口输出1,即高电平则LED处于熄灭状态;如果端口输出低电平,则LED处于点亮状态;使用库函数写的程序如下。

  #define LED1_ON GPIO_ResetBits(GPIOA,GPIO_Pin_4)//PA4 = 0

  #define LED1_OFF GPIO_SetBits(GPIOA,GPIO_Pin_4) //PA4 = 1

  通过宏定义将LED1_ON定义为点灯;将LED1_OFF定义为关灯。在主函数中调用该宏定义即可实现LED的点亮和熄灭。

  如果要实现闪烁功能,可以通过延时来实现,也可以通过定时器来实现。

  以上就是这个问题的回答,感谢留言、评论、转发。更多电子设计、硬件设计、单片机等内容请关注本头条号:玩转嵌入式。感谢大家。

  控制输出管脚的通断就可以控制LED灯的点亮和闪烁了。

  

怎样用STM32点亮LED灯?怎样用STM32让LED闪烁?

  

怎样用STM32点亮LED灯?怎样用STM32让LED闪烁?

  

怎样用STM32点亮LED灯?怎样用STM32让LED闪烁?

来源:文章来源于网络,如有侵权请联系我们及时删除。本文由机械网转载编辑,欢迎分享本文!