天天看點

Micropython——基于USB-TTL子產品實作和樹莓派的上下位機序列槽通信

文章目錄

    • 使用USB轉TTL連接配接PYB和樹莓派
    • 樹莓派端
        • 安裝serial庫
        • 查找usb口号找到USB轉TTL子產品的序列槽号
        • 上位機收發代碼
        • 實作效果
    • PYB端
        • 下位機收發代碼

使用USB轉TTL連接配接PYB和樹莓派

USB轉TTL子產品 PYB
VCC VCC
GND GND
RX X1(UART4,TX)
TX X2(UART4,RX)
  • 将PYB的USB資料線和電腦相連,友善調試。
  • 将USB轉TTL的USB端與樹莓派相連,進行上下位機通信。
Micropython——基于USB-TTL子產品實作和樹莓派的上下位機序列槽通信

樹莓派端

安裝serial庫

pip install serial
           

查找usb口号找到USB轉TTL子產品的序列槽号

插拔usb檢視序列槽是多少,如果沒有其它的USB裝置,一般的USB号為

ls /dev/tty*
           
Micropython——基于USB-TTL子產品實作和樹莓派的上下位機序列槽通信

上位機收發代碼

  • 需要注意的是,上位機在發送字元串之前,需要将字元串(str)轉換為位元組(byte)格式,是以需要使用

    [發送資料].encode("utf-8")

    實作對發送字元串的轉換。同時,在接收到下位機傳來的資訊時也需要使用

    [接收資料].decode("utf-8")

    實作接收的位元組資料轉換為字元串資料。
import serial
#coding=utf-8
ser = serial.Serial('/dev/ttyUSB0', 9600,timeout=1);   

while 1:
    h = 'h'
    h = h.encode("utf-8")
    ser.write(h)
    text = ser.read(1)
    print(text)
    text = text.decode("utf-8")
    print("decode_text:" + text)
    if text == 's':
        print("serial open!!!")
           

實作效果

Micropython——基于USB-TTL子產品實作和樹莓派的上下位機序列槽通信

PYB端

下位機收發代碼

from pyb import Timer, Pin, UART
import time 

uart = UART(4, 9600)

while 1:
    uart.write("s")
    print("send!")
    if uart.any():
	    print(uart.read(1))
	    if uart.read(1) == 'h':
	        print("read!")
    time.sleep(0.5)
           
Micropython——基于USB-TTL子產品實作和樹莓派的上下位機序列槽通信