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.

TMS320C6748: 6748 串口&edma

Part Number: TMS320C6748

您好:

想使用串口EDMA发送数据,但在验证时遇到了一些问题,如下:
用UARTCharPut()函数发送数据耗时比较长,测试发现发送80个字节需要600多us,希望时间能更快一些。昨天就测试了用串口EDMA进行数据的收发,但做一个串口EDMA收和一个串口EDMA发没验证成功,就退而选择使用串口中断接收数据,用另一个串口EDMA发送数据,但在测试时发现使用EDMA发送数据需要等待的时间也比较长,使用UART_EDMA测试时,使用以下代码测试,
for(volatile unsigned int x = 100000;x>0;x--);
TSCH = 0;
TSCL = 0;
start = _itoll(TSCH,TSCL);

UartTransmitData(EDMA3_CHA_UART2_TX, EDMA3_CHA_UART2_TX, enter,strlen((const char *)enter));

end = _itoll(TSCH,TSCL);
DSP_SCL_UART = end - start;
cnt = 0;

发现收到的数据还是不完整的,只接收到一半的数据,配置还是例程里的配置没有改动,就是想问问是不是串口EDMA发送数据的时间和UARTCharPut()发送的时间是差不多的呢?或者还有没有其他耗时比较短的发送方式呢?
但是如果将间隔时间延长,如以下代码,则能接收到完整的数据,但是这样的话就和原本的意图相违背了。
for(volatile unsigned int x = 500000;x>0;x--);
TSCH = 0;
TSCL = 0;
start = _itoll(TSCH,TSCL);

UartTransmitData(EDMA3_CHA_UART2_TX, EDMA3_CHA_UART2_TX, enter,strlen((const char *)enter));

end = _itoll(TSCH,TSCL);
DSP_SCL_UART = end - start;
cnt = 0;