首先,先回顾一下,控制一个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上已写了相关定义
魅族16X评测 值不值得买
VT66/66A三极管型音乐集成电路
碳膜电阻的特点
荣耀9、OPPO r11,一大波新机来袭,准备剁手了吗?
一文速览!拓维信息@1024程序员节精彩看点
控制LED流水灯的四点注意点
三星电子与京东方合作终止
Qorvo推出两款用于数据中心和云存储应用的高性能PMIC
LARA-R2系列蜂窝模块在智能计量方面的应用
最全LED灯丝灯驱动电源方案解析
深圳服务器租用与托管的优劣势是怎样的
华为Mate 40采用的麒麟9000芯片,或成为麒麟高端芯片的最后一代?
人工智能在零售业已经有了巨大的影响
德国亚琛大学使用DIAdem软件实现车辆碰撞中的信任保护评估测试
声控电梯凭什么不火?
人体发电机 - 呼吸之间,电池满格
桥梁通航安全在线监测系统,保障通航安全!
特高压输电线路在线监测系统方案的详细介绍
量子芯片究竟强大在何处?
PCB规则之AD高级间距规则