Micro:Bit 和 Python 串行连接丢失字符

问题描述 投票:0回答:1

我正在 VSCode 窗口和 micro:bit 中运行 Python 程序,并运行 make code 程序。 micro:bit 通过串行连接以波特率 115200 向 python 窗口发送信息。问题是,每当 Python 程序打印来自串行监视器的内容时,它都会丢失某些字符。看看这个样本数据

1000 1000 1000 100 1000 100 000 1000

应该都是“1000”,但有些是扭曲的。

这是Python程序

import serial
import time


ser = serial.Serial()
counter = 0

# Set the serial port and baud rate
ser.port = '/dev/tty.usbmodem14102'
ser.baudrate = 115200

try:
    # Open the serial port
    print('Opening')
    ser.open()
    print(f'Serial port {ser.port} opened successfully')
except serial.SerialException as e:
    print(f'Error opening serial port {ser.port}: {e}')
    exit(1)


while True:
    if not paused:
        data = ser.readline().decode().strip()
        print(data)
    else:
        print('Nothing Coming this way....')
        time.sleep(0.5)

这是 micro:bit 代码,在 Microsoft Makcode 中运行:JavaScript

let p8 = 0
let p7 = 0
let p6 = 0
let p5 = 0
serial.redirect(SerialPin.USB_TX, SerialPin.USB_RX, BaudRate.BaudRate115200)
led.enable(false)
basic.forever(function on_forever() {
    
    p5 = pins.digitalReadPin(DigitalPin.P5)
    p6 = pins.digitalReadPin(DigitalPin.P6)
    p7 = pins.digitalReadPin(DigitalPin.P7)
    p8 = 0
    serial.writeLine("" + p5 + ("" + p6) + ("" + p7) + ("" + p8))
    basic.pause(1000)
    basic.pause(1000)
})

每当我尝试在 OS X 12.6.3 上运行此设置时,都会丢失一些字节。

谢谢你

serial-port pyserial bbc-microbit
1个回答
0
投票

您必须断开 Micro:Bit 与 MakeCode 的连接,因为 MakeCode 也在读取序列号: 断开连接按钮

© www.soinside.com 2019 - 2024. All rights reserved.