跳到主要内容

FireflyApi2 硬件接口

3.3.1 GPIO

1. gpio 控制
函数:public boolean gpioCtrl(int gpio, String direction, int value)
描述:控制 gpio
参数:gpio gpio 编号
   direction in, out
   value 1/0
返回:true (成功)/ false(失败)
范例:
boolean success = mFireflyApi2.gpioCtrl(150,"out",1);//GPIO4_C6的 gpio 节点为150
2. gpio 读值
函数:public int gpioRead(int gpio)
描述:读取 gpio 的值
参数:gpio gpio 编号
返回:读取失败时返回-1
范例:
int gpioValue = mFireflyApi2.gpioRead(150);//GPIO4_C6的 gpio 节点为150
3. 检查gpio口是否被系统占用
函数:public boolean isGpioOccupied(int gpio)
描述:检查 gpio 口是否被系统占用
参数:gpio gpio 编号
返回:true(被占用)/false(空闲)
范例:
boolean occupied = mFireflyApi2.isGpioOccupied(150);//GPIO4_C6的 gpio 节点为150
4. 解析gpio的节点值
函数:public int gpioParse(String gpioStr)
描述:解析 gpio 的节点值,例 GPIO4_C6 转换为节点150
参数:gpioStr
返回:解析失败返回-1
范例:
int gpioValue= mFireflyApi2.gpioParse("GPIO4_C6");//GPIO4_C6的 gpio 节点为150
5. remove 控制的gpio 节点
函数:public boolean gpioRemove(int gpio)
描述:remove 申请控制的gpio节点
参数:gpio
返回:移除失败返回-1
范例:
boolean success = mFireflyApi2.gpioRemove(150);//GPIO4_C6的 gpio 节点为150

3.3.2 串口使用

  • 导入头文件
    import com.firefly.api2.serialport.SerialHelper2;
  • 根据路径和波特率打开串口,并设置回调函数
    private SerialHelper2 serialHelper;
    private boolean openSerialPort(String path,int baudrate)
    {
    ......
    serialHelper = new SerialHelper2(path, baudrate) {
    @Override
    protected void onDataReceived(final byte[] data) {
    //16进制
    Log.v(TAG,serialHelper.getPort()+" onDataReceived:"+ ByteUtil.ByteArrToHex(data).trim());
    //字符串
    Log.v(TAG,serialHelper.getPort()+" onDataReceived-String:"+ new String(data, 0,data.length).trim());
    }
    };

    try {
    serialHelper.open();
    return serialHelper.isOpen();
    } catch (IOException e) {
    e.printStackTrace();
    }

    return false;
    }
  • 向串口发送字符串
    serialHelper.sendTxt("112233445566");
  • 向串口发送16进制
    //如 0x11,0x22,0x33,0x44,0x55,0x66
    serialHelper.sendHex("112233445566");
  • 关闭串口
    serialHelper.close();