Quick Led 旨在提供一个快捷易用的led驱动包。
Quick Led
软件包目录结构如下所示:
qled
├───inc // 头文件目录
│ | qled.h // API 接口头文件
│ └───qled_sample.h // 示例头文件
├───src // 源码目录
│ | qled.c // 主模块
│ └───qled_samplec // 示例模块
│ license // 软件包许可证
│ readme.md // 软件包使用说明
└───SConscript // RT-Thread 默认的构建脚本
Quick Led package 遵循 LGPLv2.1 许可,详见 LICENSE
文件。
- RT_Thread 4.0
- 功能 :加一个led到驱动
- 参数 :pin--led使用的引脚号
- 参数 :level--点亮led的电平
- 返回 :0--成功,其它--错误
- 功能 :从驱动移除led
- 参数 :pin--led使用的引脚号
- 返回 :无
- 功能 :设置led到常灭状态
- 参数 :pin--led使用的引脚号
- 返回 :0--成功,其它--错误
- 功能 :设置led到常亮状态
- 参数 :pin--led使用的引脚号
- 返回 :0--成功,其它--错误
- 功能 :设置led到周期性闪烁状态
- 参数 :pin--led使用的引脚号
- 参数 :ton_ms--led点亮时长
- 参数 :toff_ms--led熄灭时长
- 返回 :0--成功,其它--错误
- 功能 :设置led执行特殊序列闪烁
- 参数 :pin--led使用的引脚号
- 参数 :datas--特殊序列数据
- 参数 :data_total--特殊序列的数据总数
- 参数 :over_cb--特殊序列执行结束时的回调函数
- 返回 :0--成功,其它--错误
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了,从驱动中移除
#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);//启动执行特殊序列
}
- 方式1: 通过 Env配置工具 或 RT-Thread studio 开启软件包,根据需要配置各项参数;配置路径为 RT-Thread online packages -> peripherals packages -> quick led
参数宏 | 说明 |
---|---|
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信号灯引脚 |