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.

[参考译文] IWR6843AOP:MSS 上带有 DMA 的 UART 只能发送输出数据、但无法接收

Guru**** 1957125 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1237108/iwr6843aop-uart-with-dma-on-mss-can-only-send-out-data-but-can-not-receive

器件型号:IWR6843AOP

我的代码可以在没有 DMA 模式的情况下工作、但某个时候会丢失一个字节。 因此、我想使用 DMA 模式来避免数据丢失。

新代码参考示例"C:\ti\mmwave_sdk_03_06_00_00-LTS。\packages\ti\drivers\uart\test\xwr68xx"。

初始化代码:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// let uart b work with tx/rx
extern UART_Config UART_config[];
UartSci_HwCfg* hwcfg = (UartSci_HwCfg*) UART_config[1].hwAttrs;
hwcfg->duplexity = UartSci_Duplexity_FULL;
#if UART_WIFI_USE_DMA
DMA_init ();
#endif
UART_init();
UART_Params_init(&uartParams);
uartParams.writeDataMode = UART_DATA_BINARY;
uartParams.readDataMode = UART_DATA_BINARY;
uartParams.readReturnMode = UART_RETURN_FULL;
uartParams.readEcho = UART_ECHO_OFF;
uartParams.clockFrequency = gFdMCB.cfg.platformCfg.sysClockFrequency;
uartParams.baudRate = gFdMCB.cfg.platformCfg.commandBaudRate;
uartParams.isPinMuxDone = 1U;
uartParams.readTimeout = 50;
#if UART_WIFI_USE_DMA
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

我使用 UART_WRITE 和 UART_READ 写入 TX/Rx、并使用 UART A 写入日志。 我可以看到  UART_read 始终返回0、而我的 PC 可以接收来自6843的数据。

当通过   

#define uart_WIFI_USE_DMA 0

则代码将正常工作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您能提供更多有关您想阅读的内容的背景信息吗? 您的应用是什么? 您的硬件配置是什么? 您是否执行过测试代码或对其进行了全面浏览? 我认为有一些支持 DMA 的 UART 读取和写入示例。 因此、问题很可能是硬件配置不正确或在您的特定实现方案中 UART 驱动程序使用不当。  

    对于驱动程序测试代码之外的另一个成功示例、我们在雷达工具箱中的演示应用中使用了两个 UART 句柄(开箱即用演示用户指南)。 请参考开箱即用演示源代码中的 main.c。

    此致、
    卢克

x 出现错误。请重试或与管理员联系。