如果使用 S32DS3.4 IDE和RTD1.0.0编译附件 CAN工程就会报上述错误,可以看到只安装了 RTD S32K3XX 1.0.0软件版本。这是因为该工程是在 RTD2.0.0环境下测试的,需要下载 S32K3 Real Time Drivers Version 2.0.0。
在官网找到RTD_4_4_2.0.0,下载完成后,点击Help菜单栏中的Install New Software,选择刚才下载的SW32K3_RTD_4.4_2.0.0_DS_updatesite_D2204.zip!
勾选 RTD S32K3XX,RTD S32K3XX 2.0.0以后进行安装。
附件RTD2.0.0下应用程序的目的是展示FlexCAN模块的使用情况,该模块配置为使用S32 RTD API使用CAN FD和增强RXFIFO。此演示应用程序需要两个板,或使用CAN工具连接单板。
——CAN FD以500/2000 kbps的比特率启用
——MB0被配置为传输标准ID或扩展ID
——MB1配置为接收扩展ID 0xFACE,MB2配置为接收标准ID 0x1
——启用增强型RXFIO,并定义了3个增强型RXIFO滤波器元件(滤波器+掩码方案)
带掩码0x1FFFFFFF的扩展ID 0xABCD,带掩码0x7FF的标准ID 0x123,带掩码0x7FF的标准ID 0x456。
——回调功能也用于处理MBs邮箱TX和RX的过程和增强型RXFIFO
——如果在板上使用TJA1153,则可以调用setupCanXCVR函数。
它期望收发器处于Vanilla状态,并将TPL设置为通过所有标准和扩展ID,并且不阻止任何来自总线的消息,最后离开配置模式,而不需要写入非易失性存储器,也不锁定收发器。
*测试硬件:S32K344/S32K312 EVB
*单片机:S32K344 1P55A
*编译器:S32DS.ARM.3.4
*SDK版本:SW32K3_RTD_4_4_2_0_D2203
*调试器:JLINK
*目标:Internal_FLASH
将附件代码拷贝到 RTD2.0.0安装目录如下所示。 S32DS.3.4\S32DS\software\PlatformSDK_S32K3_2022_03\SW32K3_RTD_4_4_2_0_0_D2203
S32K344/S312 EVK开发板采用的是 CAN0通信接口,使用PTC3(作为 S32K344端的发送引脚)和PTC2(作为 S32K344端的接收引脚)。
如果需要继续使用 S32DS3.4和RTD1.0.0平台的话,可以选择RTD1.0.0里面自带的 CAN例程。使用Mcu_InitClock,它初始化时钟源、时钟树,并配置外围设备时钟门控。所使用的时钟配置将启用并使用PLL作为源时钟。然后,应用程序将作为轮询发送和接收,1个CAN帧在环回中。接收和发送通过CanIf_RxIndication函数和CanIf_TxConfirmation函数进行确认。备注:代码里面没有使能引脚配置工具。