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.

[参考译文] TMS320F28388D:CM UART 接收中断及 DMA

Guru**** 2466550 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1487466/tms320f28388d-cm-uart-receive-interrupts-with-dma

器件型号:TMS320F28388D
Thread 中讨论的其他器件:C2000WARE

工具与软件:

我已经注意到、当我在接收线上启用具有 DMA 的 CM UART 时、它既不会触发 DMARX INT 也不会触发正常 RX INT 上的接收中断

我的初始化代码如下:

UART_setConfig (base、UART_CLK_FREQ、BAUD_RATE、
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
uart_config_PAR_NONE));

uart_enableFIFO (base);
UART_setFIFOLevel (BASE、UART_FIFO_TX7_8、UART_FIFO_RX1_8);
UART_setTxIntMode (base、UART_TXINT_MODE_EOT);
UART_registerInterrupt (interrupt、&ISR);
UART_enableInterrupt (base、 | UART_INT_RT);

UART_enableModule (base);

UART_enableDMA (base、UART_DMA_RX | UART_DMA_TX);

ISR:

uint32_t interrupt_status = UART_getInterruptStatus (base、UART_masked_INT);
UART_clearInterruptStatus (base、UART_INT_DMARX | UART_INT_RX | UART_INT_9BIT);//!<尽早清除中断状态

如果(INTERRUPT_STATUS 和(UART_INT_RX | UART_INT_DMARX))

_asm (" bkpt #0");
}

IF (INTERRUPT_STATUS 和 UART_INT_RT)

//句柄超时

}

尽管接收到数据、但断点绝不会触发

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

    您好!

    您是否尝试过在 C2000ware 中运行 uart_ex2_loopback_udma 示例(未更改)来验证您的硬件设置? 此示例也是代码开发的良好起点。

    此致、

    Delaney