前言
原來學微控制器的時候,就是通過一系列的引腳來控制微控制器。終於學到了通過引腳來控制樹莓派了。話不多說咱們先來了解基礎。
gpio簡介
a.全稱
general purpose input output (通用輸入/輸出)簡稱為gpio,或匯流排擴充套件器. b.
特性gpio具有更低的功率損耗(大約1μa,μc的工作電流則為100μa)
c.功能
與電腦內部進行資料互動(感測器的資料處理;步進電機等)
d.硬體
gpxcon 控制引腳功能;gpxdat用於讀寫引腳資料。另外,gpxup用於確定是否使用上拉電阻。 x為a,b,,h/j。
1. gpxcon 暫存器
用於配置引腳功能。
port a 與 port b~port h/j 在功能選擇上有所不同,gpacon 中每一位對應一根引腳,共 23 個引腳。當某位被設為 0 時候,相應引腳為 輸出引腳。此時我們可以在gpadat 中相應的寫入 1或者 0 來讓此引腳輸出高電平或者低電平;當某位被設為1時,相應引腳為位址線或用於位址控制,此時gpadata無用。
一般而言 gpacon 通常被設為 1 ,以便訪問外部器件。
port b~port h/j
在暫存器操作方面完全相同,gpxcon 中每兩位控制一根引腳,
00 輸入 01 輸出
10 特殊功能 11 保留不用
2. gpxdat 暫存器
gpxdat用於讀寫引腳,當引腳被設為輸入時候,讀此暫存器可知道相應引腳的電平狀態高還是低,當引腳被設為輸出時候,寫此暫存器的位,可令引腳輸出高電平還是低電平。
3. gpxup暫存器
gpxup暫存器某位為1時,相應管腳沒有內部上拉電阻;為 0 時候 相應管腳有內部上拉電阻。
上拉電阻作用在於,當gpio 引腳處於第三種狀態時候,既不是輸出高電平,也不是輸出低電平。而是呈現高阻態,相當於沒有接晶元。它的電平狀態由上下拉電阻決定。
gpio程式設計
1.gpio庫及語言
a.rpi.gpio------python庫
支援board pin和bcm gpio兩種編號
b.wiringpi-------c庫
支援wiringpi pin和bcm gpio兩種編號
2.編號規範
a.樹莓派主晶元提供商broadcom的編號方法
gpio12對應的序號就是12,即gpiox對應序號x。
b.樹莓派板子上的自然編號(board)
圖上灰色 對應的編號,比如gpio12對應的編號是32。
c.wiringpi編號方式
這個圖一沒有這一列,圖二網上隨便乙個圖。有一列專門對應該編號方式的編號,找到板子上想要控制的gpio再對應該編號方式的編號即可。如:gpio25對應編號就是25。
程式設計步驟
1.python
安裝:sudo apt-get install python-rpi.gpio
檢測:sudo python
import rpi.gpio as gpio //導入庫
/*設定gpio的編號方式*/
gpio.setmode(gpio.bcm) //設定gpio的編號方式為bcm
/*設定gpio引腳號及對應的工作方式*/
gpio.setup(24,gpio.out) //設定gpio24為輸出模式
/*接下來編寫你想要進行的操作*/
2.c語言wiringpi安裝:通過git獲得wiringpi的源**git clone git:
cd wiringpi
./build
build指令碼會幫助你編譯和安裝wiringpi
檢測:
簡單燈閃爍程式:
#include //新增gpio庫
int main()
return 0;
}
硬體準備
1.杜邦線
2.麵包板
麵包板的特點:+號和-號是一豎條都是接通的
中間的都是一排是接通的。中間的分隔也是分隔的
(可以自己實踐一下確認)
樹莓派學習 一 啟動樹莓派
格式化選擇碟符時務必謹慎,千萬不要選錯!在sd卡的boot根目錄下新建乙個txt檔案,修改名稱為ssh 沒有字尾 插入網線 插入sd卡 給樹莓派供電。共享網際網路。開啟網路和internet共享設定 更改介面卡選項 右鍵wlan屬性 共享 允許其他網路使用者通過此計算機的internet連線 家庭網...
樹莓派搭建web系列
用途 路由器 小型伺服器 搭載在四軸飛行器 小車 智慧型家居作為控制單元 遊戲機 鑑於周圍許多對 派 感興趣的同學都是非自動化專業,因此在自己選購樹莓派的基礎上總結出一些需要注意的問題。基本組成 樹莓派 和電腦主機板一樣的銀行卡大小主機板 記憶體卡 tf卡 電源線 接220v的輸出電流2.5a的電源...
樹莓派掛載U盤 樹莓派小無相系列
將樹莓派連線u盤後,檢視是否被樹莓派識別,命令列執行 sudo fdisk l這裡可以看到我的u盤已經被識別,在 dev sda,其 device 中 dev sda1 便是u盤分割槽。u盤正確識別後,便建立目錄來掛載u盤,命令列執行 sudo mkdir mnt udisk sudo mount ...