
使用CubeMX生成的STM32G0B1工程,通过I2C读取EEPROM时,TXIS位一直保持0,导致无法发送从机地址。 调用的函数时:HAL_I2C_Mem_Read(&hi2c1, EEPROM_ADDRESS | EEPROM_READ, address, I2C_MEMADD_SIZE_16BIT, pOutBuff, outBuffLen, 100); address为16位长度的。 根据手册,TXIS位发送中断状态位,在主发送模式时,当每个字节发送完成后,TXIS位才置1。那么I2C初始化完成后,TXIS位默认为0,在I2C_RequestMemoryRead()函数中先调用I2C_WaitOnTXISFlagUntilTimeout()检查TXIS位不是永远会失败吗? 该如何解决? |
明白第一个TXIS怎么来的了,发送从机地址来的,之前看错了 |