前言
基于S32K312开发板进行配置CAN模块的收发功能。
需要的工具有:EB、S32DS、USB_CAN TooL
其中USB_CAN是进行CAN报文接收和发送的工具。
EB需要的模块有:
1.Port模块:配置can的接收和发送IO,拉高STB和EN脚
2.Can_43_FLEX模块:配置Can的收发邮箱和端口信息等
3.Canif模块:配置Can的驱动层
4.Ecuc和EcuM模块:配置相关所需配置
5.MCU和Platform模块:使能相关中断
下面是各个模块的相应的配置
1 Port模块
使用的是S32K312,只有Can0才有收发器,下面是相关引脚图。
所以EB的Port配置如下图
找到相应的引脚,并按照下图配置
其中STB和EN是控制CAN收发器的模式,两者都高即为正常收发模式。
2. Can_43_FLEX模块
选择模式VariantPreCompile,方便初始化
这里只需要配置两个选项即可,分别为CanController和CanHardwareObject
CanController选项
相关can的波特率设置
在这里可以通过计算相应的系数得到相应的can通信波特率。
CanHardwareObject选项
在这里可配置收发邮箱,如下图,
进入Can_0_RX,设置接收的信号段(每两组)
3.Canif模块
只需要添加这个模块即可
4…EcuC和EcuM模块
EcuM
EcuC
5.Mcu和Platform模块
Platform
Mcu
使能相应的FLEXCAN模块。
6.S32DS代码
构造can的发送函数,下面是can.c和can.文件
can.c文件
#include "can.h