1:C0MCTL复位状态下是00H。我置RecReq为1,就为接收槽。复位态时Inval data位为0。那么这个槽中的消息就是有效的。也就是说可以直接读取。不知道是否可以这么认为?(读取的数据为00)
2:是不是在复位状态后接收到新消息或者是接收到连续的消息才会改变该Msglost?
/*检查过载错误*/
if(c0mctl[in_slot].receive.msglost){
c0mctl[in_slot].receive.msglost=0;
lost_message_can0(CAN_RCV_BUFF_ERROR); /*配置过载错误发生时的用户程序*/
break;
}
检查过载错误为什么是检查msglost位?以及配置过载错误发生时的用户程序,不知道该做些什么处理。
3:在函数set_rec_std_dataframe_can0()中,已经设定好槽接收消息的ID。且在CAN配置中,设置C0GMR为FFH。那么只有发送的消息ID和槽中设定的ID匹配了,才能保存到该槽中。问题:既然我已经设置了屏蔽寄存器,为什么在还没有发送数据的时候,Inval data就已经有效可以读取(在问题1的基础上)。岂不是矛盾?
请瑞萨工程师给予解答,或阅读此帖的朋友给予帮助.谢谢!