This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
大家好、
我想知道是否可以获取传入的 CAN ID。
我希望发送和接收具有不同 CAN ID 的 CAN 消息、以供后续应用使用。
但是、如果我尝试从仲裁寄存器中获取已发送的 ID、它始终向我显示我首先自行配置的 ID。 您可以在下面看到它。
我将 CAN2用于我的应用。
已接收消息的配置:
const CANMessageObjectConfig receiveConfig =
{
.DIRECTION = CAN_DIRECT_RECEIVE、
.id = 0x000、
.idMask = 0x000、
.ideMask = 1、
.mode = CAN_standard_ID、
.node = CAN_NODE_1 //CAN2
};
仲裁寄存器的内部配置:
object->tmsObj->IF2ARB =(uint32) 0x8000000000U |(uint32) 0x00000000U |(uint32) 0x000000000000U |(uint32)((uint32)((uint32)(config->id)&(uint32) 0x000007FFU)<<(uint32);u/reg18uarb;
首先、我尝试在仲裁寄存器中写入传入 ID、如下所示。
if (object->config->mode = CAN_standard_ID){
MSG->id = object->tmsObj->IF2ARB; // IF2ARB 寄存器中的 id (18-28)
MSG->id = msg->id >> 18;
MSG->ID = msg->ID &0x7FF;
}
使用 canGetID 函数。
MSG->id = canGetID (object->node、object->MessageBox);
但它始终显示我配置的 ID (本例中为"0")。
从消息获取数据或长度没有任何问题。 因此,我希望有人可以帮助我解决我的问题,我认为我对如何使用仲裁登记册有误解。
感谢你的帮助、
Simon