在使用280049进行CAN bus off测试时遇到该类问题:
1、在CAN正常通讯过程中,外部短接CANH和CANL。仿真可看到寄存器CanaRegs.CAN_CTL.bit.Init 变为1。
2、断开外部CANH和CANL,软件手动清除CanaRegs.CAN_CTL.bit.Init = 0,回复CAN通讯。在清除CanaRegs.CAN_CTL.bit.Init = 0 时刻,通过示波器检测CANH或CANL,可看到总线有报文数据(此时我的CAN发送任务还未启动)。我认为是之前发送的数据,因为bus off的原因没有发送成功,存在CAN 发送buffer中。当软件清除CanaRegs.CAN_CTL.bit.Init时,自动发送buffer中的数据。我希望在清除CanaRegs.CAN_CTL.bit.Init时,不要有任何数据发出。等到我的回复工作准备好后,发送全新的数据。
问题,在清除CanaRegs.CAN_CTL.bit.Init之前,怎样清除先CAN发送buffer中的数据。