I2C_MasterWriteByte() | Cypress Semiconductor
I have discovered that procedure I2C_MasterWriteByte() only returns if an ACK is received otherwise it hangs forever. This doesn't seem right. I know the component data sheet says this function is blocking and does not exit until the byte_complete bit is set in the I2C_CSR register. But the description of this register states this bit indicates that eight bits of data plus ACK/NAK.