machine.UART

    The uart module is mainly used to drive the asynchronous serial port on the development board, and uart can be configured freely. There are 3 uarts in k210, and each uart can be freely mapped.

    Construction

    Pin mapping

    Before using uart, we need to use fm to map and manage the chip pins. As shown below, set PIN10 as the sending pin of uart2 and PIN11 as the receiving pin of uart2

    fm.register(board_info.PIN10,fm.fpioa.UART2_TX)
    fm.register(board_info.PIN11,fm.fpioa.UART2_RX)
    

    Constructor

    uart = machine.UART(uart,baudrate,bits,parity,stop,timeout, read_buf_len)
    

    Create a new UART object with the specified parameters

    Parameters

    • uart UART number, use the specified UART, which can be completed by pressing the tab key in machine.UART.
    • baudrate: UART baud rate
    • bits: UART data width, support 5/6/7/8 (the default serial port used by REPL (UARTHS) only supports 8-bit mode), default 8
    • parity: Parity bit, support None, machine.UART.PARITY_ODD, machine.UART.PARITY_EVEN (the default serial port (UARTHS) used by REPL only supports None), the default is None
    • stop: stop bit, support 1, 1.5, 2, default 1
    • timeout: Serial port receiving timeout time
    • read_buf_len: serial port receive buffer, serial port receives data through interrupt, if the buffer is full, it will automatically stop data receiving

    return value

    • UART object

    Method

    init

    It is used to initialize uart, which is generally initialized when constructing the object, here is used to reinitialize uart

    uart.init(baudrate,bits,parity,stop,timeout, read_buf_len)
    

    Parameters

    Same as constructor, but does not require the first UART number

    return value

    no

    read

    Used to read the data in the serial buffer

    uart.read(num)
    

    Parameters

    • num: The number of bytes read, generally fill in the buffer size, if the number of data in the buffer is not as large as num, then only the remaining data in the buffer will be returned

    return value

    • bytes type of data

    readline

    Used to read one line of serial buffer data

    uart.readline(num)
    
    • num: the number of rows read

    return value

    *bytes type of data

    write

    Used to send data using serial port

    uart.write(buf)
    

    Parameters

    • buf: Need to send to data

    return value

    • The amount of data written

    deinit

    Log off the UART hardware and release the occupied resources

    uart.deinit()
    

    Parameters

    no

    return value

    no

    repl_uart()

    Get the serial port object used for REPL

    return value

    The serial port object used for REPL, the default initialization bit is 115200 8 N 1

    Routine

    Routine 1

    Before running mileage, please make sure that PIN15 has been connected to PIN10, and PIN17 has been connected to PIN9

    After running the program, you can see the printed information of baudrate:115200 bits:8 parity:0 stop:0 ---check Successfully in the terminal

    from fpioa_manager import fm
    from machine import UART
    fm.register(board_info.PIN15,fm.fpioa.UART1_TX)
    fm.register(board_info.PIN17,fm.fpioa.UART1_RX)
    fm.register(board_info.PIN9,fm.fpioa.UART2_TX)
    fm.register(board_info.PIN10,fm.fpioa.UART2_RX)
    uart_A = UART(UART.UART1, 115200, 8, None, 1, timeout=1000, read_buf_len=4096)
    uart_B = UART(UART.UART2, 115200, 8, None, 1, timeout=1000, read_buf_len=4096)
    write_str ='hello world'
    for i in range(20):
        uart_A.write(write_str)
        read_data = uart_B.read()
        read_str = read_data.decode('utf-8')
        print("string = ",read_str)
        if read_str == write_str:
            print("baudrate:115200 bits:8 parity:None stop:1 ---check Successfully")
    uart_A.deinit()
    uart_B.deinit()
    del uart_A
    del uart_B
    

    Routine 2

    AT module serial port

    fm.register(board_info.WIFI_RX,fm.fpioa.UART2_TX)
    fm.register(board_info.WIFI_TX,fm.fpioa.UART2_RX)
    uart = machine.UART(machine.UART.UART2,115200,timeout=1000, read_buf_len=4096)
    

    Routine 3

    Modify the baud rate of the REPL serial port

    from machine import UART
    repl = UART.repl_uart()
    repl.init(1500000, 8, None, 1, read_buf_len=2048)
    

    Routine 3

    Modify the REPL serial port

    from machine import UART
    
    fm.register(board_info.PIN15,fm.fpioa.UART1_TX)
    fm.register(board_info.PIN17,fm.fpioa.UART1_RX)
    uart = machine.UART(UART.UART1, 115200)
    UART.set_repl_uart(uart)