找回密码
 立即注册
搜索
0赞
赞赏
手机版
扫码打开手机版
把文字装进口袋

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

担船群烈情 2022-8-11 10:29:20
首先,先回顾一下,控制一个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.引脚设置
       

        2.流水灯
       

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

        4.主函数
        int main()
        {
        LED_Init();
        while(1)
        {
        led_display();
        }
        }
        但是有一点我存在疑惑,当我使用0.1来控制灯的亮灭时,灯不闪烁或者很暗,亮度弱,但是在仿真的时候,灯是按照程序来进行亮灭变化的
        只贴上led.c程序,在led.h上已写了相关定义
       

        编辑:hfy

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

使用道具 举报

您需要登录后才可以回帖 立即登录
2022-8-15 13:58:53
太赞了
2022-8-17 13:50:21
学习了!!!!
2022-8-20 18:40:44
学习了,这就去试试
2022-8-23 23:31:07
支持!!!!!!
2022-8-24 06:01:07
谢谢楼主的辛苦分享
2022-8-24 12:31:07
不错不错 支持下
2022-8-24 19:01:07
学习一下!十分感谢
2022-8-25 01:31:07
好像还不错!
2022-8-25 08:01:07
1234下一页
返回顶部