我正在 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 上运行此设置时,都会丢失一些字节。
谢谢你
您必须断开 Micro:Bit 与 MakeCode 的连接,因为 MakeCode 也在读取序列号: 断开连接按钮