Prevent serial tx buffer overflow.
Note: this is likely not the best solution, we can investigate further in due course. See #1753
This commit is contained in:
parent
2ca14ed3a6
commit
c8c5eaf677
|
@ -40,12 +40,17 @@ void serialWrite(serialPort_t *instance, uint8_t ch)
|
|||
instance->vTable->serialWrite(instance, ch);
|
||||
}
|
||||
|
||||
void serialWriteBuf(serialPort_t *instance, void *data, int count)
|
||||
|
||||
void serialWriteBuf(serialPort_t *instance, uint8_t *data, int count)
|
||||
{
|
||||
if (instance->vTable->writeBuf) {
|
||||
instance->vTable->writeBuf(instance, data, count);
|
||||
} else {
|
||||
for (uint8_t *p = data; count > 0; count--, p++) {
|
||||
|
||||
while (!serialTxBytesFree(instance)) {
|
||||
};
|
||||
|
||||
serialWrite(instance, *p);
|
||||
}
|
||||
}
|
||||
|
@ -81,7 +86,7 @@ void serialSetMode(serialPort_t *instance, portMode_t mode)
|
|||
instance->vTable->setMode(instance, mode);
|
||||
}
|
||||
|
||||
void serialWriteBufShim(void *instance, void *data, int count)
|
||||
void serialWriteBufShim(void *instance, uint8_t *data, int count)
|
||||
{
|
||||
serialWriteBuf((serialPort_t *)instance, data, count);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue