diff --git a/tests/extmod/machine_uart_tx.py b/tests/extmod/machine_uart_tx.py new file mode 100644 index 0000000000..54c0af2b23 --- /dev/null +++ b/tests/extmod/machine_uart_tx.py @@ -0,0 +1,34 @@ +# Test machine.UART transmission. +# Does not require any external connections. + +try: + from machine import UART +except ImportError: + print("SKIP") + raise SystemExit + +import time, sys + +# Configure pins based on the target. +if "rp2" in sys.platform: + uart_id = 0 + tx_pin = "GPIO0" + rx_pin = "GPIO1" +else: + print("SKIP") + raise SystemExit + +# Test that write+flush takes the expected amount of time to execute. +for bits_per_s in (2400, 9600, 115200): + text = "Hello World" + uart = UART(uart_id, bits_per_s, bits=8, parity=None, stop=1, tx=tx_pin, rx=rx_pin) + + start_us = time.ticks_us() + uart.write(text) + uart.flush() + duration_us = time.ticks_diff(time.ticks_us(), start_us) + + # 1(startbit) + 8(bits) + 1(stopbit) + 0(parity) + bits_per_char = 10 + expect_us = (len(text)) * bits_per_char * 1_000_000 // bits_per_s + print(bits_per_s, duration_us <= expect_us) diff --git a/tests/extmod/machine_uart_tx.py.exp b/tests/extmod/machine_uart_tx.py.exp new file mode 100644 index 0000000000..0432ab94ae --- /dev/null +++ b/tests/extmod/machine_uart_tx.py.exp @@ -0,0 +1,3 @@ +2400 True +9600 True +115200 True