RAW repl 功能录入

from machine import UART
import time
import ubinascii

# ==================== 配置区 ====================
UART_ID = 1
BAUDRATE = 115200
TX_PIN = 5
RX_PIN = 4
RAW_REPL_TIMEOUT_MS = 3000  # Raw REPL 握手与执行超时(ms)
# ================================================

uart = UART(UART_ID, baudrate=BAUDRATE, tx=TX_PIN, rx=RX_PIN)

def raw_read():
    time.sleep(0.1)
    bs=uart.read()
    if bs is not None:
        bsd=bs.decode()
        if bsd[2:-3]:
            return bsd[2:-3]
    return False
    
def raw_start():
    uart.write(b'\x03')
    time.sleep(0.1)
    uart.write(b'\x01')
    time.sleep(0.1)

def raw_command(data):
    uart.write(data)
    uart.write(b'\x04')
    return raw_read()
    
    
raw_start()
print(uart.read())

print(raw_command("import time"))
print(raw_command("m=time.time()"))
print(raw_command("print(m)"))
# 调用print 会有\r\n 且只有print才会返回信息 否则 b'OK\x04\x04>'
#所有 结尾\x04\x04 b'OK798\r\n\x04\x04>'

多行功能 【\n 只需要该符号实现换行】

code = b"""
import time
for i in range(3):
    print(i)
time.sleep(0.5)
print('done')
""" + b'\x04'


uart.write(code)
此条目发表在None分类目录。将固定链接加入收藏夹。

发表回复