
OpenHarmony:如何使用HDF驱动控制LED灯 原创
1、程序简介
该程序是基于OpenHarmony标准系统编写的基础外设类:RGB LED。
目前已在凌蒙派-RK3568开发板跑通。详细资料请参考官网:https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk3568-openharmony/tree/master/samples/b02_hdf_rgb_led
详细资料请参考OpenHarmony官网:
2、硬件设计
RGB LED灯整体硬件电路如下图所示,硬件电路中包含了三个GPIO控制管脚控制RGB LED灯,低电平点亮LED灯,高电平熄灭LED灯。电路简单,这边不对此进行多余的说明。
3、程序解析
3.1 目录结构
3.2 内核HDF驱动程序
3.2.1 接口函数
函数名:HdfRgbLedDriverInit
功能说明:HDF初始化注册,读取HDF资源配置文件,获取三色灯控制GPIO管脚。
函数名:HdfRgbLedDriverRelease
功能说明:HDF去注册。
函数名:HdfRgbLedDriverBind
功能说明:HDF绑定解析函数。
函数名:rgbLedDriverDispatch
功能说明:解析函数,解析应用层下发的命令,执行命令对应操作,RGB_LED_WRITE控制三色灯亮灭。
函数名:LedGpioCtrl
功能说明:LED GPIO控制函数,低电平点亮LED,高电平熄灭LED。
3.3 应用层程序
3.3.1 应用层代码分析
程序启动后获取命令行参数,如果命令行不带参数,RGB三色灯运行跑马灯;如果命令行带参数,根据传入的参数的低三位映射点亮对应的红灯、绿灯和蓝灯;通过HdfIoServiceBind绑定RGB三色灯HDF服务,获取HDF空间缓冲区,向缓冲区写入需要控制的RGB三色灯低三位数据,通过RGB_LED_WRITE命令下发到HDF驱动中,从而控制RGB三色灯亮灭。程序运行结束,回收HDF空间缓冲区和HDF服务。
4、运行程序
系统启动后,命令行运行命令:
5、运行结果
运行结果:
