OpenHarmony:如何使用 HDF 驱动控制 LED 灯
一、程序简介
该程序是基于 OpenHarmony 标准系统编写的基础外设类:RGB LED。
目前已在凌蒙派-RK3568 开发板跑通。详细资料请参考官网:https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk3568-openharmony/tree/master/samples/b02_hdf_rgb_led。
详细资料请参考 OpenHarmony 官网:
GPIO 平台驱动开发
GPIO 应用程序开发
二、硬件设计
RGB LED 灯整体硬件电路如下图所示,硬件电路中包含了三个 GPIO 控制管脚控制 RGB LED 灯,低电平点亮 LED 灯,高电平熄灭 LED 灯。电路简单,这边不对此进行多余的说明。
三、程序解析
1、目录结构
2、内核 HDF 驱动程序
(1)接口函数
函数名:HdfRgbLedDriverInit.
功能说明:HDF 初始化注册,读取 HDF 资源配置文件,获取三色灯控制 GPIO 管脚。
函数名:HdfRgbLedDriverRelease。
功能说明:HDF 去注册。
函数名:HdfRgbLedDriverBind。
功能说明:HDF 绑定解析函数。
函数名:rgbLedDriverDispatch。
功能说明:解析函数,解析应用层下发的命令,执行命令对应操作,RGB_LED_WRITE 控制三色灯亮灭。
函数名:LedGpioCtrl。
功能说明:LED GPIO 控制函数,低电平点亮 LED,高电平熄灭 LED。
3、应用层程序
(1)应用层代码分析
程序启动后获取命令行参数,如果命令行不带参数,RGB 三色灯运行跑马灯;如果命令行带参数,根据传入的参数的低三位映射点亮对应的红灯、绿灯和蓝灯;通过 HdfIoServiceBind 绑定 RGB 三色灯 HDF 服务,获取 HDF 空间缓冲区,向缓冲区写入需要控制的 RGB 三色灯低三位数据,通过 RGB_LED_WRITE 命令下发到 HDF 驱动中,从而控制 RGB 三色灯亮灭。程序运行结束,回收 HDF 空间缓冲区和 HDF 服务。
四、运行程序
系统启动后,命令行运行命令:
五、运行结果
运行结果:
版权声明: 本文为 InfoQ 作者【互联网工科生】的原创文章。
原文链接:【http://xie.infoq.cn/article/63cc4b36c5e62b69e0f040fc9】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论