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对象,根据设置的模式执行动作
int agile_led_start(agile_led_t *led);
返回 |
注释 |
RT_EOK |
成功 |
!=RT_OK |
异常 |
- 停止led对象
int agile_led_stop(agile_led_t *led);
- 设置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 |
操作完成回调函数 |
- led对象电平翻转
void agile_led_toggle(agile_led_t *led);
- led对象亮
void agile_led_on(agile_led_t *led);
- led对象灭
void agile_led_off(agile_led_t *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,"
,只支持正整数,按照亮灭亮灭...规律。