在实验TMS320F280025的can通信实验中,配置好can模块,进行发送时报错,且CAN_getStatus(CANA_BASE)==CAN_STATUS_LEC_ACK,想要软件清除ACK错误,让程序不断发送,以此来检测是否是硬件问题
CAN协议不允许用户清除ACK错误。这是一种检测网络错误的方法。预计在每个传输的帧中,都应该接收ACK,以向CAN发出节点已接收到传输帧的信号。这不能被覆盖。当传输了足够的帧时,ACK错误将累积,如果错误计数器达到错误阈值,它将使节点处于总线关闭状态,这样其他节点也可以发送/接收自己的can帧。
也许对于你正在做的实验,你为什么不启用环回功能呢?通过环回功能,帧通过TX引脚连续发送。CAN RX缓冲器将接收与传输的数据相同的数据,如果处于环回模式,则不会标记ACK错误。