331 #ifdef HAL_I2C_MODULE_ENABLED
338 #define I2C_TIMEOUT_FLAG 35U
339 #define I2C_TIMEOUT_BUSY_FLAG 25U
340 #define I2C_TIMEOUT_STOP_FLAG 5U
341 #define I2C_NO_OPTION_FRAME 0xFFFF0000U
344 #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | (uint32_t)HAL_I2C_STATE_BUSY_RX) & (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY))))
345 #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE))
346 #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | (uint32_t)HAL_I2C_MODE_MASTER))
347 #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | (uint32_t)HAL_I2C_MODE_MASTER))
348 #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | (uint32_t)HAL_I2C_MODE_SLAVE))
349 #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | (uint32_t)HAL_I2C_MODE_SLAVE))
480 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
493 if (hi2c->MspInitCallback ==
NULL)
499 hi2c->MspInitCallback(hi2c);
584 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
585 if (hi2c->MspDeInitCallback ==
NULL)
591 hi2c->MspDeInitCallback(hi2c);
640 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
666 if (pCallback ==
NULL)
669 hi2c->
ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
680 case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
681 hi2c->MasterTxCpltCallback = pCallback;
684 case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
685 hi2c->MasterRxCpltCallback = pCallback;
688 case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
689 hi2c->SlaveTxCpltCallback = pCallback;
692 case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
693 hi2c->SlaveRxCpltCallback = pCallback;
696 case HAL_I2C_LISTEN_COMPLETE_CB_ID :
697 hi2c->ListenCpltCallback = pCallback;
700 case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
701 hi2c->MemTxCpltCallback = pCallback;
704 case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
705 hi2c->MemRxCpltCallback = pCallback;
708 case HAL_I2C_ERROR_CB_ID :
709 hi2c->ErrorCallback = pCallback;
712 case HAL_I2C_ABORT_CB_ID :
713 hi2c->AbortCpltCallback = pCallback;
716 case HAL_I2C_MSPINIT_CB_ID :
717 hi2c->MspInitCallback = pCallback;
720 case HAL_I2C_MSPDEINIT_CB_ID :
721 hi2c->MspDeInitCallback = pCallback;
726 hi2c->
ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
737 case HAL_I2C_MSPINIT_CB_ID :
738 hi2c->MspInitCallback = pCallback;
741 case HAL_I2C_MSPDEINIT_CB_ID :
742 hi2c->MspDeInitCallback = pCallback;
747 hi2c->
ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
757 hi2c->
ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
800 case HAL_I2C_MASTER_TX_COMPLETE_CB_ID :
804 case HAL_I2C_MASTER_RX_COMPLETE_CB_ID :
808 case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID :
812 case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID :
816 case HAL_I2C_LISTEN_COMPLETE_CB_ID :
820 case HAL_I2C_MEM_TX_COMPLETE_CB_ID :
824 case HAL_I2C_MEM_RX_COMPLETE_CB_ID :
828 case HAL_I2C_ERROR_CB_ID :
832 case HAL_I2C_ABORT_CB_ID :
836 case HAL_I2C_MSPINIT_CB_ID :
840 case HAL_I2C_MSPDEINIT_CB_ID :
846 hi2c->
ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
857 case HAL_I2C_MSPINIT_CB_ID :
861 case HAL_I2C_MSPDEINIT_CB_ID :
867 hi2c->
ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
877 hi2c->
ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
900 if (pCallback ==
NULL)
903 hi2c->
ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
912 hi2c->AddrCallback = pCallback;
917 hi2c->
ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
949 hi2c->
ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK;
1087 if (I2C_MasterRequestWrite(hi2c, DevAddress,
Timeout, tickstart) !=
HAL_OK)
1098 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c,
Timeout, tickstart) !=
HAL_OK)
1132 if (I2C_WaitOnBTFFlagUntilTimeout(hi2c,
Timeout, tickstart) !=
HAL_OK)
1173 __IO uint32_t count = 0U;
1210 if (I2C_MasterRequestRead(hi2c, DevAddress,
Timeout, tickstart) !=
HAL_OK)
1276 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c,
Timeout, tickstart) !=
HAL_OK)
1409 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c,
Timeout, tickstart) !=
HAL_OK)
1469 if ((pData ==
NULL) || (Size == 0U))
1525 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c,
Timeout, tickstart) !=
HAL_OK)
1599 if ((pData ==
NULL) || (Size == (uint16_t)0))
1642 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c,
Timeout, tickstart) !=
HAL_OK)
1675 if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c,
Timeout, tickstart) !=
HAL_OK)
1715 __IO uint32_t count = 0U;
1795 __IO uint32_t count = 0U;
1880 if ((pData ==
NULL) || (Size == 0U))
1942 if ((pData ==
NULL) || (Size == 0U))
2003 __IO uint32_t count = 0U;
2067 if (dmaxferstatus ==
HAL_OK)
2142 __IO uint32_t count = 0U;
2206 if (dmaxferstatus ==
HAL_OK)
2283 if ((pData ==
NULL) || (Size == 0U))
2324 if (dmaxferstatus ==
HAL_OK)
2378 if ((pData ==
NULL) || (Size == 0U))
2419 if (dmaxferstatus ==
HAL_OK)
2512 if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize,
Timeout, tickstart) !=
HAL_OK)
2520 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c,
Timeout, tickstart) !=
HAL_OK)
2555 if (I2C_WaitOnBTFFlagUntilTimeout(hi2c,
Timeout, tickstart) !=
HAL_OK)
2597 __IO uint32_t count = 0U;
2637 if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize,
Timeout, tickstart) !=
HAL_OK)
2702 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c,
Timeout, tickstart) !=
HAL_OK)
2835 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c,
Timeout, tickstart) !=
HAL_OK)
2893 __IO uint32_t count = 0U;
2981 __IO uint32_t count = 0U;
3075 __IO uint32_t count = 0U;
3144 if (dmaxferstatus ==
HAL_OK)
3147 if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) !=
HAL_OK)
3242 __IO uint32_t count = 0U;
3308 if (dmaxferstatus ==
HAL_OK)
3311 if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) !=
HAL_OK)
3381 if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) !=
HAL_OK)
3421 uint32_t I2C_Trials = 1U;
3526 while (I2C_Trials < Trials);
3555 __IO uint32_t Prev_State = 0x00U;
3556 __IO uint32_t count = 0x00U;
3653 __IO uint32_t Prev_State = 0x00U;
3654 __IO uint32_t count = 0x00U;
3727 if (dmaxferstatus ==
HAL_OK)
3819 __IO uint32_t Prev_State = 0x00U;
3820 __IO uint32_t count = 0U;
3880 if (Prev_State == I2C_STATE_MASTER_BUSY_RX)
3943 __IO uint32_t Prev_State = 0x00U;
3944 __IO uint32_t count = 0U;
4010 if (Prev_State == I2C_STATE_MASTER_BUSY_RX)
4052 if (dmaxferstatus ==
HAL_OK)
4151 if ((pData ==
NULL) || (Size == 0U))
4219 if ((pData ==
NULL) || (Size == 0U))
4314 if (dmaxferstatus ==
HAL_OK)
4374 if ((pData ==
NULL) || (Size == 0U))
4442 if ((pData ==
NULL) || (Size == 0U))
4537 if (dmaxferstatus ==
HAL_OK)
4627 tmp = (uint32_t)(hi2c->
State) & I2C_STATE_MSK;
4715 uint32_t sr1itflags;
4716 uint32_t sr2itflags = 0U;
4738 I2C_ConvertOtherXferOptions(hi2c);
4740 I2C_Master_SB(hi2c);
4745 I2C_Master_ADD10(hi2c);
4750 I2C_Master_ADDR(hi2c);
4761 I2C_MasterTransmit_TXE(hi2c);
4768 I2C_MasterTransmit_BTF(hi2c);
4772 I2C_MemoryTransmit_TXE_BTF(hi2c);
4790 I2C_MasterReceive_RXNE(hi2c);
4795 I2C_MasterReceive_BTF(hi2c);
4827 I2C_Slave_ADDR(hi2c, sr2itflags);
4832 I2C_Slave_STOPF(hi2c);
4840 I2C_SlaveTransmit_TXE(hi2c);
4845 I2C_SlaveTransmit_BTF(hi2c);
4858 I2C_SlaveReceive_RXNE(hi2c);
4863 I2C_SlaveReceive_BTF(hi2c);
5031 UNUSED(TransferDirection);
5208 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5209 hi2c->MasterTxCpltCallback(hi2c);
5228 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5229 hi2c->MemTxCpltCallback(hi2c);
5237 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5238 hi2c->MasterTxCpltCallback(hi2c);
5257 I2C_MemoryTransmit_TXE_BTF(hi2c);
5313 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5314 hi2c->MasterTxCpltCallback(hi2c);
5331 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5332 hi2c->MasterTxCpltCallback(hi2c);
5412 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5413 hi2c->MemTxCpltCallback(hi2c);
5463 if (I2C_WaitOnSTOPRequestThroughIT(hi2c) ==
HAL_OK)
5487 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5488 hi2c->MemRxCpltCallback(hi2c);
5498 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5499 hi2c->MasterRxCpltCallback(hi2c);
5524 hi2c->ErrorCallback(hi2c);
5633 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5634 hi2c->MemRxCpltCallback(hi2c);
5643 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5644 hi2c->MasterRxCpltCallback(hi2c);
5787 if (CurrentXferOptions == I2C_NO_OPTION_FRAME)
5811 && ((Prev_State != I2C_STATE_MASTER_BUSY_RX) || (CurrentXferOptions ==
I2C_FIRST_FRAME)))
5925 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5926 hi2c->SlaveTxCpltCallback(hi2c);
5987 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
5988 hi2c->SlaveRxCpltCallback(hi2c);
6027 uint16_t SlaveAddrCode;
6053 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6054 hi2c->AddrCallback(hi2c, TransferDirection, SlaveAddrCode);
6200 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6201 hi2c->SlaveRxCpltCallback(hi2c);
6215 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6216 hi2c->ListenCpltCallback(hi2c);
6229 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6230 hi2c->SlaveRxCpltCallback(hi2c);
6269 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6270 hi2c->ListenCpltCallback(hi2c);
6291 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6292 hi2c->SlaveTxCpltCallback(hi2c);
6315 uint32_t CurrentError;
6410 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6411 hi2c->AbortCpltCallback(hi2c);
6429 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6430 hi2c->ErrorCallback(hi2c);
6450 CurrentState = hi2c->
State;
6459 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6460 hi2c->ListenCpltCallback(hi2c);
6674 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c,
Timeout, Tickstart) !=
HAL_OK)
6697 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c,
Timeout, Tickstart) !=
HAL_OK)
6757 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c,
Timeout, Tickstart) !=
HAL_OK)
6780 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c,
Timeout, Tickstart) !=
HAL_OK)
6795 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c,
Timeout, Tickstart) !=
HAL_OK)
6871 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6872 hi2c->SlaveTxCpltCallback(hi2c);
6884 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6885 hi2c->SlaveRxCpltCallback(hi2c);
6928 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6929 hi2c->ErrorCallback(hi2c);
6943 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6944 hi2c->MemRxCpltCallback(hi2c);
6954 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6955 hi2c->MasterRxCpltCallback(hi2c);
6995 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
6996 hi2c->ErrorCallback(hi2c);
7010 __IO uint32_t count = 0U;
7066 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
7067 hi2c->AbortCpltCallback(hi2c);
7093 #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1)
7094 hi2c->ErrorCallback(hi2c);
7201 if (I2C_IsAcknowledgeFailed(hi2c) !=
HAL_OK)
7239 if (I2C_IsAcknowledgeFailed(hi2c) !=
HAL_OK)
7277 if (I2C_IsAcknowledgeFailed(hi2c) !=
HAL_OK)
7307 __IO uint32_t count = 0U;