@@ -82,37 +82,37 @@ static volatile int uart_err;
82
82
static uint8_t uart_never_reset_mask = 0 ;
83
83
static busio_uart_obj_t * context ;
84
84
85
- static int isValidBaudrate (uint32_t baudrate ) {
85
+ static bool isValidBaudrate (uint32_t baudrate ) {
86
86
switch (baudrate ) {
87
87
case UART_9600 :
88
- return 1 ;
88
+ return true ;
89
89
break ;
90
90
case UART_14400 :
91
- return 1 ;
91
+ return true ;
92
92
break ;
93
93
case UART_19200 :
94
- return 1 ;
94
+ return true ;
95
95
break ;
96
96
case UART_38400 :
97
- return 1 ;
97
+ return true ;
98
98
break ;
99
99
case UART_57600 :
100
- return 1 ;
100
+ return true ;
101
101
break ;
102
102
case UART_115200 :
103
- return 1 ;
103
+ return true ;
104
104
break ;
105
105
case UART_230400 :
106
- return 1 ;
106
+ return true ;
107
107
break ;
108
108
case UART_460800 :
109
- return 1 ;
109
+ return true ;
110
110
break ;
111
111
case UART_921600 :
112
- return 1 ;
112
+ return true ;
113
113
break ;
114
114
default :
115
- return 0 ;
115
+ return false ;
116
116
break ;
117
117
}
118
118
}
@@ -126,7 +126,8 @@ static mxc_uart_parity_t convertParity(busio_uart_parity_t busio_parity) {
126
126
case BUSIO_UART_PARITY_ODD :
127
127
return MXC_UART_PARITY_ODD_0 ;
128
128
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 ;
130
131
}
131
132
}
132
133
@@ -188,7 +189,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
188
189
if ((rx != NULL ) && (tx != NULL )) {
189
190
err = MXC_UART_Init (self -> uart_regs , baudrate , MXC_UART_IBRO_CLK );
190
191
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 );
192
193
}
193
194
194
195
// attach & configure pins
@@ -211,7 +212,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
211
212
common_hal_mcu_pin_claim (self -> cts_pin );
212
213
common_hal_mcu_pin_claim (self -> rts_pin );
213
214
} 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 " ));
215
216
}
216
217
217
218
// Set stop bits & data size
@@ -338,7 +339,7 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self,
338
339
* errcode = err ;
339
340
MXC_UART_AbortAsync (self -> uart_regs );
340
341
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" ) );
342
343
}
343
344
344
345
// Wait for transaction completion or timeout
@@ -350,11 +351,11 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self,
350
351
if (uart_status [self -> uart_id ] != UART_FREE ) {
351
352
MXC_UART_AbortAsync (self -> uart_regs );
352
353
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 " ));
354
355
}
355
356
// Check for errors from the callback
356
357
else if (uart_err != E_NO_ERROR ) {
357
- mp_printf ( & mp_sys_stdout_print , "MAX32 ERR: %d\n" , uart_err );
358
+ // todo: indicate error?
358
359
MXC_UART_AbortAsync (self -> uart_regs );
359
360
}
360
361
@@ -399,7 +400,7 @@ size_t common_hal_busio_uart_write(busio_uart_obj_t *self,
399
400
* errcode = err ;
400
401
MXC_UART_AbortAsync (self -> uart_regs );
401
402
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 " ));
403
404
}
404
405
405
406
// Wait for transaction completion or timeout
@@ -409,7 +410,7 @@ size_t common_hal_busio_uart_write(busio_uart_obj_t *self,
409
410
// Call the handler and abort if errors
410
411
uart_err = MXC_UART_AsyncHandler (self -> uart_regs );
411
412
if (uart_err != E_NO_ERROR ) {
412
- mp_printf ( & mp_sys_stdout_print , "MAX32 ERR: %d\n" , uart_err );
413
+ // todo: indicate error?
413
414
MXC_UART_AbortAsync (self -> uart_regs );
414
415
}
415
416
}
@@ -418,11 +419,11 @@ size_t common_hal_busio_uart_write(busio_uart_obj_t *self,
418
419
if (uart_status [self -> uart_id ] != UART_FREE ) {
419
420
MXC_UART_AbortAsync (self -> uart_regs );
420
421
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." ));
422
423
}
423
424
// Check for errors from the callback
424
425
else if (uart_err != E_NO_ERROR ) {
425
- mp_printf ( & mp_sys_stdout_print , "MAX32 ERR: %d\n" , uart_err );
426
+ // todo: indicate error?
426
427
MXC_UART_AbortAsync (self -> uart_regs );
427
428
}
428
429
@@ -438,7 +439,7 @@ void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrat
438
439
if (isValidBaudrate (baudrate )) {
439
440
self -> baudrate = baudrate ;
440
441
} 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 );
442
443
}
443
444
}
444
445
0 commit comments