diff options
| -rw-r--r-- | ports/esp32/machine_uart.c | 76 |
1 files changed, 38 insertions, 38 deletions
diff --git a/ports/esp32/machine_uart.c b/ports/esp32/machine_uart.c index f498ab5b3..0e384dc07 100644 --- a/ports/esp32/machine_uart.c +++ b/ports/esp32/machine_uart.c @@ -84,7 +84,7 @@ STATIC const char *_parity_name[] = {"None", "1", "0"}; STATIC void mp_machine_uart_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) { machine_uart_obj_t *self = MP_OBJ_TO_PTR(self_in); uint32_t baudrate; - uart_get_baudrate(self->uart_num, &baudrate); + check_esp_err(uart_get_baudrate(self->uart_num, &baudrate)); mp_printf(print, "UART(%u, baudrate=%u, bits=%u, parity=%s, stop=%u, tx=%d, rx=%d, rts=%d, cts=%d, txbuf=%u, rxbuf=%u, timeout=%u, timeout_char=%u", self->uart_num, baudrate, self->bits, _parity_name[self->parity], self->stop, self->tx, self->rx, self->rts, self->cts, self->txbuf, self->rxbuf, self->timeout, self->timeout_char); @@ -177,22 +177,22 @@ STATIC void mp_machine_uart_init_helper(machine_uart_obj_t *self, size_t n_args, .source_clk = UART_SOURCE_CLK, }; uint32_t baudrate; - uart_get_baudrate(self->uart_num, &baudrate); + check_esp_err(uart_get_baudrate(self->uart_num, &baudrate)); uartcfg.baud_rate = baudrate; - uart_get_word_length(self->uart_num, &uartcfg.data_bits); - uart_get_parity(self->uart_num, &uartcfg.parity); - uart_get_stop_bits(self->uart_num, &uartcfg.stop_bits); - uart_driver_delete(self->uart_num); - uart_param_config(self->uart_num, &uartcfg); - uart_driver_install(self->uart_num, self->rxbuf, self->txbuf, 0, NULL, 0); + check_esp_err(uart_get_word_length(self->uart_num, &uartcfg.data_bits)); + check_esp_err(uart_get_parity(self->uart_num, &uartcfg.parity)); + check_esp_err(uart_get_stop_bits(self->uart_num, &uartcfg.stop_bits)); + check_esp_err(uart_driver_delete(self->uart_num)); + check_esp_err(uart_param_config(self->uart_num, &uartcfg)); + check_esp_err(uart_driver_install(self->uart_num, self->rxbuf, self->txbuf, 0, NULL, 0)); } // set baudrate uint32_t baudrate = 115200; if (args[ARG_baudrate].u_int > 0) { - uart_set_baudrate(self->uart_num, args[ARG_baudrate].u_int); + check_esp_err(uart_set_baudrate(self->uart_num, args[ARG_baudrate].u_int)); } - uart_get_baudrate(self->uart_num, &baudrate); + check_esp_err(uart_get_baudrate(self->uart_num, &baudrate)); if (args[ARG_tx].u_obj != MP_OBJ_NULL) { self->tx = machine_pin_get_id(args[ARG_tx].u_obj); @@ -209,26 +209,26 @@ STATIC void mp_machine_uart_init_helper(machine_uart_obj_t *self, size_t n_args, if (args[ARG_cts].u_obj != MP_OBJ_NULL) { self->cts = machine_pin_get_id(args[ARG_cts].u_obj); } - uart_set_pin(self->uart_num, self->tx, self->rx, self->rts, self->cts); + check_esp_err(uart_set_pin(self->uart_num, self->tx, self->rx, self->rts, self->cts)); // set data bits switch (args[ARG_bits].u_int) { case 0: break; case 5: - uart_set_word_length(self->uart_num, UART_DATA_5_BITS); + check_esp_err(uart_set_word_length(self->uart_num, UART_DATA_5_BITS)); self->bits = 5; break; case 6: - uart_set_word_length(self->uart_num, UART_DATA_6_BITS); + check_esp_err(uart_set_word_length(self->uart_num, UART_DATA_6_BITS)); self->bits = 6; break; case 7: - uart_set_word_length(self->uart_num, UART_DATA_7_BITS); + check_esp_err(uart_set_word_length(self->uart_num, UART_DATA_7_BITS)); self->bits = 7; break; case 8: - uart_set_word_length(self->uart_num, UART_DATA_8_BITS); + check_esp_err(uart_set_word_length(self->uart_num, UART_DATA_8_BITS)); self->bits = 8; break; default: @@ -239,15 +239,15 @@ STATIC void mp_machine_uart_init_helper(machine_uart_obj_t *self, size_t n_args, // set parity if (args[ARG_parity].u_obj != MP_OBJ_NULL) { if (args[ARG_parity].u_obj == mp_const_none) { - uart_set_parity(self->uart_num, UART_PARITY_DISABLE); + check_esp_err(uart_set_parity(self->uart_num, UART_PARITY_DISABLE)); self->parity = 0; } else { mp_int_t parity = mp_obj_get_int(args[ARG_parity].u_obj); if (parity & 1) { - uart_set_parity(self->uart_num, UART_PARITY_ODD); + check_esp_err(uart_set_parity(self->uart_num, UART_PARITY_ODD)); self->parity = 1; } else { - uart_set_parity(self->uart_num, UART_PARITY_EVEN); + check_esp_err(uart_set_parity(self->uart_num, UART_PARITY_EVEN)); self->parity = 2; } } @@ -259,11 +259,11 @@ STATIC void mp_machine_uart_init_helper(machine_uart_obj_t *self, size_t n_args, case 0: break; case 1: - uart_set_stop_bits(self->uart_num, UART_STOP_BITS_1); + check_esp_err(uart_set_stop_bits(self->uart_num, UART_STOP_BITS_1)); self->stop = 1; break; case 2: - uart_set_stop_bits(self->uart_num, UART_STOP_BITS_2); + check_esp_err(uart_set_stop_bits(self->uart_num, UART_STOP_BITS_2)); self->stop = 2; break; default: @@ -283,10 +283,10 @@ STATIC void mp_machine_uart_init_helper(machine_uart_obj_t *self, size_t n_args, uint32_t char_time_ms = 12000 / baudrate + 1; uint32_t rx_timeout = self->timeout_char / char_time_ms; if (rx_timeout < 1) { - uart_set_rx_full_threshold(self->uart_num, 1); - uart_set_rx_timeout(self->uart_num, 1); + check_esp_err(uart_set_rx_full_threshold(self->uart_num, 1)); + check_esp_err(uart_set_rx_timeout(self->uart_num, 1)); } else { - uart_set_rx_timeout(self->uart_num, rx_timeout); + check_esp_err(uart_set_rx_timeout(self->uart_num, rx_timeout)); } } @@ -297,7 +297,7 @@ STATIC void mp_machine_uart_init_helper(machine_uart_obj_t *self, size_t n_args, } self->invert = args[ARG_invert].u_int; } - uart_set_line_inverse(self->uart_num, self->invert); + check_esp_err(uart_set_line_inverse(self->uart_num, self->invert)); // set hardware flow control if (args[ARG_flow].u_int != -1) { @@ -306,7 +306,7 @@ STATIC void mp_machine_uart_init_helper(machine_uart_obj_t *self, size_t n_args, } self->flowcontrol = args[ARG_flow].u_int; } - uart_set_hw_flow_ctrl(self->uart_num, self->flowcontrol, UART_FIFO_LEN - UART_FIFO_LEN / 4); + check_esp_err(uart_set_hw_flow_ctrl(self->uart_num, self->flowcontrol, UART_FIFO_LEN - UART_FIFO_LEN / 4)); } STATIC mp_obj_t mp_machine_uart_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) { @@ -367,13 +367,13 @@ STATIC mp_obj_t mp_machine_uart_make_new(const mp_obj_type_t *type, size_t n_arg #endif { // Remove any existing configuration - uart_driver_delete(self->uart_num); + check_esp_err(uart_driver_delete(self->uart_num)); // init the peripheral // Setup - uart_param_config(self->uart_num, &uartcfg); + check_esp_err(uart_param_config(self->uart_num, &uartcfg)); - uart_driver_install(uart_num, self->rxbuf, self->txbuf, 0, NULL, 0); + check_esp_err(uart_driver_install(uart_num, self->rxbuf, self->txbuf, 0, NULL, 0)); } mp_map_t kw_args; @@ -381,18 +381,18 @@ STATIC mp_obj_t mp_machine_uart_make_new(const mp_obj_type_t *type, size_t n_arg mp_machine_uart_init_helper(self, n_args - 1, args + 1, &kw_args); // Make sure pins are connected. - uart_set_pin(self->uart_num, self->tx, self->rx, self->rts, self->cts); + check_esp_err(uart_set_pin(self->uart_num, self->tx, self->rx, self->rts, self->cts)); return MP_OBJ_FROM_PTR(self); } STATIC void mp_machine_uart_deinit(machine_uart_obj_t *self) { - uart_driver_delete(self->uart_num); + check_esp_err(uart_driver_delete(self->uart_num)); } STATIC mp_int_t mp_machine_uart_any(machine_uart_obj_t *self) { size_t rxbufsize; - uart_get_buffered_data_len(self->uart_num, &rxbufsize); + check_esp_err(uart_get_buffered_data_len(self->uart_num, &rxbufsize)); return rxbufsize; } @@ -403,18 +403,18 @@ STATIC bool mp_machine_uart_txdone(machine_uart_obj_t *self) { STATIC void mp_machine_uart_sendbreak(machine_uart_obj_t *self) { // Save settings uint32_t baudrate; - uart_get_baudrate(self->uart_num, &baudrate); + check_esp_err(uart_get_baudrate(self->uart_num, &baudrate)); // Synthesise the break condition by reducing the baud rate, // and cater for the worst case of 5 data bits, no parity. - uart_wait_tx_done(self->uart_num, pdMS_TO_TICKS(1000)); - uart_set_baudrate(self->uart_num, baudrate * 6 / 15); + check_esp_err(uart_wait_tx_done(self->uart_num, pdMS_TO_TICKS(1000))); + check_esp_err(uart_set_baudrate(self->uart_num, baudrate * 6 / 15)); char buf[1] = {0}; uart_write_bytes(self->uart_num, buf, 1); - uart_wait_tx_done(self->uart_num, pdMS_TO_TICKS(1000)); + check_esp_err(uart_wait_tx_done(self->uart_num, pdMS_TO_TICKS(1000))); // Restore original setting - uart_set_baudrate(self->uart_num, baudrate); + check_esp_err(uart_set_baudrate(self->uart_num, baudrate)); } STATIC mp_uint_t mp_machine_uart_read(mp_obj_t self_in, void *buf_in, mp_uint_t size, int *errcode) { @@ -472,7 +472,7 @@ STATIC mp_uint_t mp_machine_uart_ioctl(mp_obj_t self_in, mp_uint_t request, uint mp_uint_t flags = arg; ret = 0; size_t rxbufsize; - uart_get_buffered_data_len(self->uart_num, &rxbufsize); + check_esp_err(uart_get_buffered_data_len(self->uart_num, &rxbufsize)); if ((flags & MP_STREAM_POLL_RD) && rxbufsize > 0) { ret |= MP_STREAM_POLL_RD; } @@ -483,7 +483,7 @@ STATIC mp_uint_t mp_machine_uart_ioctl(mp_obj_t self_in, mp_uint_t request, uint // The timeout is estimated using the buffer size and the baudrate. // Take the worst case assumptions at 13 bit symbol size times 2. uint32_t baudrate; - uart_get_baudrate(self->uart_num, &baudrate); + check_esp_err(uart_get_baudrate(self->uart_num, &baudrate)); uint32_t timeout = (3 + self->txbuf) * 13000 * 2 / baudrate; if (uart_wait_tx_done(self->uart_num, timeout) == ESP_OK) { ret = 0; |
