linux下控制gpio的輸出電

2021-09-10 07:49:03 字數 1675 閱讀 8423

在超級終端裡面的輸入方法:

# cd /sys/class/gpio

/sys/class/gpio# echo 117 >export                                       

/sys/class/gpio# echo out >gpio117/direction

/sys/class/gpio# echo 1 >gpio117/value 輸出高電平

這個固然可以實現引腳電平的輸出,在使用中,還可以用檔案操作方式使得電平公升高。如下:

#include stdlib.h  

#include stdio.h  

#include string.h

#include unistd.h

#include fcntl.h   

//晶元復位引腳:gpio3.21

#define sysfs_gpio_export           "/sys/class/gpio/export"  

#define sysfs_gpio_rst_pin_val      "117"   

#define sysfs_gpio_rst_dir          "/sys/class/gpio/gpio117/direction"

#define sysfs_gpio_rst_dir_val      "out"  

#define sysfs_gpio_rst_val          "/sys/class/gpio/gpio117/value"

#define sysfs_gpio_rst_val_h        "1"

#define sysfs_gpio_rst_val_l        "0"

int main() 

write(fd, sysfs_gpio_rst_pin_val ,sizeof(sysfs_gpio_rst_pin_val)); 

close(fd); 

//設定埠方向/sys/class/gpio/gpio117# echo out > direction

fd = open(sysfs_gpio_rst_dir, o_wronly);

if(fd == -1)

write(fd, sysfs_gpio_rst_dir_val, sizeof(sysfs_gpio_rst_dir_val)); 

close(fd); 

fd = open(sysfs_gpio_rst_val, o_rdwr);

if(fd == -1)

//輸出高電平

write(fd, sysfs_gpio_rst_val_h, sizeof(sysfs_gpio_rst_val_h));  

while(1)

close(fd);

printf("info: radio hard reset pin value open error.\n");

return 0;

}

在uboot裡設定gpio口的電平

gpio set gpioao_10  拉高gpioao_10 的電平

gpio clear gpioao_10  拉高gpioao_10 的電平

樹莓派核心驅動編寫 控制GPIO的輸出

匯流排位址,實體地址,虛擬位址 參考博文 位址概念 樹莓派 1.bcm2835 樹莓派3b cpu型號,是arm cotexa53架構 2440 2410 cpu型號 是arm9架構 2.樹莓派是32位系統,1g 記憶體,只能識別949m 3.匯流排位址4g,實體地址1g,虛擬位址4g 1.晶元目錄...

linux下控制台顏色輸出

每當我們開啟控制台執行自己的程式時,總是黑白介面是不是很不爽呢。那麼有沒有讓黑白多出一些顏色呢?不用擔心,那當然是有的 我們平時敲ls命令是不是看到過有顏色的字?有些控制台可能沒有 printf 033 47 31m hello 033 0m 就是這個我們用了幾萬遍的函式,47是背景顏色40 49 ...

Linux下的gpio除錯方法

最近在fsl平台上進行移植,需要將某些gpio配置成普通的gpio功能 fsl平台的gpio支援多個功能 便寫了簡單的雜項裝置,來除錯gpio口。使用時,只需安裝gpio驅動,可實現下列三項功能 設定拉高某gpio,echo io w 108 1 dev gpio debug 設定拉低某gpio,e...