1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-17 21:35:44 +03:00

UART1 - Fix interrupt race condition which resulted in UART randomly

stopping transmission of data.
This commit is contained in:
Dominic Clifton 2014-12-13 19:45:02 +00:00
parent 9cc7a5aab1
commit e8dbb77db5

View file

@ -254,9 +254,11 @@ uint8_t uartRead(serialPort_t *instance)
void uartWrite(serialPort_t *instance, uint8_t ch) void uartWrite(serialPort_t *instance, uint8_t ch)
{ {
uartPort_t *s = (uartPort_t *)instance; uartPort_t *s = (uartPort_t *)instance;
s->port.txBuffer[s->port.txBufferHead++] = ch; s->port.txBuffer[s->port.txBufferHead] = ch;
if (s->port.txBufferHead >= s->port.txBufferSize) { if (s->port.txBufferHead + 1 >= s->port.txBufferSize) {
s->port.txBufferHead = 0; s->port.txBufferHead = 0;
} else {
s->port.txBufferHead++;
} }
if (s->txDMAChannel) { if (s->txDMAChannel) {