嗨,恩智浦社区、
我有一个关于 MCAL 中 UART 模块配置的问题。我无法更改波特率。SBR 和 OSR 寄存器符合预期,但实际测量的波特率为 72254。请帮助解决这个问题。
感谢您的帮助!
请参阅[RTD400 MCAL 3] K312 MCU 时钟系统配置 的 2.2 EB 配置 部分配置 Mcu 。
是的,我已经调用了 Mcu_DistributePllClock() 函数。
如有必要,附加文件包含基于参考例程的源代码。
您是否在主函数中调用了Mcu_DistributePllClock()?请参考以下代码:
/* Initialize the clock driver */
Mcu_Init(NULL_PTR);
/* Initialize the clock tree and apply PLL as system clock */
Mcu_InitClock(McuClockSettingConfig_0);
#if (MCU_NO_PLL == STD_OFF)
while ( MCU_PLL_LOCKED != Mcu_GetPllStatus() )
{
/* Busy wait until the System PLL is locked */
}
Mcu_DistributePllClock();
#endif
HI
一开始,我使用了 aips 慢时钟,但问题依然存在。波特率为 142857。在我将时钟更改为 aips plat 之后,波特率发生了变化,甚至变得更低,达到了 72254,但仍然不是预期的波特率。
我和 UART 例程的区别似乎只在于核心时钟。我使用 PLL 作为核心时钟源。会是这个原因吗?使用 PLL 时有什么特别的注意事项吗?
如有必要,附件中包含我的 EB 项目。
HI
请根据表 130配置UartClockRef 。S32K3XXRM Rev12 的LPUARTn 实例时钟。
对于 S32K312,LPUART [1:7] 由AIPS_SLOW_CLK 提供时钟。
祝好,
Robin
-------------------------------------------------------------------------------
注:
- 如果本帖回答了您的问题,请点击"ACCEPT AS SOLUTION" 按钮。谢谢!
- 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略
如果您以后有相关问题,请另开新主题,并参考已关闭的主题。
-------------------------------------------------------------------------------
问题已经解决。
非常感谢!