Update serial.c

rx_fifo->is_full已经满时继续更新rx_fifo->get_index
This commit is contained in:
Bluebear233 2018-06-13 21:45:03 +08:00 committed by GitHub
parent 35a0e8e8c9
commit 284744b7b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 2 deletions

View File

@ -421,7 +421,6 @@ static void rt_dma_recv_update_put_index(struct rt_serial_device *serial, rt_siz
/* force overwrite get index */ /* force overwrite get index */
if (rx_fifo->put_index >= rx_fifo->get_index) if (rx_fifo->put_index >= rx_fifo->get_index)
{ {
rx_fifo->get_index = rx_fifo->put_index;
rx_fifo->is_full = RT_TRUE; rx_fifo->is_full = RT_TRUE;
} }
} }
@ -437,10 +436,15 @@ static void rt_dma_recv_update_put_index(struct rt_serial_device *serial, rt_siz
rx_fifo->put_index %= serial->config.bufsz; rx_fifo->put_index %= serial->config.bufsz;
} }
/* force overwrite get index */ /* force overwrite get index */
rx_fifo->get_index = rx_fifo->put_index;
rx_fifo->is_full = RT_TRUE; rx_fifo->is_full = RT_TRUE;
} }
} }
if(rx_fifo->is_full == RT_TRUE)
{
rx_fifo->get_index = rx_fifo->put_index;
}
if (rx_fifo->get_index >= serial->config.bufsz) rx_fifo->get_index = 0; if (rx_fifo->get_index >= serial->config.bufsz) rx_fifo->get_index = 0;
} }