This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

UART transceive

Other Parts Discussed in Thread: AM3359

(ICE-Board AM3359, indsdk 1.1.0.1)

Hello,

the UART RX works with no problem, because i can use CharGetNonBlocking().

On the TX line, there´s at the moment the CharPut function, which works (data send correctly) but the ISR stocks in the while() insctruction of this function. When i simply tried to use CharPutNonBlocking, then the data is corrupted, because, i assume, the new data overwrite the current TX buffer, which is at this moment not completly transmitted.

Can anyone give me a hint what should i do? Something like a longer FIFO buffer? Has someone an example of a UART config, which would be helpful.

thanks

  • I´ve tried to use the E- DMA.

    How would be the UART TX transfer ? With writing the first byte into the UART TX register ? Or with EDMAEnableTrasnfer? The EDMA completion interrupt is not reach, because the bCnt value of EDMAParamSet doesnt count to zero.

    Has anyone a hint to use UART1 with EDMA? Or how to setup the FIFO that it correctly work withput wait/while statements?

  • Hi Daniel,

    You can check the Uart Edma example provided in the StarterWare 02.00.01.01 package for some reference on UART Edma usage. It demonstrates Uart Edma usage for UART0 instance.

    Regarding the data getting corrupted when transmitting, if you are transmitting large data then you can try the following in your code.

    First check the status of the FIFO using UARTSpaceAvail API, If empty then you can write the data to the Tx FIFO using UARTFIFOWrite API.

    Regards

    Anant Pai