大家好、
我的 TMS570LC43电路板有一些问题。
我实施了一个非常简单的代码来测试 CAN 通信。 我启用了回送功能,并尝试使用生成的 halgogen 函数"canUpdateID()"更新 ID。
问题是、成功更新消息 ID 后、我无法接收任何消息。
另一方面,如果不使用 "canUpdateID()",我通常会收到消息。并使用 halgogen 预配置 MessageID。
我用卤素原配置了消息盒、如下所示:
MessageBox[1 - 8]是 Tx-messagebox、分别包含消息 ID 1 - 8
MessageBox[9 - 16]是 Rx 消息框、分别包含消息 ID 9 - 16
我尝试使用我的代码修改前4个 Rx-messagebox 的信息 ID 以接收消息。
低于我的代码
uint8 i;
uint32 ID;
uint8数据[4][8];
uint8 Data[8]={1、2、3、3、5、6、7、8};
uint8 Data2[8]={8、7、4、93、2、1、0};
uint8数据阵列[4][8];
uint32 ResultOfTransmission;
canInit();
canEnabableeloopback (canREG1、Internal_LBK);
memcpy (&DataArray[0]、Data、8);
memcpy (&DataArray[1][0]、Data2、8);
memcpy (&DataArray[2][0]、Data、8);
memcpy (&DataArray[3][0]、Data2、8);
对于(i = 1;i<= 4;i++){
ResultOfTransmission = canTransmit (canREG1、I、DataArray[I-1]);
canUpdateID (canREG1、i + 8、i);
}
while (1){
静态 uint32 j = 1;
printf("****圆 nr %d***** ",j);
if (j > 8){
if (canIsMessageBoxValid (canREG1、j)){
ID = canGetID (canREG1,j);
if (canIsRxMessageArrived (canREG1, j )){
静态 A = 0;
如果(A < 4){
ResultOfTransmission = canGetData (canREG1、j + 8、&data[a][0]);
}
A++;
} /* kein else nötig */
} /* kein else nötig */
}
J++;
}