樹莓派基礎實驗36:通用串口通信實驗

一脓杉、介紹

??對于樹莓派 3B+來說,他的UART功能有三種: 1简逮、內部藍牙使用球散; 2、控制終端使用散庶; 3蕉堰、與其他設備進行串口通信。

??在樹莓派基礎實驗35:USB TO TTL模塊實驗中學習了通過串口對樹莓派進行控制臺控制悲龟,讓串口作為控制終端調試口即 serial console屋讶,但是在項目中常常會使用串口同其他傳感器、單片機等設備進行通用串口通信躲舌。

??本實驗中設置樹莓派的串口為通用串口與PC電腦的串口調試工具進行通信丑婿。

二、組件

★Raspberry Pi 3 B+主板*1

★樹莓派電源*1

★USB TO TTL模塊*1

★面包板*1(可選)

★40P軟排線*1

★跳線若干

三没卸、實驗原理

(一)樹莓派的串口

樹莓派從大的方向來說一共出了3代羹奉,每一代的CPU外設基本相同,但內核不同约计,外設里面一共包含兩個串口诀拭,一個稱之為硬件串口(/dev/ttyAMA0),一個稱之為mini串口(/dev/ttyS0)煤蚌。

硬件串口由硬件實現(xiàn)耕挨,有單獨的波特率時鐘源细卧,性能高、可靠筒占,mini串口性能低贪庙,功能也簡單,并且沒有波特率專用的時鐘源而是由CPU內核時鐘提供翰苫,因此mini串口有個致命的弱點是:波特率受到內核時鐘的影響止邮。內核若在智能調整功耗降低主頻時,相應的這個mini串口的波特率便受到牽連了奏窑,雖然你可以固定內核的時鐘頻率导披,但這顯然不符合低碳、節(jié)能的口號埃唯。

在所有的樹莓派板卡中都通過排針將一個串口引出來了撩匕,目前除了樹莓派3代以外 ,引出的串口默認是CPU的那個硬件串口墨叛。而在樹莓派3代中止毕,由于板載藍牙模塊,因此這個硬件串口被默認分配給與藍牙模塊通信了巍实,而把那個mini串口默認分配給了排針引出的GPIO Tx Rx滓技。

樹莓派的串口默認為串口終端調試使用,如要正常使用串口則需要修改樹莓派設置棚潦。關閉串口終端調試功能后則不能再通過串口登陸訪問樹莓派,只能通過ssh或者遠程桌面連接樹莓派后進行控制膝昆。


樹莓派管腳圖

上圖紅框中就是引出的串口IO(GPIO 14/15)丸边,如果我們需要通過UART外接模塊,默認情況下必須得使用性能很低的mini串口了荚孵,而且隨著內核主頻的變化妹窖,還會造成波特率的變化導致通信的失敗,幾乎很難使用收叶。所以我們一般要恢復硬件串口(/dev/ttyAMA0)與GPIO 14/15的映射關系骄呼,使得我們能夠通過GPIO使用高性能的硬件串口來連接我們的串口設備。

恢復映射關系前先看下默認的映射關系:

serial0是GPIO引腳對應的串口判没,serial1是藍牙對應的串口蜓萄。如圖所示,serial0(GPIO串口)默認使用的是ttyS0(mini串口)澄峰,serial1(藍牙)使用的是ttyAMA0(硬件串口)嫉沽。

四、實驗步驟

??第1步: 連接電路俏竞。與樹莓派基礎實驗35:USB TO TTL模塊實驗一樣绸硕,使用USB TO TTL模塊連接好樹莓派的串口和PC電腦的USB接口堂竟。

樹莓派(name) T型轉接板(BCM) USB TO TTL模塊
TXD TXO RXD
RXD RXI TXD
GND GND GND

下圖中的USB要插到筆記本電腦上哈,為方便拍照就沒插上玻佩。連線很簡單出嘹,電路圖就沒畫了。


USB TO TTL模塊實物接線圖

??第2步: 首先我們先嘗試使用默認的ttyS0(mini串口)來進行通用串口通信咬崔。

(1)設置樹莓派税稼,在Raspberry Pi Configuration中將Serial Port設置為Enable,但是Serial Console都要Disable刁赦,即關閉串口控制臺功能娶聘,然后必須重啟樹莓派生效。


(2)PC電腦上運行串口調試工具甚脉,串口驅動的安裝請參考樹莓派基礎實驗35:USB TO TTL模塊實驗中的內容丸升。如下圖設置好參數(shù),點擊“打開串口”牺氨。

(3)樹莓派上安裝minicom狡耻,啟動時配置參數(shù)串口為/dev/ttyS0,波特率(9600)猴凹。在樹莓派上輸入信息夷狰,在PC上的串口調試工具就會收到該信息。

