第一步:硬件清单
3*杜邦母对母
1*pcDuino
上一张幻灯片
步骤2:接线图
霍尔传感器pcDuino
VCC3.3V
GNDGND
D1-D13之一必须与代码相同
第三步:测试代码
GPIO控制实体类
packagecom.test;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
公共类GPIO_Pin{
privateStringmodeURI=“/sys/devices/virtual/misc/gpio/mode/“;
私有字符串statusURI=”/sys/devices/virtual/misc/gpio/pin/“;
privateintpin=0;
publicstaticfinalString高=“1”,低=“0”,输入=“0”,输出=“1”,输入_PU=“8“;
publicGPIO_Pin(int引脚){
modeURI =”gpio“ 引脚;
statusURI =”gpio“ 引脚;
this.pin=引脚;
}
publicGPIO_Pin(Stringpin){
///终结文件路径
modeURI =“gpio” 引脚;
statusURI =“gpio” 引脚;
this.pin=整数。parseInt(pin);
}
publicintgetPin(){
returnpin;
}
publicvoidoverlayURI(Stringuri){
modeURI=uri “mode/gpio“ pin;
statusURI=uri ”pin/gpio“ pin;
}
publicvoidsetMode(字符串模式){
writeToFile(getModeURI(),mode);
}
publicvoidset(Stringstate){
writeToFile(getStatusURI(),state);
}
publicvoidsetHIGH(){
writeToFile(getStatusURI(),HIGH);
}
publicvoidsetLOW(){
writeToFile(getStatusURI(),LOW);
}
publicvoidsetModeINPUT(){
writeToFile(getModeURI(),INPUT);
}
publicvoidsetModeOUTPUT(){
writeToFile(getModeURI(),OUTPUT);
}
publicvoidsetModeINPUT_PU(){
writeToFile(getModeURI(),INPUT_PU);
}
publicStringgetModeURI(){
returnmodeURI;
}
publicStringgetStatusURI(){
returnstatusURI;
}
publicStringgetPinMode(){
试试{
BufferedReaderreader=newBufferedReader(newFileReader(getModeURI()));
字符串数据=reader.readLine();
reader.close();
返回数据;
}catch(IOExceptione){
}
return“”;
}
publicStringgetPinStatus(){
试试{
BufferedReaderreader=newBufferedReader(newFileReader(getStatusURI()));
字符串数据=reader.readLine();
reader.close();
返回数据;
}catch(IOExceptione){
}
返回“”;
}
私有无效writeToFile(StringURI,Stringdata){
试试{
Filefile=newFile(URI);
file.delete();
文件newFile=新文件(URI);
newFile.createNewFile();
FileWriterwriter=新FileWriter(URI);
writer.write(data);
writer.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args)抛出InterruptedException{
GPIO_Pinledpin=newGPIO_Pin(1);
ledpin.setModeOUTPUT();
while(true){
ledpin.setHIGH();
线程.sleep(400);
ledpin.setLOW();
Thread.sleep(400);
}
}
}
测试类
包com.trc。gpio;
公共类测试{
/**
*@paramargs
*@throwsInterruptedException
*/
publicstaticvoidmain(String[]args)抛出InterruptedException{
//TODO自动生成的方法存根
GPIO_Pinbuttenpin=新的GPIO_Pin(9);
GPIO_Pinledpin=新的GPIO_Pin(8);
buttenpin.setModeINPUT();
ledpin.setModeOUTPUT();
while(true){
System.out.println();
//ledpin.setLOW();
System.out.println(buttenpin.getPinMode());
Thread.sleep(4);
}
}
}
步骤4:测试结果
有金属盖时,会显示不同的显示。
责任编辑:wv