日前需要使用樹莓派多個串口,在網上查詢資料得知,樹莓派4b除了UART0(PL011)和UART1(mini UART)還新增了四個PL011串口,為預防忘記相關知識和易於尋找,特此去整理一下樹莓派4b的串口配置筆記。
串口查看命令:
展示所有串口 --> dtoverlay -a | grep uart
查看特定串口信息 --> dtoverlay -h uart0
串口開啟步驟:
編輯config.txt:--> sudo vim /boot/config.txt
文件末尾添加:--> dtoverlay=uartX(X表示串口號,比如uart2)
重啟樹莓派:--> sudo reboot
查看是否生效:--> ls /dev/ttyAMA*(樹莓派系統原先便開啟了UART0和UART1,故ttyAMA0早已存在,新增串口后應該會顯示ttyAMA1,這個數字編號和config文件中串口開啟順序有關)
樹莓派4b各UART引腳如下:
UART0:
TXD0-->GPIO14
RXD0-->GPIO15
UART2:
TXD2-->GPIO0
RXD2-->GPIO1
UART3:
TXD3-->GPIO4
RXD3-->GPIO5
UART4:
TXD4-->GPIO8
RXD4-->GPIO9
UART5:
TXD5-->GPIO12
RXD5-->GPIO13
串口的使用(python3 UART的TX接RX):
導入serial模塊:--> import serial
串口配置:--> ser = serial.Serial(port="/dev/ttyAMA1", baudrate=9600)
清空串口接收緩沖區:--> ser.flushInput()
獲取字符串的UTF-8編碼格式並從串口以bytes形式發送:--> ser.write("hello world".encode("UTF-8"))
獲取接收緩沖區字符:--> recv = ser.inWaiting()
顯示接收緩沖區字符數量:--> print(recv)
讀取接收緩沖區全部數據:--> ser.read(recv)
讀取接收緩沖區數據,以\n結束:--> ser.readline(recv)
參考:
https://blog.csdn.net/weixin_40796925/article/details/107907991