sudo apt-get install minicom      #安裝minicom
 sudo minicom -D /dev/ttyS0 -b9600   #啟動minicom

(4)PC上的串口調試工具發(fā)送字符信息郊霎,樹莓派上也會顯示該信息沼头,證明兩者的UART雙向通信成功。



(5)這里要注意的是:進入minicom工具书劝,按提示按CTAL -A进倍,然后按Z后會顯示幫助信息。若再按O可以進入Minicom配置界面购对。

進入Minicom配置界面猾昆,再選擇Serial port setup,可以對樹莓派的串口進行設置骡苞。

進入串口設置垂蜗,可以設置樹莓派串口的設備、波特率等:

??第3步: 為了在樹莓派3中通過GPIO使用高性能的硬件串口解幽,我們必須將分配給藍牙使用的硬件串口與分配給IO排針的mini串口進行對換贴见,這必然會使得藍牙模塊的功能受到影響,不過這里我們不使用藍牙亚铁。

(1)在/boot/overlays文件內有兩個文件蝇刀,README 和pi3-miniuart-bt.dtbo,首先查看有沒有相關文件徘溢。


(2)README文件中說明了此文件的功能吞琐,是將樹莓派3的藍牙切換到mini串口(ttyS0)捆探,并且恢復硬件串口(ttyAMA0)到GPIO14&15引腳中。


(3)修改配置文件

sudo vim /boot/config.txt

在該文件中加一行代碼

dtoverlay=pi3-miniuart-bt

保存后重啟樹莓派站粟,再查看映射關系已經(jīng)改變:


(4)進入minicom黍图,發(fā)送信息給PC串口調試工具。與第2步不同的是:啟動時配置參數(shù)串口必須為/dev/ttyAMA0奴烙,波特率可以更改為其它的助被,這里設置為115200。

pi@raspberrypi:~ $ sudo minicom -D /dev/ttyAMA0 -b115200

經(jīng)過測試切诀,雙向通信成功揩环!這里要注意,第2步里面關閉串口控制臺功能的設置不能變幅虑,即Serial Console要Disable丰滑。

??補充: 前面步驟當中的部分設置使用的是圖形界面配置,在不能使用圖形界面時倒庵,也可以直接修改配置文件褒墨。

(1)上面串口的開啟的步驟中,是在Raspberry Pi Configuration 界面中擎宝,將Serial Port選項ENable郁妈,也可以直接修改/boot/config.txt文件。

sudo vim /boot/config.txt

enable_uart=1即為Serial Port Enable串口開啟绍申,enable_uart=0即為Serial Port Disable串口關閉噩咪。

(2)上面關閉串口控制臺功能,是在Raspberry Pi Configuration 界面中极阅,將Serial Console選項Disable剧腻,可以直接修改/boot/cmdline.txt文件。

sudo vim /boot/cmdline.txt
cmdline.txt修改前

cmdline.txt修改后

去掉了“console=serial0,115200”涂屁,即Disable了串口控制臺功能。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末灰伟,一起剝皮案震驚了整個濱河市拆又,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌栏账,老刑警劉巖帖族,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異挡爵,居然都是意外死亡竖般,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門茶鹃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涣雕,“玉大人艰亮,你說我怎么就攤上這事≌豕” “怎么了迄埃?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長兑障。 經(jīng)常有香客問我侄非,道長,這世上最難降的妖魔是什么流译? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任逞怨,我火速辦了婚禮,結果婚禮上福澡,老公的妹妹穿的比我還像新娘叠赦。我一直安慰自己,他們只是感情好竞漾,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布眯搭。 她就那樣靜靜地躺著,像睡著了一般业岁。 火紅的嫁衣襯著肌膚如雪鳞仙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天笔时,我揣著相機與錄音棍好,去河邊找鬼。 笑死允耿,一個胖子當著我的面吹牛借笙,可吹牛的內容都是我干的。 我是一名探鬼主播较锡,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼业稼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蚂蕴?” 一聲冷哼從身側響起低散,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎骡楼,沒想到半個月后熔号,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡鸟整,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年引镊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡弟头,死狀恐怖吩抓,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情亮瓷,我是刑警寧澤琴拧,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站嘱支,受9級特大地震影響蚓胸,放射性物質發(fā)生泄漏。R本人自食惡果不足惜除师,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一沛膳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧汛聚,春花似錦锹安、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至痕貌,卻和暖如春风罩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背舵稠。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工超升, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人哺徊。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓室琢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親落追。 傳聞我的和親對象是個殘疾皇子盈滴,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348