openHarmony下USB通信初尝试

USB设备在Linux上访问,可以通过文件读写方式,Linux上/dev/bus/usb下面需要root权限,安卓读写节点也需要授权,在鸿蒙上调试时,一直有权限的担心。

拿来开发板,插上设备,lsusb看了一下,设备节点正常,shell用户可以正常看到,而且看到节点权限666,感觉有希望。

拿来嵌入式组的通信库代码,选则出连接设备的代码片段,编译成napi,调试运行,意外的顺利,打开成功了,剩下的问题就是通信了。

拿来一段简单的通信代码,编译,调用,结果意外的顺利,通信完全正常。

总体来说,openharmony并没有像安卓那样把USB节点权限限制那么死,对于开发者来说还是很友好的,Linux系统下,最基础的通信方式就可以顺利完成与设备的交互。

鸿蒙napi层也有一套USB的通信接口,官网看了一下,还是有点复杂,需要借助arkts获取deviceid后,传入napi层才可以通信,目前还没有尝试,以后有机会或许可以试一下。

### OpenHarmony 中 UART 串口通信 #### UART 模块简介 UART模块被广泛应用来实现设备间的低速串行通信,例如用于输出打印信息或连接外部模块如GPS、蓝牙等。对于希望将UART设备适配至OpenHarmony平台的情况,开发者需关注特定的驱动适配流程[^1]。 #### 驱动适配过程概览 为了使UART硬件能够在OpenHarmony操作系统上正常工作,必须编写相应的驱动程序并完成必要的配置文件设置。这通常涉及到理解目标板卡的具体规格以及遵循官方指导原则来进行编码实践。 #### 实现 UART 设备访问的方法 在应用程序层面操作已安装好的UART驱动时,可以通过调用`HdfIoServiceBind()`函数获得对应的服务对象实例;随后利用此服务对象内的派发功能向底层传递指令数据包。当不再需要继续使用这些资源的时候,则应当适时地执行回收动作以释放占用的空间,即调用`HdfIoServiceRecycle()`方法[^4]。 #### 示例代码展示 下面给出一段简单的Python伪代码片段作为参考,展示了怎样基于上述提到的消息机制接口去读取来自某个指定名称为“uart_service”的UART端口的数据: ```python import ctypes def read_uart_data(service_name="uart_service"): service = HdfIoServiceBind(service_name) # 获取服务 if not service: print("Failed to bind service.") return None try: result = service.Dispatch('read') # 发送命令给驱动 return result.Data finally: HdfIoServiceRecycle(service) # 清理资源 ``` 请注意这段代码仅为示意目的而简化处理逻辑,在实际项目里可能还需要考虑错误捕捉、超时控制等因素。 #### 学习资料推荐 针对想要深入了解OpenHarmony(特别是南向开发方面)的朋友来说,《鸿蒙NEXT星河版开发学习文档》提供了丰富的理论基础和技术细节讲解,涵盖了从环境搭建到高级特性的方方面面[^3]。此外还有专门面向学者准备的手把手教学视频系列可以帮助更快地上手实操练习[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿捏利

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值