Fixed some bugs, now it appears to work, more test needed.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@13821 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
Giovanni Di Sirio 2020-08-31 14:13:28 +00:00
parent 83b31c07de
commit c159b43880
1 changed files with 10 additions and 2 deletions

View File

@ -487,9 +487,13 @@ size_t sio_lld_read(SIODriver *siop, uint8_t *buffer, size_t n) {
/* If the RX FIFO has been emptied then the interrupt is enabled again.*/
if (sio_lld_is_rx_empty(siop)) {
#if HAL_SIO_USE_SYNCHRONIZATION == TRUE
siop->usart->CR3 |= USART_CR3_RXFTIE;
#else
if (siop->operation->rx_cb != NULL) {
siop->usart->CR3 |= USART_CR3_RXFTIE;
}
#endif
break;
}
@ -502,7 +506,7 @@ size_t sio_lld_read(SIODriver *siop, uint8_t *buffer, size_t n) {
rd++;
}
return n - rd;
return rd;
}
/**
@ -524,9 +528,13 @@ size_t sio_lld_write(SIODriver *siop, const uint8_t *buffer, size_t n) {
/* If the TX FIFO has been filled then the interrupt is enabled again.*/
if (sio_lld_is_tx_full(siop)) {
#if HAL_SIO_USE_SYNCHRONIZATION == TRUE
siop->usart->CR3 |= USART_CR3_TXFTIE;
#else
if (siop->operation->tx_cb != NULL) {
siop->usart->CR3 |= USART_CR3_TXFTIE;
}
#endif
break;
}
@ -544,7 +552,7 @@ size_t sio_lld_write(SIODriver *siop, const uint8_t *buffer, size_t n) {
siop->usart->CR1 |= USART_CR1_TCIE;
}
return n - wr;
return wr;
}
/**