AM335x GPIO的三種呼叫方式

2021-08-01 20:36:58 字數 3023 閱讀 5491

參考:

1.核心空間中呼叫gpio

請求gpio

err = gpio_request(30,"sample_name");

設定gpio方向

gpio_direction_input(30);

gpio30為輸出並且置高

gpio_direction_output(30, 1);

匯出gpio30到sysfs使用者空間

gpio_export(30,true);

讀gpio30

gpio_get_value(30);

使用者空間中shell方式

呼叫gpio

(1)、gpio目錄

在arm linux中,gpio驅動的目錄是:/sys/class/gpio/,所以,要首先進入這個目錄,命令:

1

$cd/sys/class/gpio/

(2)、目錄解析

使用ls命令檢視目錄詳情:

1

2

3

$ls-l

exportgpiochip128  gpiochip64   unexport

gpiochip0    gpiochip32   gpiochip96

如上列出了5個gpio目錄、export、unexport檔案。gpio目錄對應基位址,比如晶元的io定義為pa0~pa31、pb0~pb31等等,那麼pa對應的base就是gpiochip0,pb對應的base就是gpiochip32,以此類推。例如 pb12對應的就是 gpio43。

(3)、控制例項

比如要實現控制 pb12 口,先生成乙個gpio43 目錄:

1

2

3

4

$echo43 >export

$cdgpio43

$ls

active_low  direction   edge        power       subsystem   uevent

(4)、控制

1

2

3

4

5

6

$catdirection#檢視方向

in

$echoout > direction#設定為輸出

$catvalue#獲取值

0

$echo1 > value#設定為1

使用者空間中c**方式

呼叫gpio

01

02

03

04

05

06

07

08

09

10

11

12

// echo "out" > /sys/class/gpio/gpio30/direction

pfile =fopen(「/sys/class/gpio/gpio30/direction」, 「w」);

fwrite(「out」, 1,sizeof(「out」), pfile);

fclose(pfile);

// echo 1 > /sys/class/gpio/gpio30/value

pfile =fopen(「/sys/class/gpio/gpio30/value」, 「w」);

fwrite(「1」, 1,sizeof(「1」)-1, pfile);

// cat /sys/class/gpio/gpio30/value

fread(myarray, 1, 1, pfile);

fclose(pfile);

Am335x GPio 按鍵函式 管腳配置

gpio 引腳號轉換為中斷號 irq num gpio to irq gpio pin 設定中斷出發方式為下降沿觸發 irq set irq type irq num,irqf trigger falling 申請中斷 request irq irq num,irq proc,irqf disabl...

呼叫CALL TRANSACTION的三種方法

2006年08月14日 12 38 00 1.使用螢幕傳入 refresh bdcdata.clear bdcdata.bdcdata program saplcsdi programm st 點kliste bdcdata dynpro 0100 dynpro bdcdata dynbegin x...

系統呼叫的三種方式

系統呼叫 system call 是作業系統為在使用者態執行的程序與硬體裝置 如cpu 磁碟 印表機等 進行互動提供的一組介面。當使用者程序需要發生系統呼叫時,cpu 通過軟中斷切換到核心態開始執行核心系統呼叫函式。下面介紹linux 下三種發生系統呼叫的方法 一 通過 glibc 提供的庫函式 舉...