-
-
Notifications
You must be signed in to change notification settings - Fork 44
Open
Description
If the serial open with 115200 8N1, it will transmit a bit in
1/115200 = 0.000086805555555555555555555555555556 s
one frame take
11 * 1 / 115200 = 0.00095486111111111111111111 s
1 second is just enough.
But if we open the serial with higher baudrate, an one second delay may trigger a IDLE interrupt (if the receiver is a STM32).
And if we use RTOS, maybe some other high priority task will take the control and delay the transmit task.
Or maybe i am wrong (Im a still a noob in embedded development)
void atc_transmit(atc_t *atc, uint8_t *data, uint16_t len)
{
for (uint16_t i = 0; i < len; i++)
{
while (!LL_USART_IsActiveFlag_TXE(atc->usart))
;
LL_USART_TransmitData8(atc->usart, data[i]);
}
while (!LL_USART_IsActiveFlag_TC(atc->usart))
;
}
Metadata
Metadata
Assignees
Labels
No labels