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.
工具与软件:
您好、TI 专家:
我尝试在 uart_callback_freertos_ticlang 示例中使用 LP_MSPM0G3507 LaunchPad 时。 我遇到了一个问题,不明白。
为什么 UART 中断始终被触发? 实际上、TX 和 RX 线路是干净的。
CCS 版本:12.7.1.00001
MSPM0 SDK 版本:mspm0_sdk_2_01_00_03
示例: C:\ti\mspm0_sdk_2_01_00_03\examples\rtos\LP_MSPM0G3507\drivers\uart_echo
以下代码可执行、回显功能的功能正常工作。
但是、当我在 UART0_IRQHandler (void)函数中放置断点时、始终会触发该断点。 所示
看起来始终会设置 DMA 相关标志。
然后、我在 xPortSysTickHandler (void)上放置一个断点。 它绝不会被触发。 看起来系统节拍被 UART 中断抢先。
如何解释这一点?
您好、 Zhuang
现在、M0的 IIDX = 17、这是一个 DMA 在 RX 事件上完成。
文件[UARTMSPM0.c]中的函数[UARTMSP_interruptHandler]似乎没有清除中断挂起位。
您可以在[UARTMSP_interruptHandler]底部按如下所示添加一行来清除所有中断或状态。
DL_UART_clearInterruptStatus(hwAttrs->regs, 0x1FFFF); or DL_UART_clearInterruptStatus(hwAttrs->regs, status);
此致、
Helic
您好、 Zhuang
1现在、M0的 IIDX = 17、这是一个在 RX 事件上完成的 DMA。 [报价]是的、这是我的错。 它应该在 Rx 或 TX 上完成 DMA。
然而它甚至无法显示回显... 字符串、仅打印 E.在您清除所有中断状态后、可能会导致出现这种情况。
您可以尝试在进入相应的中断处理函数后清除 single-bit 标志。
此致、
Helic
[/quote]
尊敬的 Helic:
1这些代码由 UART 驱动程序库提供、这是否意味着 UART 中断处理程序不能 正确处理与 DMA 相关的中断事件。
2我还尝试了 UART_NO_DMA 宏命令并在 ti_drivers_config.c 中修改了 UARTObject[] 但是、它没有帮助。
3你能帮我尝试一下吗? 是我自己的问题还是 常见问题。
4由于大家更熟悉驱动程序库代码、如果需要对其进行一些修改、最好自行进行更改。
您好、 Zhuang
我联系了软件团队、看起来这是一个问题。
本周末的 SDK 版本将修复此问题。
请耐心等待更新。
此致、
Helic
尊敬的 Helic:
谢谢您让我知道