K2 新ARM用了自己的程序,其中K2是单can, 不用转换,Arm是双Can 需要转换,
Can的发送,是已每一帧报文发送的,每一帧的前八个字节都是通过,查询方式,发送的,如果每一帧的字节数大约8字节的话,后面的字节由查询方式做判断
剩下的字节有中断发送,
BUG1:新ARM 双Can之间装换的时候,gNODataCounter 这个变量时公用的,所有每个can接受中断都会修改它,导致双can的切换时间不准,修改为两个两边,g1NoDataCounter 和g2NoDataCounter 每个can修改自己的对应的变量就没有问题了
BUG2: 遥脉的参数,需要进行处理。强制转换成32个,有的时候会越界写到别人的内存地址中去,所以要强制转换
BUG3,遥信采样改成 十分之五
BUG4:遥控的返校错位改成3
BUG5:定时器初始化的时候修改了,分频系数等 还有,Can的速度计算有点问题,重新改正了
双Can之间的转换,每个Can接受都用自己的buf Can1buf Can2buf 之后有一个主MainRevBuf,定时器10ms中断中会进行判断出来,把MainCan通道的buf
数据移动到MainRevbuf中,之后再MainRevBUf中进行协议解析,判断,之后删除解析过的数据和错误的数据,把要发送的数据,存到一个gSendbuf 中,以帧为单位
之后再把gsendbuf移动到Cansendbuf中, 之后由Can继续发送。。。。。
原文地址:http://www.cnblogs.com/darren-715/p/3799123.html