agile_led是基于RT-Thread实现的led软件包,提供led操作的API。
- 代码简洁易懂,充分使用RT-Thread提供的API
- 详细注释
- 线程安全
- 断言保护
- API操作简单
名称 | 说明 |
---|---|
examples | 例子目录 |
inc | 头文件目录 |
src | 源代码目录 |
agile_led package 遵循 LGPLv2.1 许可,详见 LICENSE
文件。
- RT-Thread 3.0+
- RT-Thread 4.0+
使用 agile_led package 需要在 RT-Thread 的包管理器中选择它,具体路径如下:
RT-Thread online packages
peripheral libraries and drivers --->
[*] agile_led: A agile led package
然后让 RT-Thread 的包管理器自动更新,或者使用 pkgs --update
命令更新包到 BSP 中。
在打开 agile_led package 后,当进行 bsp 编译时,它会被加入到 bsp 工程中进行编译。
- 创建led对象
agile_led_t *agile_led_create(rt_base_t pin, rt_base_t active_logic, const char *light_mode, int32_t loop_cnt);
参数 | 注释 |
---|---|
pin | 控制led的引脚 |
active_logic | led有效电平(PIN_HIGH/PIN_LOW) |
light_mode | 闪烁模式字符串 |
loop_cnt | 循环次数(负数为永久循环) |
返回 | 注释 |
---|---|
!=RT_NULL | agile_led对象指针 |
RT_NULL | 异常 |
- 删除led对象
int agile_led_delete(agile_led_t *led);
参数 | 注释 |
---|---|
led | led对象指针 |
返回 | 注释 |
---|---|
RT_EOK | 成功 |
- 启动led对象,根据设置的模式执行动作
int agile_led_start(agile_led_t *led);
参数 | 注释 |
---|---|
led | led对象指针 |
返回 | 注释 |
---|---|
RT_EOK | 成功 |
!=RT_OK | 异常 |
- 停止led对象
int agile_led_stop(agile_led_t *led);
参数 | 注释 |
---|---|
led | led对象指针 |
返回 | 注释 |
---|---|
RT_EOK | 成功 |
- 设置led对象的模式
int agile_led_set_light_mode(agile_led_t *led, const char *light_mode, int32_t loop_cnt);
参数 | 注释 |
---|---|
led | led对象指针 |
light_mode | 闪烁模式字符串 |
loop_cnt | 循环次数(负数为永久循环) |
返回 | 注释 |
---|---|
RT_EOK | 成功 |
!=RT_EOK | 异常 |
- 设置led对象操作完成的回调函数
int agile_led_set_compelete_callback(agile_led_t *led, void (*compelete)(agile_led_t *led));
参数 | 注释 |
---|---|
led | led对象指针 |
compelete | 操作完成回调函数 |
返回 | 注释 |
---|---|
RT_EOK | 成功 |
- led对象电平翻转
void agile_led_toggle(agile_led_t *led);
参数 | 注释 |
---|---|
led | led对象指针 |
- led对象亮
void agile_led_on(agile_led_t *led);
参数 | 注释 |
---|---|
led | led对象指针 |
- led对象灭
void agile_led_off(agile_led_t *led);
参数 | 注释 |
---|---|
led | led对象指针 |
使用示例在 examples 下。
- 调用
agile_led_create
API创建完led对象后,调用其他API确保led对象创建成功,否则被断言。 - 调用
agile_led_create
和agile_led_set_light_mode
API时,参数light_mode
可以为RT_NULL。 light_mode
确保时字符串形式,如"100,50,10,60"
或"100,50,10,60,"
,只支持正整数,按照亮灭亮灭...规律。
- 维护:马龙伟
- 主页:https://github.com/loogg/agile_led
- 邮箱:2544047213@qq.com