I´m trying to solve some CAN problems and I came across some strange behaviour.
If there is no CAN bus (because I disconnected the cable) and I send a message I get a Status Interrupt and the error counter for receiving is going up to 9 from 0 before and LEC is 0x01. Why does the receive error Counter go up?
When I get an interrupt with a LEC which is != 0x00 I set the send message object of the CAN to invalid.
If I try to send the next message over CAN I do not get any interrupt anymore. If I then reattach the cable I still do not get an interrupt. But if I send a message over the CAN bus (from a PC) I get the message and from this point on I will get interrupts when I try to send a message over CAN.
So, why don´t I´m getting interrupts when try to send a message over CAN and this did not work? Why does it not work to send messages over CAN, disconnect the cable and then reconnect the cable?
I fixed the problem for me with disabling the status interrupts and so I only get message interrupts and error interrupts. I also do not anymore cancel the sending of a message if the message can´t be send.
With this everything works as expected and the CAN communication is recovering from every test we did :smileyhappy: