diff --git a/components/drivers/serial/serial.c b/components/drivers/serial/serial.c index 3bae89c740bb6b39cb7cb07720d6ab13da9d03ee..2cb298d7ffc0da071665d3e7bd910b7c847ba894 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 --;