android gpio口控制
GPIO口控制方式是在jni層控制的方式實現高低電平輸出,類似linux的控制句柄方式,在linux系統下將每個設備看作一個文件,android系統是基於linux內核的。
保證該文件有讀寫權限
用命令控制gpio輸出
輸出高電平
echo 1 > /system/class/gpio_sw/data
輸出低電平
echo 1 > /system/class/gpio_sw/data
代碼段
#include <unistd.h>
#include"Logger.h"
#include <stdio.h>
#include <linux/input.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define DEV_PATH "/sys/class/gpio_sw/PE12/data" //difference is possible
JNIEXPORT jint JNICALL Java_com_example_liang_gpio_1demo_Gpio_Set_1GPIO
(JNIEnv *env,jobject){
int fd;
fd = open(DEV_PATH, O_WRONLY);
if(fd < 0){
LOGE("fail in open file %s", DEV_PATH);
return -1;
}
write(fd, "1", strlen("1")); //輸出高電平
sleep(1); //延時
write(fd, "0", strlen("0")); //輸出低電平
close(fd);
return 0;
}
使用
點擊SetGpio按鈕輸出高低電平變化
自己編寫
DEMO