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) {@Overrideprotected 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,0x66serialHelper.sendHex("112233445566");
- 关闭串口
serialHelper.close();