mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 11:10:54 +03:00
Merge branch 'test/esp_idf_hp_uart_wakeup_6.0' into 'release/v6.0'
fix(esp_driver_uart): resolve the issue of other chips receiving break data (v6.0) See merge request espressif/esp-idf!43191
This commit is contained in:
@@ -56,6 +56,7 @@
|
|||||||
#define UART_BAUD_RATE (115200)
|
#define UART_BAUD_RATE (115200)
|
||||||
#define BUF_SIZE (1024)
|
#define BUF_SIZE (1024)
|
||||||
#define TIMER_WAKEUP_TIME_US (1 * 100 * 1000)
|
#define TIMER_WAKEUP_TIME_US (1 * 100 * 1000)
|
||||||
|
#define UART_READ_TOUT (pdMS_TO_TICKS(500))
|
||||||
|
|
||||||
static void force_stdout(void)
|
static void force_stdout(void)
|
||||||
{
|
{
|
||||||
@@ -131,14 +132,15 @@ void send_and_verify_recived_data(const char* message, uint8_t length, bool shou
|
|||||||
uart_flush_input(MASTER_UART_NUM);
|
uart_flush_input(MASTER_UART_NUM);
|
||||||
uart_write_bytes(MASTER_UART_NUM, message, length);
|
uart_write_bytes(MASTER_UART_NUM, message, length);
|
||||||
/* Wait for uart write finish */
|
/* Wait for uart write finish */
|
||||||
uart_wait_tx_idle_polling(MASTER_UART_NUM);
|
uart_wait_tx_done(MASTER_UART_NUM, portMAX_DELAY);
|
||||||
|
|
||||||
bool wake_up_detected = false;
|
bool wake_up_detected = false;
|
||||||
const char *target = "Wakeup OK!";
|
const char *target = "Wakeup OK!";
|
||||||
int target_len = 11;
|
int target_len = 11;
|
||||||
bool match = true;
|
bool match = true;
|
||||||
char *data = (char *) malloc(BUF_SIZE);
|
char *data = (char *) malloc(BUF_SIZE);
|
||||||
int len = uart_read_bytes(MASTER_UART_NUM, data, target_len, 5000 / portTICK_PERIOD_MS);
|
int len = uart_read_bytes(MASTER_UART_NUM, data, target_len, UART_READ_TOUT);
|
||||||
|
*(data + len) = '\0';
|
||||||
|
|
||||||
if (len > 0) {
|
if (len > 0) {
|
||||||
if (len != target_len) {
|
if (len != target_len) {
|
||||||
@@ -215,7 +217,10 @@ static void enter_sleep_and_send_respond(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Wait for uart write finish */
|
/* Wait for uart write finish */
|
||||||
uart_wait_tx_idle_polling(SLAVE_UART_NUM);
|
uart_wait_tx_done(MASTER_UART_NUM, portMAX_DELAY);
|
||||||
|
|
||||||
|
/* Wait for Master read data, otherwise the UART_INTR_TX_BRK_DONE intr will be triggered*/
|
||||||
|
vTaskDelay(UART_READ_TOUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
// slave
|
// slave
|
||||||
|
|||||||
Reference in New Issue
Block a user