招聘信息网站建设,网站开发工作方案,郑州餐饮网站建设公司排名,wordpress怎么去掉作者一、什么是GPIO?
GPIO#xff08;英语#xff1a;General-purpose input/output#xff09;#xff0c;通用型输入输出端口#xff0c;在单片机上一般是通过一个GND引脚和若干个io引脚配合工作。 单片机可以配置GPIO输入输出模式,与外界环境进行通信交互。在输入环境下英语General-purpose input/output通用型输入输出端口在单片机上一般是通过一个GND引脚和若干个io引脚配合工作。 单片机可以配置GPIO输入输出模式,与外界环境进行通信交互。在输入环境下可以读取指定端口的高低电平状态。在输出环境下可以控制指定端口的高低电平状态。
二、Android GPIO通信
使用Runtime.getRuntime()获取本地GPIO文件并与之通信直接上代码。 /*** gpio通讯工具*/
class GpioUtil private constructor(){companion object{private var instance:GpioUtil?nullget() {if (field null) {field GpioUtil()}return field}Synchronizedfun get():GpioUtil{return instance!!}}/*** 执行外部程序指令** param instruct 指令*/fun chmod(instruct: String?) {try {val runtime Runtime.getRuntime()val process runtime.exec(su)val dataOutputStream DataOutputStream(process.outputStream)dataOutputStream.writeBytes(instruct)dataOutputStream.flush()dataOutputStream.close()} catch (ex: Exception) {ex.printStackTrace()}}/*** 获取gpio编号对应的值即是高电平或低电平** return高低电平(0或者1)* * 注意使用该方法时initGpio的dire参数值应为in*/fun getValue(gpioNum:String): Int {val localFile File(/sys/class/gpio/gpio gpioNum /value)if (!localFile.exists()) println(localFile.absoluteFile.toString() not exist!)while (true) {try {val localFileReader FileReader(localFile)val arrayOfChar CharArray(1)val i localFileReader.read(arrayOfChar, 0, 1)localFileReader.close()if (i 1) {val j arrayOfChar[0].codereturn if (j 48) 0 else 1}} catch (localFileNotFoundException: FileNotFoundException) {localFileNotFoundException.printStackTrace()return -1} catch (localIOException: IOException) {localIOException.printStackTrace()return -1}}}/*** 发送指令设置gpio值* 设置gpio值即设置高电屏* param paramInt 写入值0或者1* param gpioPort gpio端口* * 注意使用该方法时initGpio的dire参数值应为out*/fun setValue(gpioPort:String,paramInt: Int) {val exportPath1 echo $paramInt /sys/class/gpio/gpio$gpioPort/valuechmod(exportPath1)}/*** 初始化gpio* param gpioPort gpio端口单片机服务商提供* param dire 输入只读/输出读写方向**/fun initGpio(gpioPort:String,dire:String){//写入编号val exportPath echo $gpioPort /sys/class/gpio/exportchmod(exportPath)//定义输入输出方向(out / in)val directionPath (echo $dire /sys/class/gpio/gpio gpioPort /direction)chmod(directionPath)//赋予引脚编号的读写权限val permissionGpio chmod 0777 /sys/class/gpio/$gpioPort/valuechmod(permissionGpio)}
}本文完毕下班……