mbv: fix async uart2 app. it works!
This commit is contained in:
parent
269a04d5f5
commit
724f8db1b1
@ -45,10 +45,15 @@ void StartReceiving() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void StartSending() {
|
void StartSending() {
|
||||||
if (tx_ring_buffer.AvailableData() > 0 && sending < 1) {
|
if (sending > 0) {
|
||||||
sending += 1;
|
return;
|
||||||
XUartLite_Send(uart0, tx_ring_buffer.RawReadPointer(), 1);
|
|
||||||
}
|
}
|
||||||
|
size_t tosend = tx_ring_buffer.ContiguousAvailableData();
|
||||||
|
if (tosend < 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
sending += 1;
|
||||||
|
XUartLite_Send(uart0, tx_ring_buffer.RawReadPointer(), tosend);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::byte UartReadByte() {
|
std::byte UartReadByte() {
|
||||||
@ -91,17 +96,14 @@ void UartWriteCrash(std::span<const std::byte> data) {
|
|||||||
}
|
}
|
||||||
while (XUartLite_IsSending(uart0)) {
|
while (XUartLite_IsSending(uart0)) {
|
||||||
}
|
}
|
||||||
|
XUartLite_Send(uart0, nullptr, 0); // reset buffer before enabling interrupts
|
||||||
XUartLite_EnableInterrupt(uart0);
|
XUartLite_EnableInterrupt(uart0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UartEcho() {
|
void UartEcho() {
|
||||||
while (1) {
|
while (1) {
|
||||||
gpio0->data = tx_ring_buffer.AvailableData();
|
|
||||||
|
|
||||||
std::byte c = UartReadByte();
|
std::byte c = UartReadByte();
|
||||||
UartWriteByte(c);
|
UartWriteByte(c);
|
||||||
|
|
||||||
//gpio0->data = uart0->Stats.ReceiveOverrunErrors;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user