From f78dd25a2cb729cc5b59f5df8cda1b57535c4244 Mon Sep 17 00:00:00 2001 From: robert-hh Date: Thu, 24 Nov 2022 11:51:09 +0100 Subject: [PATCH] samd/machine_uart: Check the UART TX pin assignment. Check, if TX is at Pad 0 (SAMD51), or Pad 0 or 2 (SAMD21). --- ports/samd/machine_uart.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ports/samd/machine_uart.c b/ports/samd/machine_uart.c index c8f25d9854..28261c2fcd 100644 --- a/ports/samd/machine_uart.c +++ b/ports/samd/machine_uart.c @@ -263,8 +263,11 @@ STATIC mp_obj_t machine_uart_init_helper(machine_uart_obj_t *self, size_t n_args #if defined(MCU_SAMD21) if (self->tx_pad_config.pad_nr == 2) { // Map pad 2 to TXPO = 1 txpo = 1; - } + } else #endif + if (self->tx_pad_config.pad_nr != 0) { + mp_raise_ValueError(MP_ERROR_TEXT("invalid tx pin")); + } uart->USART.CTRLA.reg = SERCOM_USART_CTRLA_DORD // Data order