I'm using the LPCOpen function Chip_CCAN_Send() on LPC4357. The function writes the data to a message object using the selected interface and then keeps checking if the data was sent. This checking is a blocking call. If the message does not get sent (and acknowledged), the function never returns.
I changed the function so that it also checks the CAN status register and returns if the last error "LEC" part of the CAN STATUS register is not zero. This way at least my program continues running if there is a bus problem. The function should return the status as well. So far it does not and all the data supposed to be sent in this situation is lost. (not a big deal in my case)
Does this implementation make sense or am I missing something?