From 9d46ae69a724aeccf841a403e5bdee263728c482 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Tue, 10 Nov 2015 10:24:35 +0800 Subject: [PATCH] [DeviceDrivers] fix the poll_rx issue in serial when there is no data. --- components/drivers/serial/serial.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/components/drivers/serial/serial.c b/components/drivers/serial/serial.c index 3bae89c740..2cb298d7ff 100644 --- a/components/drivers/serial/serial.c +++ b/components/drivers/serial/serial.c @@ -29,6 +29,7 @@ * 2014-12-31 bernard use open_flag for poll_tx stream mode. * 2015-05-19 Quintin fix DMA tx mod tx_dma->activated flag !=RT_FALSE BUG * in open function. + * 2015-11-10 bernard fix the poll rx issue when there is no data. */ #include @@ -49,6 +50,8 @@ rt_inline int _serial_poll_rx(struct rt_serial_device *serial, rt_uint8_t *data, while (length) { ch = serial->ops->getc(serial); + if (ch == -1) break; + *data = ch; data ++; length --;