Categories: Beaglebone Black

Beaglebone Black – 開啟 GPIO 上的 UART 接腳

Beaglebone Black 有 4.5 個 UART 接腳可供使用,但預設的情況下為關閉的狀態。也就是說,你無法透過這些腳位來正常的接收資料,就算你透過一些軟體的方式來強制運行,他還是會自動關閉連線狀態,導致連接不穩。為什麼我知道這些呢? 因為我最近在測試的時候發現有這樣的狀況,拜讀過 Google 大神的幾篇資料後才得以解決。這搞了我好幾天啊啊啊!

綜合以上所知,我們知道如果要使用 Beaglebone Black 上的這幾個 UART 腳位的話,我們必須修改內核的設定來強制開啟這幾個 UART 腳位的通訊功能。

新增設定

透過 Cloud9 或者是終端機連上 Beaglebone Black 後,輸入

nano /boot/uboot/uEnv.txt

然後在 #cape= 的下方加入

optargs=capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART4, BB-UART5

這行的意思是開啟 Beaglebone Black 上所有的 UART 腳位,在這部分你可以參考上方的腳位圖來開啟所需的腳位即可,也就是刪去不需要 UART 標號。

按下 Ctrl+X 以及 Y 再按下 Enter 後存檔,這時設定尚未生效,你需要重新開機後才會令設定生效。

shutdown -r now

確認啟動

等待 Beaglebone Black 重新開機完成後,輸入這行指令

ls -l /dev/ttyO*

你應該會看到如下的訊息

root@beaglebone:/var/lib/cloud9# ls -l /dev/ttyO*
crw-rw---- 1 root tty     248, 0 Jul 13 18:34 /dev/ttyO0
crw-rw---T 1 root dialout 248, 1 Jul 13 18:34 /dev/ttyO1
crw-rw---T 1 root dialout 248, 2 Jul 13 18:34 /dev/ttyO2
crw-rw---T 1 root dialout 248, 4 Jul 13 18:34 /dev/ttyO4

如果只有出現

root@beaglebone:/var/lib/cloud9# ls -l /dev/ttyO*
crw-rw---- 1 root tty     248, 0 Jul 13 18:34 /dev/ttyO0

那有可能是你的設定出錯導致,請再回到第一步驟嘗試。

經過上述兩個步驟後,Beaglebone Black 的 UART 通訊功能才算是正式啟用!

附註

duye.chen

Share
Published by
duye.chen

Recent Posts

JavaScript – Singleton 設計模式

前言 在設計程式時,我們有時會...

5 個月 ago

PlaidML 讓你的 Mac 也能加速 Tensorflow 機器學習!

相信很多使用 Mac 或者手上...

9 個月 ago

RESTful API 測試很煩,只好動手寫屬於自己的測試了

寫在最前面 嗨,大家好久不見!...

10 個月 ago

Node.js 與 Socket.io – 即時聊天室實作:資料庫

經過前兩篇(一、二)文章,我們...

4 年 ago