Mr Highlander
The CAN bus has an acknowledge bit that is sent when you module receives the message,
This is automatic.
You need to do the following at the end of your CAN interrupt .
CAN1RFLG = RXF; // Clear the RX Full flag to release buffer
I think that the re-transmit that you see is the fact that the transmiter and receiver do not have the same setup and by this I mean bit rate and other CAN setup which is in :
CANxBTR0 and
CANxBTR1
Have you setup the CAN acceptance to receive this CAN ID?
CANxIDAC = ?
CANxIDAR0 = ? and CANxIDMR1 = ?
I have seen that once you get the CAN settings right, it magically just works.
Good luck.