Skip to content

Commit 72ce063

Browse files
authored
reconfiguration with "uartSetFastReading()"
1 parent 4ea6ed6 commit 72ce063

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

cores/esp32/esp32-hal-uart.c

+21-10
Original file line numberDiff line numberDiff line change
@@ -162,13 +162,6 @@ uart_t* uartBegin(uint8_t uart_nr, uint32_t baudrate, uint32_t config, int8_t rx
162162
uart_config.rx_flow_ctrl_thresh = rxfifo_full_thrhd;
163163
uart_config.source_clk = UART_SCLK_APB;
164164

165-
uart_intr_config_t uart_intr = {
166-
.intr_enable_mask = UART_INTR_RXFIFO_FULL | UART_INTR_RXFIFO_TOUT, // only these IRQs - no BREAK, PARITY or OVERFLOW
167-
.rx_timeout_thresh = 1,
168-
.txfifo_empty_intr_thresh = 10,
169-
.rxfifo_full_thresh = rxfifo_full_thrhd,
170-
};
171-
172165
ESP_ERROR_CHECK(uart_driver_install(uart_nr, rx_buffer_size, tx_buffer_size, 20, &(uart->uart_event_queue), 0));
173166
ESP_ERROR_CHECK(uart_param_config(uart_nr, &uart_config));
174167
ESP_ERROR_CHECK(uart_set_pin(uart_nr, txPin, rxPin, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE));
@@ -178,16 +171,34 @@ uart_t* uartBegin(uint8_t uart_nr, uint32_t baudrate, uint32_t config, int8_t rx
178171
// invert signal for both Rx and Tx
179172
ESP_ERROR_CHECK(uart_set_line_inverse(uart_nr, UART_SIGNAL_TXD_INV | UART_SIGNAL_RXD_INV));
180173
}
181-
182-
// override default RX IDF Driver Interrupt - no BREAK, PARITY or OVERFLOW
183-
ESP_ERROR_CHECK(uart_intr_config(uart_nr, &uart_intr));
184174

185175
UART_MUTEX_UNLOCK();
186176

187177
uartFlush(uart);
188178
return uart;
189179
}
190180

181+
// This code is under testing - for now just keep it here
182+
void uartSetFastReading(uart_t* uart)
183+
{
184+
if(uart == NULL) {
185+
return;
186+
}
187+
188+
UART_MUTEX_LOCK();
189+
// override default RX IDF Driver Interrupt - no BREAK, PARITY or OVERFLOW
190+
uart_intr_config_t uart_intr = {
191+
.intr_enable_mask = UART_INTR_RXFIFO_FULL | UART_INTR_RXFIFO_TOUT, // only these IRQs - no BREAK, PARITY or OVERFLOW
192+
.rx_timeout_thresh = 1,
193+
.txfifo_empty_intr_thresh = 10,
194+
.rxfifo_full_thresh = 2,
195+
};
196+
197+
ESP_ERROR_CHECK(uart_intr_config(uart->num, &uart_intr));
198+
UART_MUTEX_UNLOCK();
199+
}
200+
201+
191202
void uartSetRxTimeout(uart_t* uart, uint8_t numSymbTimeout)
192203
{
193204
if(uart == NULL) {

0 commit comments

Comments
 (0)