阻塞模式:
(主模式)HAL_I2C_Master_Transmit(); HAL_I2C_Master_Receive(); HAL_I2C_Slave_Transmit(); HAL_I2C_Slave_Receive();(从机模式)
HAL_I2C_Mem_Write(); HAL_I2C_Mem_Read();储存器双地址读写 HAL_I2C_IsDeviceReady();检查设备是否准备好
带HAL_I2C_StateTypeDef HAL_I2C_GetState(
);检查总线是否准备好
HAL_I2C_Master_Transmit_IT(); HAL_I2C_Master_Receive_IT(); HAL_I2C_Slave_Transmit_IT()
HAL_I2C_Slave_Receive_IT(); HAL_I2C_Mem_Write_IT(); HAL_I2C_Mem_Read_IT()
DMA传输非阻塞模式:
HAL_I2C_Master_Transmit_DMA(); HAL_I2C_Master_Receive_DMA(); HAL_I2C_Slave_Transmit_DMA(); HAL_I2C_Slave_Receive_DMA(); HAL_I2C_Mem_Write_DMA(); HAL_I2C_Mem_Read_DMA()
非阻塞模式下的回调函数:
HAL_I2C_MemTxCpltCallback(); HAL_I2C_MemRxCpltCallback(); HAL_I2C_MasterTxCpltCallback()
HAL_I2C_MasterRxCpltCallback(); HAL_I2C_SlaveTxCpltCallback(); HAL_I2C_SlaveRxCpltCallback(); HAL_I2C_ErrorCallback()
注:1.HAL_I2C_Mem_Write/Read();为储存器双地址读写函数,从机地址加储存器地址很有用。
2.status=HAL_I2C_IsDeviceReady(&hi2c1, ADDRESS_W, 10, HAL_MAX_DELAY);
(I2C端口,地址,检查次数,超时)
3. flag=HAL_I2C_GetState(&hi2c1); I2C口