Why can't we see data in receiver buffer in watch register while running

  1. Hello Sir, 

          I have doubt whether "can we see/read data storing in CAN receive buffer - RFDF00L, RFDF00H, RFDF10L.... upto 8 bytes in watch register 1 in CS+ software. 

Ex: unsigned char data[8] = {10, 11,12,13,14,15,0,1}, Trsn_buffer[8];

unsigned char can_id = 601;

Void main()


CAN0_Tx(can_id, 8, data);// calling transmission function

If(tx_done == 0)  //after all data transmitted start receiving


   CAN0_Rx(Trsn_buffer) ;//call receive function by sending empty array



 How to know successful transmission and reception? 

What does Tx, Rx refer ? 

Thank you, 

With regards

  • Former Member
    0 Former Member

    The CAN receive buffer registers RFDF00L, RFDF00H, RFDF10L, etc. are hardware registers that store data received by the CAN controller. In general, it is not possible to directly access these registers from software, but instead, the controller provides a message reception interrupt that can be used to read the received data.

    In the code example provided, after transmitting the data using the CAN0_Tx() function, the program waits for the transmission to complete by checking the value of the tx_done flag. Once the transmission is complete, the program calls the CAN0_Rx() function to receive data.

    To determine if the transmission and reception were successful, you can check the return values of the CAN0_Tx() and CAN0_Rx() functions. These functions usually return an error code if there was a problem with the transmission or reception. Additionally, you can use the CAN status register to check for errors or other status information.

    In this context, Tx refers to transmission, which is the process of sending data over the CAN bus, and Rx refers to reception, which is the process of receiving data over the CAN bus.