• Lv0
    粉丝2

积分15 / 贡献0

提问1答案被采纳0文章0

作者动态

    openHarmony,在应用开发的时候,nativeC++侧要怎么控制开发板的UART、GPIO、I2C这些驱动

    Lsheep 显示全部楼层 发表于 2024-8-15 10:58:40

    【问题描述】

    1. 想通过native C++控制一些连接在开发板上,像读卡器、语音模块、摄像头和一些第三方厂家的自定义协议设备。但不知道在用户应用程序开发的native C++侧怎么去控制底层的驱动,求大佬解惑

    【运行环境】

    硬件:RK3568 ROM版本:4.0 DevEvoStudio版本:next 2 SDK版本:10

    您尚未登录,无法参与评论,登录后可以:
    参与开源共建问题交流
    认同或收藏高质量问答
    获取积分成为开源共建先驱

    精彩评论12

    Lsheep

    沙发 发表于 2024-8-15 16:46:10
    这些外接的第三方厂家设备有的是串口、485、I2C通信,有的是IO控制

    wowni

    发表于 2024-8-23 09:50  IP属地: 天津市

    回复 Lsheep: 同问,请问你找到方法了吗

    Lsheep

    发表于 2024-8-23 13:57  IP属地: 江苏省扬州市

    回复 wowni: 目前是用linux的库在控制,像stdio、fcntl,去操作/dev/ttyS0、/sys/class/gpio/export、/sys/class/gpio/gpioX进行控制,但会遇到权限问题,而且鸿蒙应用还没权限调用类似system()可以执行系统命令的方法来改变文件的权限,这个权限问题目前还没解决。你有找到其他方法吗

    wowni

    发表于 2024-8-23 20:40  IP属地: 天津市

    回复 Lsheep: 没有,我们调研了好几款开发板,他们都是在系统层面可以实现串口通信,但是在应用层提供不了接口,现在没思路。

    【3 条回复】

    云端筑梦

    板凳 发表于 2024-8-22 17:45:32
    https://docs.openharmony.cn/page ... latform-gpio-des.md 可以看一下他们的驱动是怎么实现的

    wowni

    发表于 2024-8-23 09:52  IP属地: 天津市

    回复 云端筑梦: 看文档,他们都是在驱动层面实现的,像是在编译系统源码的时候调用系统中的头文件之类的,在应用层有办法调用吗

    云端筑梦

    发表于 2024-8-23 11:50  IP属地: 广东省广州市

    回复 wowni: 驱动会在上层产生对应的节点,你通过C语言去操作对应节点就好了

    Lsheep

    发表于 2024-8-23 13:52  IP属地: 江苏省扬州市

    回复 云端筑梦: 节点是指/dev和/sys/class/gpio里面的文件吗,例如/dev/ttyS0、/sys/class/gpio/export、/sys/class/gpio/gpioX。因为购买的是适配好的开发板,自己没有做设备开发,只做应用开发,所以我在nativeC++侧,是用linux的库调用/dev/ttyS0或/sys/class/gpio/gpioX在控制串口和gpio,但在使用/sys下的文件时会遇到权限问题,命令行把setlinux取消了也是无法打开/sys下的文件,请问这个有什么解决办法吗,还是我的实现方向是错误的

    云端筑梦

    发表于 2024-8-23 14:39  IP属地: 广东省广州市

    回复 Lsheep: sys下的节点,再通过chmod去给他们对应的读写权限应该就可以操作了

    wowni

    发表于 2024-8-23 20:44  IP属地: 天津市

    回复 Lsheep: 我们也是做应用层开发。我手里的板子,调用/dev下的节点倒是可以的,你可以加下我,咱们私信交流下

    Lsheep

    发表于 2024-8-26 09:53  IP属地: 江苏省扬州市

    回复 云端筑梦: 好的,感谢

    Lsheep

    发表于 2024-8-26 09:54  IP属地: 江苏省扬州市

    回复 wowni: 可以的

    【7 条回复】

    Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

    返回顶部