GPIO

1. 简介

AIOT-3568A设有GPIO模块,可以设置GPIO的输入输出状态,也可以直接设置GPIO的电平高低。 下图介绍GPIO的用法以及图像介绍

  • GPIO的正面图如下:

    GPIO3

  • GPIO的背面图如下:

    GPIO4

  • GPIO用法连接如下:

    1、结合万能表测试电平。3.3V为高电平,0V为低电平,如图

    GPIO2

    2、电流方向测试方法,短接后通过API控制电流方向,如图

    GPIO1

2. HDC相关指令

控制指定io口,iox中x代表第几个,0为低电平,1为高电平

echo 0 > sys/class/gpio_sw/io1/data

3. 标准API使用方法

备注

本模块提供shimeta所有自研API的调用,该接口持续更新。

  • shimeta标准接口++

    @ohos.shimeta

  • API使用说明

    使用WIFI相关API开发时候,需要先了解熟悉第一个open Harmony工程的创建,相关文档 Hello World应用以及部署

    在使用一个API时,需要注意以下几点:
    • API权限说明

    • API的参数与返回值

    • API调用错误的时候,参考API错误码和通用错误码

    • API示例的正确使用

    GPIO相关API具体文档可跳转 GPIO相关API

4. 社区Demo

社区示例加快正在制作中,敬请等待!将会呈现更优质的内容给各位小伙伴!!

  • 导入模块

    在使用GPIO API的时候,最重要的一步是导入shimeta的接口。通常模块导入是在文件头导入 导入模块如下:

    import shimeta from ‘@ohos.shimeta’

  • shimeta.sys_setGpioDirection(设置 GPIO 输入输出状态)

    • sys_setGpioDirection(id: number, direction: number, value: number): Promise<number>;

    API使用示例:
     1    import shimeta from '@ohos.shimeta'
     2    import { BusinessError } from '@ohos.base';
     3
     4    //设置IO口4 的方向为输出,状态为低电平
     5    shimeta.sys_setGpioDirection(4,1,0).then((result: number) => {
     6    promptAction.showToast({
     7        message: `sys_setGpioDirection result :${result}`
     8    })
     9    }).catch((err: BusinessError) => {
    10    console.error("error message: " + err.message + ", error code: " + err.code);
    11    });
    
  • shimeta.sys_setGpioDirection(获取 GPIO 输入输出状态)

    • sys_getGpioDirection(io:number): Promise<number>;

    API使用示例:
     1    import shimeta from '@ohos.shimeta'
     2    import { BusinessError } from '@ohos.base';
     3
     4    shimeta.sys_getGpioDirection(4).then((value: number) => {
     5
     6    promptAction.showToast({
     7        message: `sys_getGpioDirection result :${value}`
     8    })
     9    }).catch((err: BusinessError) => {
    10    console.error("error message: " + err.message + ", error code: " + err.code);
    11    });
    
  • shimeta.sys_getGpioValue(获取 GPIO 的电平状态)

    • sys_getGpioValue(io:number): Promise<number>;

    API使用示例:
     1 import shimeta from '@ohos.shimeta'
     2 import { BusinessError } from '@ohos.base';
     3
     4 shimeta.sys_getGpioValue(4).then((value: number) => {
     5
     6 promptAction.showToast({
     7    message: `sys_getGpioValue result :${value}`
     8 })
     9 }).catch((err: BusinessError) => {
    10 console.error("error message: " + err.message + ", error code: " + err.code);
    11 });
    

5. 代码编译

小技巧

代码编译详细流程可见,Hello World应用以及部署 中的第二部分(构建第一个页面部分内容)

6. 代码运行效果

社区示例加快正在制作中,敬请等待!将会呈现更优质的内容给各位小伙伴!!