强烈建议看看这个视频
下载CCP源码
- Vector官网应该有,是个exe文件,网址我找不到了,不行就在CSDN下载
阅读内部自带的两个关键文档
CCP源码移植
- 首先将CCP三个文件移植到你的工程里,ccp.c/.h,ccppar.h
- 其次根据你所使用的单片机初始化CAN部分代码,设置好波特率,发送ID和接收ID,CCP_CRO_ID为接收ID,CCP_DTO_ID为发送ID
- 然后实现ccpGetPointer,ccpSend,disable_interrupt,enable_interrupt这四个函数
- ccpGetPointer我是从官方文件里can_cpp.c抄的
- ccpSend是要与你底层CAN发送结合起来,发送ID就是CCP_DTO_ID
- 两个中断就是开启和关闭总中断,根据你单片机进行实现
- 实现CAN接收函数,一般是通过中断接收CAN数据,将从CCP_CRO_ID接收的八个字节数据传入ccpCommand函数
- 初始化要有你底层CAN初始化和ccpInit函数
- while里要有ccpCommand和ccpSendCallBack函数,判断数据发送完成后调取ccpSendCallBack函数
- 做完这些你可以通过CAN test发connect命令进行测试,看看移植是否有问题
INCA联动
- A2L文件一定不要着急,认真阅读慢慢修改,很多问题都是这里的问题
- INCA联动需要两个文件,一个是A2L文件,另一个是HEX文件,其中hex文件可以由MDK生成,A2L文件则需要自己进行获取和修改
- 其中A2L文件我参考的以下大佬的博客:A2L文件解析
- 其次A2L文件有个官方文档,ASAP2文件,也需要参考这个文档进行查看
- 其中标定量是存储在FLASH中,运行在RAM里,需要在RAM和ROM里规定一块相同大小的区域,我用的是KEIL,如何将变量规定到指定的存储区域和运行区域,需要修改sct分散加载文件,SCT文件相关内容可以看野火大师篇
- 最后再将标定量观测量添加到文件末尾后,将A2L文件里波特率,DTO和CRO的ID,FLASH地址,RAM地址等等设置完成后,就可以在INCA里添加A2L和hex文件进行连接和标定了
- INCA初始化的时候会传输大量报文,有很多都是因为注释了宏定义,放出来后很多函数都没有定义,大部分都能在can_ccp.c里找到对应函数,抄过来就行
- 我这是最基础的matlab生成A2L等更进阶的操作等我搞明白了再继续更新
|