UART Words¶
There are a number of words for controlling UART’s available on each of the supported microcontrollers on top of the console emit, key, emit?, and key? words. These are as follows:
Note that uart values as mentioned below vary between the different supported platforms. The following applies:
On the RP2040 and RP2350 the available uart values are 0 and 1, with 0 corresponding to the default serial console.
On the STM32F411 the available uart values are 1, 2, and 6, with 2 corresponding to the default serial console.
On the STM32F407 the available uart values are 1 through 6, with 2 corresponding to the default serial console.
On the STM32L476 the available uart values are 1 through 5, with 2 corresponding to the default serial console. Note that LPUART1 is not currently supported.
On the STM32F746 the available uart values are 1 through 8, with 1 corresponding to the default serial console.
Note that the RP2350 supports optional CTS and RTS flow control.
uart¶
These words are in the uart module:
uart-enabled?¶
( uart – flag )
Get whether a UART is enabled.
enable-uart¶
( uart – )
Enable a UART.
disable-uart¶
( uart – )
Disable a UART.
with-uart-disabled¶
( xt uart – )
Execute xt with a UART disabled, re-enabling it afterwards if it was previously enabled.
uart-baud!¶
( baud uart – )
Set the baud of a UART.
uart-console¶
( uart – )
Set the current task’s console to a be a UART. Child tasks will inherit this console.
uart-special-enabled!¶
( enabled uart – )
Set whether special character handling is enabled for a UART. This is disabled by default for UART’s other than the default serial console.
uart-special-enabled@¶
( uart – enabled )
Get whether special character handling is enabled for a UART.
>uart¶
( c uart – )
Emit a byte to a UART.
uart>¶
( uart – c )
Read a byte from a UART.
>uart?¶
( uart – flag )
Get whether a UART is ready to emit a byte.
uart>?¶
( uart – flag )
Get whether a byte is ready to be read from a UART.
flush-uart¶
( uart – )
Flush a UART’s transmit buffer. This flushes both the in-RAM transmit buffer and the UART’s transmit FIFO. Note that this does not flush data in any bitwise shift register, so to truly guarantee every bit has been transmitted a delay of (1 / baud rate) * 10 (for 8 data bits, 1 start bit, and 1 stop bit) after executing this is necessary.
uart-alternate¶
( uart – )
The alternate function for a given UART (except for rp2350).
uart-non-cts/rts--alternate¶
( pin uart – )
The alternate function for a non-CTS/RTS pin for a given UART (rp2350 only).
uart-cts/rts-alternate¶
( pin uart – )
The alternate function for a CTS/RTS pin for a given UART (rp2350 only).
uart-pin¶
( uart pin – )
Set the alternate function for pin to configure it for uart.
uart-cts/rts-pin¶
( uart pin – )
Set the alternate function for pin to configure it as a CTS/RTS pin for uart (rp2350 only).
uart-cts-enabled?¶
( uart – flag )
Get whether CTS is enabled on a UART (rp2350 only).
enable-uart-cts¶
( uart – )
Enable CTS on a UART (rp2350 only).
disable-uart-cts¶
( uart – )
Disable CTS on a UART (rp2350 only).
uart-rts-enabled?¶
( uart – flag )
Get whether RTS is enabled on a UART (rp2350 only).
enable-uart-rts¶
( uart – )
Enable RTS on a UART (rp2350 only).
disable-uart-rts¶
( uart – )
Disable RTS on a UART (rp2350 only).
x-invalid-uart¶
( – )
Invalid UART exception.