@@ -82,37 +82,37 @@ static volatile int uart_err;
8282static uint8_t uart_never_reset_mask = 0 ;
8383static busio_uart_obj_t * context ;
8484
85- static int isValidBaudrate (uint32_t baudrate ) {
85+ static bool isValidBaudrate (uint32_t baudrate ) {
8686 switch (baudrate ) {
8787 case UART_9600 :
88- return 1 ;
88+ return true ;
8989 break ;
9090 case UART_14400 :
91- return 1 ;
91+ return true ;
9292 break ;
9393 case UART_19200 :
94- return 1 ;
94+ return true ;
9595 break ;
9696 case UART_38400 :
97- return 1 ;
97+ return true ;
9898 break ;
9999 case UART_57600 :
100- return 1 ;
100+ return true ;
101101 break ;
102102 case UART_115200 :
103- return 1 ;
103+ return true ;
104104 break ;
105105 case UART_230400 :
106- return 1 ;
106+ return true ;
107107 break ;
108108 case UART_460800 :
109- return 1 ;
109+ return true ;
110110 break ;
111111 case UART_921600 :
112- return 1 ;
112+ return true ;
113113 break ;
114114 default :
115- return 0 ;
115+ return false ;
116116 break ;
117117 }
118118}
@@ -126,7 +126,8 @@ static mxc_uart_parity_t convertParity(busio_uart_parity_t busio_parity) {
126126 case BUSIO_UART_PARITY_ODD :
127127 return MXC_UART_PARITY_ODD_0 ;
128128 default :
129- mp_raise_ValueError (MP_ERROR_TEXT ("Parity must be ODD, EVEN, or NONE\n" ));
129+ // not reachable due to validation in shared-bindings/busio/SPI.c
130+ return MXC_UART_PARITY_DISABLE ;
130131 }
131132}
132133
@@ -188,7 +189,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
188189 if ((rx != NULL ) && (tx != NULL )) {
189190 err = MXC_UART_Init (self -> uart_regs , baudrate , MXC_UART_IBRO_CLK );
190191 if (err != E_NO_ERROR ) {
191- mp_raise_RuntimeError (MP_ERROR_TEXT ("Failed to initialize UART.\n" ) );
192+ mp_raise_RuntimeError_varg (MP_ERROR_TEXT ("%q init failed" ), MP_QSTR_UART );
192193 }
193194
194195 // attach & configure pins
@@ -211,7 +212,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
211212 common_hal_mcu_pin_claim (self -> cts_pin );
212213 common_hal_mcu_pin_claim (self -> rts_pin );
213214 } else if (cts || rts ) {
214- mp_raise_ValueError (MP_ERROR_TEXT ("Flow Ctrl needs both CTS & RTS " ));
215+ mp_raise_ValueError (MP_ERROR_TEXT ("Both RX and TX required for flow control " ));
215216 }
216217
217218 // Set stop bits & data size
@@ -338,7 +339,7 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self,
338339 * errcode = err ;
339340 MXC_UART_AbortAsync (self -> uart_regs );
340341 NVIC_DisableIRQ (MXC_UART_GET_IRQ (self -> uart_id ));
341- mp_raise_RuntimeError_varg (MP_ERROR_TEXT ("\nERR: Error starting transaction: %d\n" ), err );
342+ mp_raise_RuntimeError_varg (MP_ERROR_TEXT ("UART read error" ) );
342343 }
343344
344345 // Wait for transaction completion or timeout
@@ -350,11 +351,11 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self,
350351 if (uart_status [self -> uart_id ] != UART_FREE ) {
351352 MXC_UART_AbortAsync (self -> uart_regs );
352353 NVIC_DisableIRQ (MXC_UART_GET_IRQ (self -> uart_id ));
353- mp_raise_RuntimeError (MP_ERROR_TEXT ("\nERR: Uart transaction timed out.\n " ));
354+ mp_raise_RuntimeError (MP_ERROR_TEXT ("UART transaction timeout " ));
354355 }
355356 // Check for errors from the callback
356357 else if (uart_err != E_NO_ERROR ) {
357- mp_printf ( & mp_sys_stdout_print , "MAX32 ERR: %d\n" , uart_err );
358+ // todo: indicate error?
358359 MXC_UART_AbortAsync (self -> uart_regs );
359360 }
360361
@@ -399,7 +400,7 @@ size_t common_hal_busio_uart_write(busio_uart_obj_t *self,
399400 * errcode = err ;
400401 MXC_UART_AbortAsync (self -> uart_regs );
401402 NVIC_DisableIRQ (MXC_UART_GET_IRQ (self -> uart_id ));
402- mp_raise_ConnectionError (MP_ERROR_TEXT ("\nERR: Requested bus is busy\n " ));
403+ mp_raise_ValueError (MP_ERROR_TEXT ("All UART peripherals are in use " ));
403404 }
404405
405406 // Wait for transaction completion or timeout
@@ -409,7 +410,7 @@ size_t common_hal_busio_uart_write(busio_uart_obj_t *self,
409410 // Call the handler and abort if errors
410411 uart_err = MXC_UART_AsyncHandler (self -> uart_regs );
411412 if (uart_err != E_NO_ERROR ) {
412- mp_printf ( & mp_sys_stdout_print , "MAX32 ERR: %d\n" , uart_err );
413+ // todo: indicate error?
413414 MXC_UART_AbortAsync (self -> uart_regs );
414415 }
415416 }
@@ -418,11 +419,11 @@ size_t common_hal_busio_uart_write(busio_uart_obj_t *self,
418419 if (uart_status [self -> uart_id ] != UART_FREE ) {
419420 MXC_UART_AbortAsync (self -> uart_regs );
420421 NVIC_DisableIRQ (MXC_UART_GET_IRQ (self -> uart_id ));
421- mp_raise_ConnectionError (MP_ERROR_TEXT ("\nERR: Uart transaction timed out.\n " ));
422+ mp_raise_RuntimeError (MP_ERROR_TEXT ("Uart transaction timed out." ));
422423 }
423424 // Check for errors from the callback
424425 else if (uart_err != E_NO_ERROR ) {
425- mp_printf ( & mp_sys_stdout_print , "MAX32 ERR: %d\n" , uart_err );
426+ // todo: indicate error?
426427 MXC_UART_AbortAsync (self -> uart_regs );
427428 }
428429
@@ -438,7 +439,7 @@ void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrat
438439 if (isValidBaudrate (baudrate )) {
439440 self -> baudrate = baudrate ;
440441 } else {
441- mp_raise_ValueError (MP_ERROR_TEXT ("Baudrate invalid. Must be a standard UART baudrate.\n" ) );
442+ mp_raise_ValueError_varg (MP_ERROR_TEXT ("Invalid %q" ), MP_QSTR_baudrate );
442443 }
443444}
444445
0 commit comments