目錄
gpio介面是做什麼的
首頁 常見問題 gpio接口是做什麼的

gpio接口是做什麼的

Aug 26, 2022 am 11:34 AM
gpio介面

gpio介面是用於和硬體進行資料互動;gpio是「General Purpose I/O Ports」的簡寫,是通用輸入輸出埠的意思,其接腳可以供使用者由程控自由使用,可以透過介面輸出高低電平或讀取引腳的狀態是高電平還是低電平。

gpio接口是做什麼的

本教學操作環境:windows10系統、DELL G3電腦。

gpio介面是做什麼的

GPIO,通用型之輸入輸出的簡稱,功能類似8051的P0-P3,其接腳可以供使用者由程控自由使用,PIN腳依現實考量可作為通用輸入(GPI)或通用輸出(GPO)或通用輸入與輸出(GPIO),如當clk generator, chip select等

GPIO(General Purpose I/O Ports)意思為通用輸入/輸出端口,通俗地說,就是一些引腳,可以通過它們輸出高低電平或通過它們讀入引腳的狀態-是高電平或是低電平。

GPIO口一是個比較重要的概念,使用者可以透過GPIO口和硬體進行資料互動(如UART),控制硬體工作(如LED、蜂鳴器等),讀取硬體的工作狀態訊號(如中斷訊號)等。 GPIO口的使用非常廣泛。

gpio介面怎麼用

要使用GPIO,系統首先要指派一個GPIO,使用gpio_request() 為系統指派一個GPIO。

接下來要做的一件事是標示GPIO的方向,通常在使用GPIO建立一個platform_device時(位於單板的setup程式碼中):

  /* set as input or output, returning 0 or negative errno */
  int gpio_direction_input(unsigned gpio);
  int gpio_direction_output(unsigned gpio, int value);
登入後複製

  傳回0標示成功,或者是一個負的errno錯誤碼。它應該被檢查,因為get/set呼叫沒有錯誤返回,並且可能會有錯誤配置。你通常應該在線程上下文中使用這些呼叫。雖然如此,對於spinlock-safe的GPIO,在tasking使能之前使用也是可以的,作為一個早期的單板建立。

  對於輸出GPIO,value參數提供了初始輸出值。這有助於避免系統啟動過程中的訊號幹擾。

  為了與GPIO早期的介面相容,設定一個GPIO的方向,隱性要求申請GPIO。這個相容性從可選的gpiolib架構中移除了。

  如果GPIO號碼無效或是指定的GPIO不能使用對應模式操作的話,設定方向會失敗。依賴boot韌體來設定好GPIO的方向通常不是個好主意,因為boot的功能可能沒有通過驗證(除了boot linux)。 (類似的,單板setup程式碼可能需要將腳位復用為一個GPIO,和配置為合適的上拉/下拉。)

  Spinlock-Safe GPIO存取

#  大多數GPIO控制器可以使用記憶體讀寫指令存取。它們不需要休眠,並且可以從內部硬體中斷處理(非執行緒)和類似的上下文環境安全完成。

  使用下列呼叫存取這些GPIO,此時gpio_cansleep將總是傳回錯誤

  /* GPIO INPUT: return zero or nonzero */
  int gpio_get_value(unsigned gpio);
  /* GPIO OUTPUT */
  void gpio_set_value(unsigned gpio, int value);
登入後複製

其中,value是一個布林型參數,零表示低,非零表示高。當讀取一個輸出管腳的值時,傳回的值應該是在腳位上看到的值。 。 。這並不總是與指定輸出值相符的,因為存在開漏訊號和輸出延遲問題。

get/set呼叫沒有錯誤傳回,因為「無效GPIO」應該已經由gpio_direction_*()提早報告了。雖然如此,並非所有的平台都可以讀取輸出腳的值,那些不能讀的應該總是回傳零。同時,對那些可能導致睡眠的GPIO使用這些介面是一個錯誤。

平台的特定實作被鼓勵優化這兩個呼叫以獲取GPIO值。在那些GPIO號碼是常數的情況下,它們通常只需一對指令(讀或寫一個硬體暫存器)來訪問,且不需要spinlock。這樣的最佳化可以使位元拆分應用更有效率(在時間和空間上)(相比較於花費一堆指令在子例程呼叫來說)。

gpio接口是做什麼的

gpio介面是做什麼的

#輸出值可寫(高=1,低=0 )。一些晶片也可以選擇驅動這些值的方式,以便支援“線-或”或類似方案(開漏訊號線)。

輸入值可讀(1,0)。一些晶片支援輸出管腳回讀,這在線上或的情況下非常有用(以支援雙向訊號線)。 GPIO控制器可能具有一個輸入防故障/防反跳邏輯,有時還會有軟體控制。

輸入經常被用作中斷訊號,通常是邊緣觸發,但也有可能是電平觸發。這些中斷可以配置為系統喚醒事件,從而將系統從低功耗模式喚醒。

一個GPIO經常被配置為輸入/輸出雙向,根據不同的產品單板需求,但也存在單向的情況。

大多是GPIO可以在獲取到spinlock自旋鎖時訪問,但那些透過串行匯流排訪問的通常不能如此操作(休眠的原因)。在某些系統中會同時存在這兩種形式的GPIO。

在一個給定單板上,每個GPIO用於一個特定的目的,如監控MMC/SD卡的插入/移除,檢查卡寫保護狀態,驅動LED,配置發送器,串行總線位拆,觸發一個硬體看門狗,觸發一個開關之類的。

更多相關知識,請造訪常見問題欄位!

以上是gpio接口是做什麼的的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1677
14
CakePHP 教程
1431
52
Laravel 教程
1334
25
PHP教程
1280
29
C# 教程
1257
24
ao3鏡像網址夸克 ao3鏡像地址夸克入口 ao3鏡像網址夸克 ao3鏡像地址夸克入口 May 15, 2025 pm 06:42 PM

1、ao3鏡像網址夸克☜☜☜☜☜點擊進入。 2、ao3鏡像地址夸克入口☜☜☜☜☜點擊進入。 3、AO3(檔案我們自己的)是一個非營利性的粉絲小說和同人小說存檔網站,於 2008 年 10 月 29 日啟動。 4、AO3 是一個由粉絲創辦、為粉絲運營的網站,致力於保護粉絲創造的作品,並為同人小說作家提供一個無審查的環境。

ao3夸克入口官網 ao3官方網站夸克入口 ao3夸克入口官網 ao3官方網站夸克入口 May 15, 2025 pm 06:45 PM

1、ao3官方網站夸克入口☜☜☜☜☜點擊保存。 2、ao3夸克入口官網☜☜☜☜☜點擊保存。 【ao3】1、AO3(Archive of Our Own)是一個龐大的、由粉絲創作的在線作品存檔網站。 2、它主要收錄同人作品,涵蓋各種各樣的媒體,從書籍和電影到電視劇和遊戲,幾乎無所不包。 3、AO3 的內容豐富,類型多樣,能夠滿足不同讀者的需求。