What do you send and what do you see on the bus?
Are you using Interrupt or Polling mode?
And what is the MasterGetStatus return values (status, bytesRemaining)?
Iam sending a byte or more and when calling this API "MasterGetStatus" with polling it seems for me that sending one bit not a byte ..I called API "MasterSendData()" then through while loop calling "MasterGetStatus" to handle the transmission until exit condition on STATUS_SUCCESS..but when I called this API "MasterGetStatus" every 8ms ,error code is shown up with "RX_underrun" error ..also through debugging I tried to count how many time API"MasterGetStatus" is called until transmission Ends and it turns out it loops more than 40 times to send 3 Bytes ..so Iam confused with this API and how it's used ..also how can I used interrupt driving type and what API Shall be called to handle the transmission ?
In polling mode MasterGetStatus must be called periodically to check if the FlexIO module has received any data or needs more data to transmit. MasterSendData just provides FlexIO with the first byte (the address) and then MasterGetStatus must provide the rest o the bytes one by one. If the device completes sending a byte and has not yet received the next one, it will signal Tx_underflow, because FlexIO can't do clock stretching in this situation. So if you get this return code it probably means MasterGetStatus must be called more often.
If you want to switch to interrupt mode you need to set the driverType field in the configuration structure to FLEXIO_DRIVER_TYPE_INTERRUPTS. Then it will not matter how frequent the MasterGetStatus is called because the data will be sent/received by interrupts and MasterGetStatus only checks if the transfer is over.
Please also check the driver manual for more information.