UART 的使用

    关于 UART 详细介绍请参考UART-API 文档.

    使用方法

    • 从 machine 导入 UART 模块
    from machine import UART
    
    • 配置使用到的 pin 脚为 UART 功能
    fm.register(10, fm.fpioa.UART1_TX, force=True)
    fm.register(11, fm.fpioa.UART1_RX, force=True)
    
    • 创建 UART 对象
    uart = UART(UART.UART1, 115200, 8, 1, 0, timeout=1000, read_buf_len=4096)
    
    • 读写数据
    uart.write(b'hello world')
    read_data = uart.read()
    

    示例

    将串口接收到的数据发送回去

    from machine import UART
    from board import board_info
    from fpioa_manager import fm
    
    # maixduino board_info PIN10/PIN11/PIN12/PIN13 or other hardware IO 12/11/10/3
    fm.register(board_info.PIN10, fm.fpioa.UART1_TX, force=True)
    fm.register(board_info.PIN11, fm.fpioa.UART1_RX, force=True)
    fm.register(board_info.PIN12, fm.fpioa.UART2_TX, force=True)
    fm.register(board_info.PIN13, fm.fpioa.UART2_RX, force=True)
    
    uart_A = UART(UART.UART1, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096)
    uart_B = UART(UART.UART2, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096)
    
    write_str = 'hello world'
    for i in range(20):
        uart_A.write(write_str)
        if uart_A.any():
            read_data = uart_B.read()
            if read_data:
                read_str = read_data.decode('utf-8')
                print("string = ", read_str)
                if read_str == write_str:
                    print("baudrate:115200 bits:8 parity:0 stop:0 ---check Successfully")
    
    uart_A.deinit()
    uart_B.deinit()
    del uart_A
    del uart_B