控制LED流水灯的四点注意点

电子说

1.3w人已加入

描述

首先,先回顾一下,控制一个led闪烁的步骤是什么

就上节而言,先要对控制led的端口进行初始化,初始化的内容包括时钟SystemInit()和gpio_init(),gpio_init()包括很多,所以我们声明一个结构体,然后用GPIO_InitStructure.GPIO_Pin选择控制的端口,在上节我们选择控制所有的led灯,即控制所有的引脚,通过查阅电路图可以知道是哪些引脚,再通过查阅库函数中文手册知道GPIO_Pin_ALL即是控制所有引脚,而选择控制引脚则用  |   来表示(|一定得切换成英文),随后我们设置传输速率,输出方式,并初始化gpio,做完这一切,成功了一半。下一步即是对led进行控制,我们明白,GPIO_SetBits,GPIO_ResetBits 这两个函数是控制高低电平的我们只需要再声明一个显示函数led_display,包含这GPIO_SetBits,GPIO_ResetBits,并且加上延迟函数,最后再在主函数main.c写入函数则会实现闪烁灯的效果。所有函数的用法参考stm32固件库中文手册

如果要控制流水灯,那么很简单,我只需要改变控制引脚函数GPIO_InitStructure.GPIO_Pin以及在显示函数led_display中多添加几行相应引脚输出高低电平命令GPIO_SetBits,GPIO_ResetBits即可。最重要的一点,我们在led.c中写的任何函数体(除开库函数)都要先在led.h中先进行声明。是不是很简单。

改的几点东西东西如图

1.引脚设置

控制LED灯

2.流水灯

控制LED灯

3.led.h下的声明和定义

控制LED灯

4.主函数

int main()
{
LED_Init();
while(1)
{
led_display(); 
}
}

但是有一点我存在疑惑,当我使用0.1来控制灯的亮灭时,灯不闪烁或者很暗,亮度弱,但是在仿真的时候,灯是按照程序来进行亮灭变化的

只贴上led.c程序,在led.h上已写了相关定义

控制LED灯

编辑:hfy

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分