迅为RK3568开发板篇OpenHarmony实操HDF驱动控制LED-接口函数
发布时间:2025-1-20 10:29
发布者:就是塔塔
在一小节的代码中实现了一个简单的 LED 驱动,下面是对代码的详细解释: 包含的头文件如下所示: ![]() 宏定义如下所示: ![]() 数据结构如下所示: ![]() g_LedDriverEntry 结构体是驱动入口结构体,如下所示,包含了驱动的版本号、模块名、绑定、初始化和释放函数。 ![]() HdfLedDriverInit 函数是驱动初始化函数。 参数:deviceObject(设备对象)。 流程:获取设备资源接口,读取设备配置中的 led_version 和 led_number(GPIO 号),并保存到全局配置变量中。 ![]() HdfLedDriverRelease:驱动释放函数。 参数:HdfDeviceObject(设备对象)。 流程:记录日志,表示驱动释放成功。 ![]() HdfLedDriverBind:绑定解析函数 参数:deviceObject(设备对象)。 流程:将 LED 驱动的服务对象赋值给设备对象的服务成员。 ![]() LedDriverDispatch:解析函数,解析应用层下发的命令,执行命令对应的操作,控制 led 灯的亮灭。 参数:client(客户端信息),cmdId(命令 ID),dataBuf(输入数据缓冲区),replyBuf(回复数据缓冲区)。 流程:检查设备对象的有效性,验证 LED 版本,根据命令 ID 读取数据并调用 LedGpioCtl控制 LED。 ![]() LedGpioCtl:控制指定 GPIO(LED)的高低电平,从而控制 LED 灯的开关。 参数:gpio(GPIO 号),mode(LED 模式,开或关)。 流程:设置 GPIO 为输出方向,根据 mode 设置 GPIO 的电平,最后记录日志。 ![]() 更多内容可以关注:迅为RK3568开发板篇OpenHarmony |
网友评论