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.

[参考译文] MSPM0L1306:UART1空闲模式、SysConfig 错误

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1465276/mspm0l1306-uart1-idle-mode-sysconfig-error

器件型号:MSPM0L1306
主题中讨论的其他器件:SysConfig

工具与软件:

您好!
syscfg 生成的 ti_msp_dl_config.c 文件存在问题。 如果我们要将 UART1配置为空闲检测模式、则在编译期间会遇到以下错误:

似乎在 SDK 的 dl_UART_main.h 文件中不存在 setAdress 的定义。

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

    您好、GA jo、

    您使用的是哪个版本的 SDK 和 SysConfig?  如果不是最新版本(SDK = 2.3.0.07且 SysConfig = 1.22.0)、请先尝试升级并重试。

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

    这是最新的。
    使用以前版本的 SDK 时、可以通过在 UART1上激活扩展模式来解决该问题、因为定义位于 dl_uart_extend.h 文件中。
    在新的 SDK 中、如果 UART1配置为扩展、则会出现错误(这是正常的)、因为它不适用于此 UART。
    因此、我们的权变措施不再起作用。

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

    您好!
    在没有回答的情况下、我允许自己跟你跟进。

    最后、解决方案只需将以下行添加到 SDK 中的 dl_uart_main.h 文件中:

    #define DL_UART_MAIN_MODE_IDLE_LINE                   DL_UART_MODE_IDLE_LINE

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

    对于延迟的响应、我深表歉意。  好的、听起来您已经在运行了?

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

    遗憾的是、并非如此、SDK 是我们在配置管理中无法管理的项目的入口点、因此我们禁止自己对其应用修改。
    为了解决问题、您将提供的下一个 SDK 版本应包含此更正

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

    好的、我正在与我们的 SDK 团队合作看看可以做些什么。

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

    同时、您没有让 SysConfig 生成必要的代码、而是尝试在 syscfg_DL_init ()之后在 main.c 中进行调用。

    例如:

    int main(void)
    {
        SYSCFG_DL_init();
    
        /* Configure Interrupts */
        DL_UART_Extend_enableInterrupt(UART_1_INST, DL_UART_EXTEND_INTERRUPT_RX);
    
        /* Set the address mask and the address to match */
        DL_UART_Extend_setAddressMask(UART_1_INST, 0);
        DL_UART_Extend_setAddress(UART_1_INST, 0);
    
        DL_UART_Extend_enable(UART_1_INST);
    
        NVIC_ClearPendingIRQ(UART_0_INST_INT_IRQN);
        NVIC_EnableIRQ(UART_0_INST_INT_IRQN);
        DL_SYSCTL_enableSleepOnExit();
    
        while (1) {
            __WFI();
        }
    }

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

    谢谢你

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

    实际上、可以直接使用这些函数。
    直接使用 dl_uart.h 的定义会更好、因为 UART1不应"扩展"。
    但是、由于我们已选择使用和维护 SysConfig、因此不允许将手动配置和 SysConfig 混合使用。
    否则、SysConfig 不会反映实际编程的内容、从而可能导致代码维护问题。

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

    好的-我完全理解。  我将跟踪在 SysConfig 中进行更改的时间以及原因。  一旦我们弄清这一点、如果事实证明这是错误的、那么在下一个版本中将可以进行修复。  我必须弄清这可能是什么时候。

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

    我们的软件团队正在研究这一问题。  如果他们解决了此问题、下一个 SDK 版本计划于2025年2月28日发布。  在此之前、您能用手动方法完成吗?

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

    谢谢你。 我们选择保留版本2.00.00.03、直到下一个版本之前我们已找到的工作

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

    很好。  现在,我将标记这个帖子已解决。  2月28日即将来临、请随时重新打开此帖子并要求更新状态。