fix for "realtime uart" in esp32-hal-uart.c #1674
に対応方法があった。1.シリアル受信で受信データが途中までしか取り出せない
これは、ESP32の受信関数の設定の問題
....\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-uart.c
のファイル内の
void uartEnableInterrupt(uart_t* uart)
{
UART_MUTEX_LOCK();
uart->dev->conf1.rxfifo_full_thrhd = 1; //112; ←ここ!
uart->dev->conf1.rx_tout_thrhd = 2;
uart->dev->conf1.rx_tout_en = 1;
uart->dev->int_ena.rxfifo_full = 1;
uart->dev->int_ena.frm_err = 1;
uart->dev->int_ena.rxfifo_tout = 1;
uart->dev->int_clr.val = 0xffffffff;
esp_intr_alloc(UART_INTR_SOURCE(uart->num), (int)ESP_INTR_FLAG_IRAM, _uart_isr, NULL, &uart->intr_handle);
UART_MUTEX_UNLOCK();
}
uart->dev->conf1.rxfifo_full_thrhd = 1; //112; ←ここ!
を1にすればよい。ここに設定した数字までデータがたまらないとSerial.available()の戻り値が応答しない
0 件のコメント:
コメントを投稿