@@ -311,6 +311,28 @@ ap3_err_t Uart::_begin(void)
311
311
_config.ui32RxBufferSize = sizeof (_rx_linbuff);
312
312
_config.ui32TxBufferSize = sizeof (_tx_linbuff);
313
313
314
+ // User may want to change settings mid-sketch. Only init UART if it's new.
315
+ if (_handle == NULL )
316
+ {
317
+ retval = (ap3_err_t )am_hal_uart_initialize (_instance, &_handle);
318
+ if (retval != AP3_OK)
319
+ {
320
+ return ap3_return (retval);
321
+ }
322
+ }
323
+ retval = (ap3_err_t )am_hal_uart_power_control (_handle, AM_HAL_SYSCTRL_WAKE, false );
324
+ if (retval != AP3_OK)
325
+ {
326
+ return ap3_return (retval);
327
+ }
328
+ retval = (ap3_err_t )am_hal_uart_configure (_handle, &_config);
329
+ if (retval != AP3_OK)
330
+ {
331
+ return ap3_return (retval);
332
+ }
333
+
334
+ UARTn (_instance)->LCRH_b .FEN = 0 ; // Disable that pesky FIFO
335
+
314
336
// Check for a valid instance
315
337
// Check pins for compatibility with the selcted instance
316
338
@@ -383,29 +405,6 @@ ap3_err_t Uart::_begin(void)
383
405
pincfg = AP3_GPIO_DEFAULT_PINCFG; // set back to default for use with next pin
384
406
}
385
407
386
- // User may want to change settings mid-sketch. Only init UART if it's new.
387
- if (_handle == NULL )
388
- {
389
- // Now that pins are initialized start the actual driver
390
- retval = (ap3_err_t )am_hal_uart_initialize (_instance, &_handle);
391
- if (retval != AP3_OK)
392
- {
393
- return ap3_return (retval);
394
- }
395
- }
396
- retval = (ap3_err_t )am_hal_uart_power_control (_handle, AM_HAL_SYSCTRL_WAKE, false );
397
- if (retval != AP3_OK)
398
- {
399
- return ap3_return (retval);
400
- }
401
- retval = (ap3_err_t )am_hal_uart_configure (_handle, &_config);
402
- if (retval != AP3_OK)
403
- {
404
- return ap3_return (retval);
405
- }
406
-
407
- UARTn (_instance)->LCRH_b .FEN = 0 ; // Disable that pesky FIFO
408
-
409
408
// Enable TX and RX interrupts
410
409
NVIC_EnableIRQ ((IRQn_Type)(UART0_IRQn + _instance));
411
410
am_hal_uart_interrupt_enable (_handle, (AM_HAL_UART_INT_RX | AM_HAL_UART_INT_TX));
0 commit comments