㈠ 樹莓派怎麼樣用 python 控制 GPIO 來發送串口指令
python GPIO
1、先安裝python-dev,輸入以下指令。
sudo
apt-get install python-dev
2、安裝RPi.GPIO,依次輸入以下指令。
1)下載:$ wget http://raspberry-gpio-python.googlecode.com/files/RPi.GPIO-0.5.3a.tar.gz
2)解壓縮:$ tar xvzf RPi.GPIO-0.5.3a.tar.gz
3)進入解壓之後的目錄 :$ cd RPi.GPIO-0.5.3a
4)啟動安裝 :$ sudo python setup.py install
3、例子:
[python] view plain
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
# BOARD編號方式,基於插座引腳編號
GPIO.setmode(GPIO.BOARD)
# 輸出模式
GPIO.setup(11, GPIO.OUT)
while True:
GPIO.output(11, GPIO.HIGH)
time.sleep(1)
GPIO.output(11, GPIO.LOW)
time.sleep(1)
4、執行:
sudo python led.py
5、說明:
1)GPIO.setmode(GPIO.BOARD),採用插座引腳編號方式。
2)由於採用插座引腳編號方式,此處的11腳相當於BCM2835寄存器編號方式的引腳11。
python GPIO
1、說明:
WiringPi是應用於樹莓派平台的GPIO控制庫函數,WiringPi遵守GUN Lv3。wiringPi使用C或者C++開發並且可以被其他語言包轉,例如python、ruby或者PHP等。
wiringPi包括一套gpio控制命令,使用gpio命令可以控制樹莓派GPIO管腳。用戶可以利用gpio命令通過shell腳本控制或查詢
GPIO管腳。wiringPi是可以擴展的,可以利用wiringPi的內部模塊擴展模擬量輸入晶元,可以使用
MCP23x17/MCP23x08(I2C
或者SPI)擴展GPIO介面。另外可通過樹莓派上的串口和Atmega(例如arino等)擴展更多的GPIO功能。另外,用戶可以自己編寫擴展模
塊並把自定義的擴展模塊集成到wiringPi中。WiringPi支持模擬量的讀取和設置功能,不過在樹莓派上並沒有模擬量設備。但是使用
WiringPi中的軟體模塊卻可以輕松地應用AD或DA晶元。
㈡ 引腳,GPIO,寄存器,位的區別以及聯系
已lcp21xx為例:
pinsel0=0x00000000;
//把p0口作為gpio口
io0dir=0x000000ff;
//把p0.0-7設為輸出(其它的為輸入)
io0set=0x000000ff;
//使p0.0-7輸出高電平(本寄存器對應位置1即可)
io0clr=0x000000ff;
//使p0.0-7輸出低電平(本寄存器對應位置1即可)
㈢ stm32怎樣直接操作gpio寄存器
看手冊,學習stm32一定要養成看手冊的習慣,最好看英文版的,因為翻譯過來的畢竟有一些不符合原作者的意圖,要靠自己。想查詢這么基礎的設置問題,直接ctrl+F查找關鍵字就能找到你想要答案,其實很簡單,不用給分了。
首先,兩個都是C語言。 從51過渡過來的話,就先說寄存器操作。每個MCU都有自己的寄存器,51是功能比較簡單的一種,相應的寄存器也比較少,我們常用的就那麼幾個,像P0 P1 SMOD TMOD之類的,這些存在於標准頭文件reg.h裡面,因為少,所以大家就直...
㈣ gpio是什麼意思
gpio是通用型之輸入輸出的意思,是General-purpose input/output的縮寫。
GPIO功能類似8051的P0—P3,其接腳可以供使用者由程式控制自由使用,PIN腳依現實考量可作為通用輸入(GPI)或通用輸出(GPO)或通用輸入與輸出(GPIO),如當clk generator, chip select等。
對於輸入,可以通過讀取某個寄存器來確定引腳電位的高低;對於輸出,可以通過寫入某個寄存器來讓這個引腳輸出高電位或者低電位;對於其他特殊功能,則有另外的寄存器來控制它們。
(4)寄存器GPIO命令擴展閱讀
GPIO的優點:
快速上市:不需要編寫額外的代碼、文檔,不需要任何維護工作。
靈活的燈光控制:內置多路高解析度的PWM輸出。
可預先確定響應時間:縮短或確定外部事件與中斷之間的響應時間。
更好的燈光效果:匹配的電流輸出確保均勻的顯示亮度。
布線簡單:僅需使用2條就可以組成IIC匯流排或3條組成SPI匯流排。
㈤ 寄存器控制了gpio埠引腳是輸入還是輸出,若為0,則引腳為 若為1,則引腳為
通過sysfs方式控制GPIO,先訪問/sys/class/gpio目錄,向export文件寫入GPIO編號,使得該GPIO的操作介面從內核空間暴露到用戶空間,GPIO的操作介麵包括direction和value等,direction控制GPIO方向,而value可控制GPIO輸出或獲得GPIO輸入。文件IO方式操作GPIO,使用到了4個函數open、close、read、write。
首先,看看系統中有沒有逗/sys/class/gpio地這個文件夾。如果沒有請在編譯內核的時候加入 Device Drivers-> GPIO Support ->/sys/class/gpio/… (sysfs interface)。
/sys/class/gpio 的使用說明:
gpio_operation 通過/sys/文件介面操作IO埠 GPIO到文件系統的映射
◇ 控制GPIO的目錄位於/sys/class/gpio
◇ /sys/class/gpio/export文件用於通知系統需要導出控制的GPIO引腳編號
◇ /sys/class/gpio/unexport 用於通知系統取消導出
◇ /sys/class/gpio/gpiochipX目錄保存系統中GPIO寄存器的信息,包括每個寄存器控制引腳的起始編號base,寄存器名稱,引腳總數 導出一個引腳的操作步驟
◇ 首先計算此引腳編號,引腳編號 = 控制引腳的寄存器基數 + 控制引腳寄存器位數
◇ 向/sys/class/gpio/export寫入此編號,比如12號引腳,在shell中可以通過以下命令實現,命令成功後生成/sys/class/gpio/gpio12目錄,如果沒有出現相應的目錄,說明此引腳不可導出
◇ direction文件,定義輸入輸入方向,可以通過下面命令定義為輸出。direction接受的參數:in, out, high, low。high/low同時設置方向為輸出,並將value設置為相應的1/0
◇ value文件是埠的數值,為1或0
㈥ gpio模塊中的寄存器可以採用 哪些定址方式來訪問
有立即定址方式,寄存器定址方式,直接定址方式,寄存器間接定址方式,寄存器相對定址方式,基址加變址定址方式,相對基址加變址定址方式。
立即定址方式,操作數作為指令的一部分而直接寫在指令中,這種操作數稱為立即數,這種定址方式也就稱為立即數定址方式。立即數可以是8位、16位或32位,該數值緊跟在操作碼之後。
寄存器定址方式,指令所要的操作數已存儲在某寄存器中,或把目標操作數存入寄存器。把在指令中指出所使用寄存器(即:寄存器的助憶符)的定址方式稱為寄存器定址方式。由於指令所需的操作數已存儲在寄存器中,或操作的結果存入寄存器,這樣,在指令執行過程中,會減少讀/寫存儲器單元的次數,所以,使用寄存器定址方式的指令具有較快的執行速度。
直接定址方式,指令所要的操作數存放在內存中,在指令中直接給出該操作數的有效地址,這種定址方式為直接定址方式。
寄存器間接定址方式,操作數在存儲器中,操作數的有效地址用SI、DI、BX和BP等四個寄存器之一來指定,稱這種定址方式為寄存器間接定址方式。
寄存器相對定址方式,操作數在存儲器中,其有效地址是一個基址寄存器(BX、BP)或變址寄存器(SI、DI)的內容和指令中的8位/16位偏移量之和。若有效地址用SI、DI和BX等之一來指定,則其預設的段寄存器為DS,若有效地址用BP來指定,則其預設的段寄存器為SS。
基址加變址定址方式,操作數在存儲器中,其有效地址是一個基址寄存器(BX、BP)和一個變址寄存器(SI、DI)的內容之和。
相對基址加變址定址方式,操作數在存儲器中,其有效地址是一個基址寄存器(BX、BP)的值、一個變址寄存器(SI、DI)的值和指令中的8位/16位偏移量之和。