Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
LED
向大家推荐一个快捷易用的led驱动包
发布于 2020-07-02 14:10:52 浏览:4494
订阅该版
[tocm] # Quick Led ## 1.简介 **Quick Led** 旨在提供一个快捷易用的led驱动包。 ### 1.1目录结构 `Quick Led` 软件包目录结构如下所示: ``` qled ├───inc // 头文件目录 │ | qled.h // API 接口头文件 │ └───qled_sample.h // 示例头文件 ├───src // 源码目录 │ | qled.c // 主模块 │ └───qled_samplec // 示例模块 │ license // 软件包许可证 │ readme.md // 软件包使用说明 └───SConscript // RT-Thread 默认的构建脚本 ``` ### 1.2许可证 Quick Led package 遵循 LGPLv2.1 许可,详见 `LICENSE` 文件。 ### 1.3依赖 - RT_Thread 4.0 ## 2.使用 ### 2.1接口函数说明 #### int qled_add(int pin, int level); - 功能 :加一个led到驱动 - 参数 :pin--led使用的引脚号 - 参数 :level--点亮led的电平 - 返回 :0--成功,其它--错误 #### void qled_remove(int pin); - 功能 :从驱动移除led - 参数 :pin--led使用的引脚号 - 返回 :无 #### int qled_set_off(int pin); - 功能 :设置led到常灭状态 - 参数 :pin--led使用的引脚号 - 返回 :0--成功,其它--错误 #### int qled_set_on(int pin); - 功能 :设置led到常亮状态 - 参数 :pin--led使用的引脚号 - 返回 :0--成功,其它--错误 #### int qled_set_blink(int pin, int ton_ms, int toff_ms); - 功能 :设置led到周期性闪烁状态 - 参数 :pin--led使用的引脚号 - 参数 :ton_ms--led点亮时长 - 参数 :toff_ms--led熄灭时长 - 返回 :0--成功,其它--错误 #### int qled_set_special(int pin, const u16 *datas, int data_total, void (*over_cb)(void)); - 功能 :设置led执行特殊序列闪烁 - 参数 :pin--led使用的引脚号 - 参数 :datas--特殊序列数据 - 参数 :data_total--特殊序列的数据总数 - 参数 :over_cb--特殊序列执行结束时的回调函数 - 返回 :0--成功,其它--错误 ### 2.2使用示例 ####示例1. 以指定频率和占空比控制led闪烁 ```c qled_add(24, 1);//加24号引脚led到驱动,高电平点亮 qled_set_blink(24, 50, 50);//设置led以10Hz闪烁,亮50ms,灭50ms rt_thread_mdelay(5000);//时间5s qled_set_blink(24, 50, 450);//设置led以2Hz闪烁,亮50ms,灭450ms rt_thread_mdelay(10000);//时间10s qled_remove(24);//不再需要led了,从驱动中移除 ``` ####示例2. 发送SOS信号 ```c #define QLED_SOS_PIN GET_PIN(B, 9) //25号 static int sos_send_times = 0;//发送sos信号次数计数 static const u16 sos_datas[] = //定义sos信号时间数据 { 200, 200, 200, 200, 200, 200, //short 3 times 600, 600, 600, 600, 600, 600, //long 3 times 200, 200, 200, 200, 200, 200 + 2000 //short 3 times and 2000ms interval }; static void qled_sos_cb(void)//定义特殊序列执行结束回调函数 { sos_send_times--; if (sos_send_times > 0)//执行次数未到 { qled_set_special(QLED_SOS_PIN, sos_datas, sizeof(sos_datas)/sizeof(u16), qled_sos_cb);//再次执行 } else//执行完成 { qled_remove(QLED_SOS_PIN);//不需要了,从驱动移除 } } void qled_send_sos(void)//执行发送sos信号,发送5次SOS信号, 总用时40s { sos_send_times = 5;//设置发送次数为5 qled_add(QLED_SOS_PIN, 1);//加引脚led到驱动 qled_set_special(QLED_SOS_PIN, sos_datas, sizeof(sos_datas)/sizeof(u16), qled_sos_cb);//启动执行特殊序列 } ``` ### 2.3获取组件 - **方式1:** 通过 *Env配置工具* 或 *RT-Thread studio* 开启软件包,根据需要配置各项参数;配置路径为 *RT-Thread online packages -> peripherals packages -> quick led* ### 2.4配置参数说明 | 参数宏 | 说明 | | ---- | ---- | | QLED_TOTAL | 支持的led总数 | QLED_TIME_UNIT_MS | led闪烁的时间单位 | QLED_THREAD_NAME | led驱动线程名称 | QLED_THREAD_STACK_SIZE | led驱动线程堆栈尺寸 | QLED_THREAD_PRIO | led驱动线程优先级 | QLED_USING_SAMPLE | 使用示例 | QLED_RUN_PIN | 示例运行灯引脚 | QLED_SOS_PIN | 示例SOS信号灯引脚 ## 3. 联系方式 * 维护:qiyongzhong * 主页:https://gitee.com/qiyongzhong0/rt-thread-qled
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
红枫
这家伙很懒,什么也没写!
文章
6
回答
596
被采纳
133
关注TA
发私信
相关文章
1
应用开发如何包含头文件
2
STM32F03RC跑RTT标准版 没有运行
3
为什么 Count 的值不连续和间隔为 7?
4
请求LED.C/H文件
5
RT-thread 如何被当做“单片机”,控制小灯的亮灭?
6
ART-PI Smart User 运行LED 程序崩溃
7
agile led软件包怎么使用
8
AT32F423开发板呼吸灯无作用,只有一个灯亮
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
6
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部