GPIO(英语:General-purpose input/output),通用型之输入输出的简称,功能类似8051的P0-P3,其接脚可以供使用者由程控自由使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO),如当clk generator, chip select等。
既然一个引脚可以用于输入、输出或其他特殊功能,那么一定有寄存器用来选择这些功能。对于输入,一定可以通过读取某个寄存器来确定引脚电位的高低;对于输出,一定可以通过写入某个寄存器来让这个引脚输出高电位或者低电位;对于其他特殊功能,则有另外的寄存器来控制它们。
找了一圈还是用脚本来实现的;
io输出
java端
String cmds[] = {"/bin/bash", "-c", "./iosc.sh "+ip+" "+端口};
Runtime.getRuntime().exec(cmds);
脚本
#!/bin/sh
### BEGIN INIT INFO
# Provides: autoJar.sh
# Required-start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the svnd.sh daemon
# Description: starts svnd.sh using start-stop-daemon
### END INIT INFO
pz=$1
scz=$2
echo out > /sys/class/gpio/gpio${pz}/direction
echo ${scz} > /sys/class/gpio/gpio${pz}/value
exit
io输入
java端
这个放在单独线程里面一直读取
String cmds[] = {"/bin/bash", "-c", "./iosr.sh "+端口};
Process exec = Runtime.getRuntime().exec(cmds);
脚本
#!/bin/sh
### BEGIN INIT INFO
# Provides: autoJar.sh
# Required-start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the svnd.sh daemon
# Description: starts svnd.sh using start-stop-daemon
### END INIT INFO
pz=$1
echo in > /sys/class/gpio/gpio${pz}/direction
cat /sys/class/gpio/gpio${pz}/value
exit