diff --git a/components/drivers/serial/serial.c b/components/drivers/serial/serial.c index fe5ea0f294ca18f796255c36d6225bc4c46b4eda..fd904078f7aa7cc9f4ee1a057b74c11d324c311d 100644 --- a/components/drivers/serial/serial.c +++ b/components/drivers/serial/serial.c @@ -359,10 +359,9 @@ rt_inline int _serial_int_tx(struct rt_serial_device *serial, const rt_uint8_t * } } - if (serial->ops->putc(serial, *(char*)data) == -1) + while (serial->ops->putc(serial, *(char*)data) == -1) { rt_completion_wait(&(tx->completion), RT_WAITING_FOREVER); - continue; } data ++; length --;