I have seen solutions to pull down the sda low for 9 or more clock cycles. This will be seen by "hanging" slaves as a lost arbitration and will release the bus cancelling current transmission. There is a generated file.h for the sda pin. Use those functions to access the pin directly.
When starting a master-slave communication, try to check the result from I2C_SendStart() and in case of error do no further access.