最近有客户在测试RT1064 CANFD的时候,发现如下特点的问题,如果LPUART的时钟使能,那么CANFD模块能正确使能工作,如果不使能LPUART的时钟,CANFD连初始化都不能完成。而官方的代码都带有UART的打印接口,所以是使能LPUART时钟了,直接测试不能发现这样的问题。如果关掉BOARD_InitDebugConsole();可以发现在运行CANFD的SDK代码的时候,就卡在了CAN初始化中了。 如果仅仅加上使能LPUART的时钟代码:CLOCK_EnableClock(kCLOCK_Lpuart1);再次运行,不仅CANFD初始化可以完成,模块也能正常工作。所以后来内部咨询了下,的确是有这样的问题,暂时还没加入到勘误表文档中,后续会加进去。所以,这里为了防止在此期间有网友遇到类似问题,在这里分享出来对应的workaroud,一共有两种路径: 1. CAN时钟选择的CAN_CLK_SEL设置为0 或者12.如果CAN_CLK_SEL设置为 2. 这时候CMM就必须打开任意一个UART的时钟门,在CCM_CCGRx寄存器中打开。
|