Lines Matching refs:hi2c

374 static void I2C_ITError(I2C_HandleTypeDef *hi2c);
376 static HAL_StatusTypeDef I2C_MasterRequestWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint3…
377 static HAL_StatusTypeDef I2C_MasterRequestRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32…
378 static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1…
379 static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16…
382 static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta…
383 static HAL_StatusTypeDef I2C_WaitOnMasterAddressFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t …
384 static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, u…
385 static HAL_StatusTypeDef I2C_WaitOnBTFFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, u…
386 static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, …
387 static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, …
388 static HAL_StatusTypeDef I2C_WaitOnSTOPRequestThroughIT(I2C_HandleTypeDef *hi2c);
389 static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c);
392 static void I2C_MasterTransmit_TXE(I2C_HandleTypeDef *hi2c);
393 static void I2C_MasterTransmit_BTF(I2C_HandleTypeDef *hi2c);
394 static void I2C_MasterReceive_RXNE(I2C_HandleTypeDef *hi2c);
395 static void I2C_MasterReceive_BTF(I2C_HandleTypeDef *hi2c);
396 static void I2C_Master_SB(I2C_HandleTypeDef *hi2c);
397 static void I2C_Master_ADD10(I2C_HandleTypeDef *hi2c);
398 static void I2C_Master_ADDR(I2C_HandleTypeDef *hi2c);
400 static void I2C_SlaveTransmit_TXE(I2C_HandleTypeDef *hi2c);
401 static void I2C_SlaveTransmit_BTF(I2C_HandleTypeDef *hi2c);
402 static void I2C_SlaveReceive_RXNE(I2C_HandleTypeDef *hi2c);
403 static void I2C_SlaveReceive_BTF(I2C_HandleTypeDef *hi2c);
404 static void I2C_Slave_ADDR(I2C_HandleTypeDef *hi2c, uint32_t IT2Flags);
405 static void I2C_Slave_STOPF(I2C_HandleTypeDef *hi2c);
406 static void I2C_Slave_AF(I2C_HandleTypeDef *hi2c);
408 static void I2C_MemoryTransmit_TXE_BTF(I2C_HandleTypeDef *hi2c);
411 static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c);
414 static void I2C_Flush_DR(I2C_HandleTypeDef *hi2c);
463 HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) in HAL_I2C_Init() argument
469 if (hi2c == NULL) in HAL_I2C_Init()
475 assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); in HAL_I2C_Init()
476 assert_param(IS_I2C_CLOCK_SPEED(hi2c->Init.ClockSpeed)); in HAL_I2C_Init()
477 assert_param(IS_I2C_DUTY_CYCLE(hi2c->Init.DutyCycle)); in HAL_I2C_Init()
478 assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); in HAL_I2C_Init()
479 assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); in HAL_I2C_Init()
480 assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); in HAL_I2C_Init()
481 assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); in HAL_I2C_Init()
482 assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); in HAL_I2C_Init()
483 assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); in HAL_I2C_Init()
485 if (hi2c->State == HAL_I2C_STATE_RESET) in HAL_I2C_Init()
488 hi2c->Lock = HAL_UNLOCKED; in HAL_I2C_Init()
492hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback */ in HAL_I2C_Init()
493hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback */ in HAL_I2C_Init()
494hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback */ in HAL_I2C_Init()
495hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback */ in HAL_I2C_Init()
496hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback */ in HAL_I2C_Init()
497hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback */ in HAL_I2C_Init()
498hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback */ in HAL_I2C_Init()
499hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_I2C_Init()
500hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ in HAL_I2C_Init()
501hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ in HAL_I2C_Init()
503 if (hi2c->MspInitCallback == NULL) in HAL_I2C_Init()
505 hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ in HAL_I2C_Init()
509 hi2c->MspInitCallback(hi2c); in HAL_I2C_Init()
512 HAL_I2C_MspInit(hi2c); in HAL_I2C_Init()
516 hi2c->State = HAL_I2C_STATE_BUSY; in HAL_I2C_Init()
519 __HAL_I2C_DISABLE(hi2c); in HAL_I2C_Init()
522 hi2c->Instance->CR1 |= I2C_CR1_SWRST; in HAL_I2C_Init()
523 hi2c->Instance->CR1 &= ~I2C_CR1_SWRST; in HAL_I2C_Init()
529 if (I2C_MIN_PCLK_FREQ(pclk1, hi2c->Init.ClockSpeed) == 1U) in HAL_I2C_Init()
539 MODIFY_REG(hi2c->Instance->CR2, I2C_CR2_FREQ, freqrange); in HAL_I2C_Init()
543 …MODIFY_REG(hi2c->Instance->TRISE, I2C_TRISE_TRISE, I2C_RISE_TIME(freqrange, hi2c->Init.ClockSpeed)… in HAL_I2C_Init()
547 …MODIFY_REG(hi2c->Instance->CCR, (I2C_CCR_FS | I2C_CCR_DUTY | I2C_CCR_CCR), I2C_SPEED(pclk1, hi2c->… in HAL_I2C_Init()
551 …MODIFY_REG(hi2c->Instance->CR1, (I2C_CR1_ENGC | I2C_CR1_NOSTRETCH), (hi2c->Init.GeneralCallMode | in HAL_I2C_Init()
555 …MODIFY_REG(hi2c->Instance->OAR1, (I2C_OAR1_ADDMODE | I2C_OAR1_ADD8_9 | I2C_OAR1_ADD1_7 | I2C_OAR1_… in HAL_I2C_Init()
559 …MODIFY_REG(hi2c->Instance->OAR2, (I2C_OAR2_ENDUAL | I2C_OAR2_ADD2), (hi2c->Init.DualAddressMode | in HAL_I2C_Init()
562 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Init()
564 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Init()
565 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Init()
566 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Init()
567 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Init()
578 HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) in HAL_I2C_DeInit() argument
581 if (hi2c == NULL) in HAL_I2C_DeInit()
587 assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); in HAL_I2C_DeInit()
589 hi2c->State = HAL_I2C_STATE_BUSY; in HAL_I2C_DeInit()
592 __HAL_I2C_DISABLE(hi2c); in HAL_I2C_DeInit()
595 if (hi2c->MspDeInitCallback == NULL) in HAL_I2C_DeInit()
597 hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ in HAL_I2C_DeInit()
601 hi2c->MspDeInitCallback(hi2c); in HAL_I2C_DeInit()
604 HAL_I2C_MspDeInit(hi2c); in HAL_I2C_DeInit()
607 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_DeInit()
608 hi2c->State = HAL_I2C_STATE_RESET; in HAL_I2C_DeInit()
609 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_DeInit()
610 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_DeInit()
613 __HAL_UNLOCK(hi2c); in HAL_I2C_DeInit()
624 __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) in HAL_I2C_MspInit() argument
627 UNUSED(hi2c); in HAL_I2C_MspInit()
640 __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) in HAL_I2C_MspDeInit() argument
643 UNUSED(hi2c); in HAL_I2C_MspDeInit()
672 HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb… in HAL_I2C_RegisterCallback() argument
679 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_RegisterCallback()
684 __HAL_LOCK(hi2c); in HAL_I2C_RegisterCallback()
686 if (HAL_I2C_STATE_READY == hi2c->State) in HAL_I2C_RegisterCallback()
691 hi2c->MasterTxCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
695 hi2c->MasterRxCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
699 hi2c->SlaveTxCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
703 hi2c->SlaveRxCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
707 hi2c->ListenCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
711 hi2c->MemTxCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
715 hi2c->MemRxCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
719 hi2c->ErrorCallback = pCallback; in HAL_I2C_RegisterCallback()
723 hi2c->AbortCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
727 hi2c->MspInitCallback = pCallback; in HAL_I2C_RegisterCallback()
731 hi2c->MspDeInitCallback = pCallback; in HAL_I2C_RegisterCallback()
736 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_RegisterCallback()
743 else if (HAL_I2C_STATE_RESET == hi2c->State) in HAL_I2C_RegisterCallback()
748 hi2c->MspInitCallback = pCallback; in HAL_I2C_RegisterCallback()
752 hi2c->MspDeInitCallback = pCallback; in HAL_I2C_RegisterCallback()
757 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_RegisterCallback()
767 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_RegisterCallback()
774 __HAL_UNLOCK(hi2c); in HAL_I2C_RegisterCallback()
799 HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal… in HAL_I2C_UnRegisterCallback() argument
804 __HAL_LOCK(hi2c); in HAL_I2C_UnRegisterCallback()
806 if (HAL_I2C_STATE_READY == hi2c->State) in HAL_I2C_UnRegisterCallback()
811hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback */ in HAL_I2C_UnRegisterCallback()
815hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback */ in HAL_I2C_UnRegisterCallback()
819hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback */ in HAL_I2C_UnRegisterCallback()
823hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback */ in HAL_I2C_UnRegisterCallback()
827hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback */ in HAL_I2C_UnRegisterCallback()
831hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback */ in HAL_I2C_UnRegisterCallback()
835hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback */ in HAL_I2C_UnRegisterCallback()
839hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_I2C_UnRegisterCallback()
843hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ in HAL_I2C_UnRegisterCallback()
847hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ in HAL_I2C_UnRegisterCallback()
851hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ in HAL_I2C_UnRegisterCallback()
856 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_UnRegisterCallback()
863 else if (HAL_I2C_STATE_RESET == hi2c->State) in HAL_I2C_UnRegisterCallback()
868hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ in HAL_I2C_UnRegisterCallback()
872hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ in HAL_I2C_UnRegisterCallback()
877 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_UnRegisterCallback()
887 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_UnRegisterCallback()
894 __HAL_UNLOCK(hi2c); in HAL_I2C_UnRegisterCallback()
906 HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC… in HAL_I2C_RegisterAddrCallback() argument
913 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_RegisterAddrCallback()
918 __HAL_LOCK(hi2c); in HAL_I2C_RegisterAddrCallback()
920 if (HAL_I2C_STATE_READY == hi2c->State) in HAL_I2C_RegisterAddrCallback()
922 hi2c->AddrCallback = pCallback; in HAL_I2C_RegisterAddrCallback()
927 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_RegisterAddrCallback()
934 __HAL_UNLOCK(hi2c); in HAL_I2C_RegisterAddrCallback()
945 HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_UnRegisterAddrCallback() argument
950 __HAL_LOCK(hi2c); in HAL_I2C_UnRegisterAddrCallback()
952 if (HAL_I2C_STATE_READY == hi2c->State) in HAL_I2C_UnRegisterAddrCallback()
954 hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ in HAL_I2C_UnRegisterAddrCallback()
959 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_UnRegisterAddrCallback()
966 __HAL_UNLOCK(hi2c); in HAL_I2C_UnRegisterAddrCallback()
977 static void I2C_Flush_DR(I2C_HandleTypeDef *hi2c) in I2C_Flush_DR() argument
980 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) != RESET) in I2C_Flush_DR()
982 hi2c->Instance->DR = 0x00U; in I2C_Flush_DR()
1074 HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD… in HAL_I2C_Master_Transmit() argument
1079 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Transmit()
1082 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_Master_Transmit()
1088 __HAL_LOCK(hi2c); in HAL_I2C_Master_Transmit()
1091 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Transmit()
1094 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Transmit()
1098 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Transmit()
1100 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Master_Transmit()
1101 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Transmit()
1102 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Transmit()
1105 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Transmit()
1106 hi2c->XferCount = Size; in HAL_I2C_Master_Transmit()
1107 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Transmit()
1108 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Master_Transmit()
1111 if (I2C_MasterRequestWrite(hi2c, DevAddress, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Transmit()
1117 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Master_Transmit()
1119 while (hi2c->XferSize > 0U) in HAL_I2C_Master_Transmit()
1122 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Transmit()
1124 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in HAL_I2C_Master_Transmit()
1127 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Transmit()
1133 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Master_Transmit()
1136 hi2c->pBuffPtr++; in HAL_I2C_Master_Transmit()
1139 hi2c->XferCount--; in HAL_I2C_Master_Transmit()
1140 hi2c->XferSize--; in HAL_I2C_Master_Transmit()
1142 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) in HAL_I2C_Master_Transmit()
1145 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Master_Transmit()
1148 hi2c->pBuffPtr++; in HAL_I2C_Master_Transmit()
1151 hi2c->XferCount--; in HAL_I2C_Master_Transmit()
1152 hi2c->XferSize--; in HAL_I2C_Master_Transmit()
1156 if (I2C_WaitOnBTFFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Transmit()
1158 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in HAL_I2C_Master_Transmit()
1161 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Transmit()
1168 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Transmit()
1170 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Transmit()
1171 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Transmit()
1174 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit()
1195 HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa… in HAL_I2C_Master_Receive() argument
1202 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Receive()
1205 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_Master_Receive()
1211 __HAL_LOCK(hi2c); in HAL_I2C_Master_Receive()
1214 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Receive()
1217 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Receive()
1221 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Receive()
1223 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Master_Receive()
1224 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Receive()
1225 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Receive()
1228 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Receive()
1229 hi2c->XferCount = Size; in HAL_I2C_Master_Receive()
1230 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Receive()
1231 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Master_Receive()
1234 if (I2C_MasterRequestRead(hi2c, DevAddress, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Receive()
1239 if (hi2c->XferSize == 0U) in HAL_I2C_Master_Receive()
1242 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Master_Receive()
1245 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Receive()
1247 else if (hi2c->XferSize == 1U) in HAL_I2C_Master_Receive()
1250 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive()
1257 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Master_Receive()
1260 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Receive()
1265 else if (hi2c->XferSize == 2U) in HAL_I2C_Master_Receive()
1268 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Receive()
1275 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Master_Receive()
1278 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive()
1286 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive()
1289 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Master_Receive()
1292 while (hi2c->XferSize > 0U) in HAL_I2C_Master_Receive()
1294 if (hi2c->XferSize <= 3U) in HAL_I2C_Master_Receive()
1297 if (hi2c->XferSize == 1U) in HAL_I2C_Master_Receive()
1300 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Receive()
1306 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1309 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1312 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1313 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1316 else if (hi2c->XferSize == 2U) in HAL_I2C_Master_Receive()
1319 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Receive()
1329 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Receive()
1332 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1335 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1338 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1339 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1345 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1348 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1351 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1352 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1358 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Receive()
1364 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive()
1371 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1374 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1377 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1378 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1387 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Receive()
1388 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive()
1389 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive()
1390 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Receive()
1396 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive()
1401 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET); in HAL_I2C_Master_Receive()
1404 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Receive()
1407 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1410 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1413 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1414 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1420 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1423 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1426 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1427 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1433 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Receive()
1439 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1442 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1445 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1446 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1448 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) in HAL_I2C_Master_Receive()
1451 if (hi2c->XferSize == 3U) in HAL_I2C_Master_Receive()
1454 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive()
1458 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1461 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1464 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1465 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1470 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive()
1471 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive()
1474 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive()
1493 HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, ui… in HAL_I2C_Slave_Transmit() argument
1498 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Transmit()
1506 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Transmit()
1509 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Transmit()
1512 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Transmit()
1516 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Transmit()
1518 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Slave_Transmit()
1519 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Transmit()
1520 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Transmit()
1523 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Transmit()
1524 hi2c->XferCount = Size; in HAL_I2C_Slave_Transmit()
1525 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Transmit()
1526 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Transmit()
1529 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Transmit()
1532 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Transmit()
1538 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Transmit()
1541 if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) in HAL_I2C_Slave_Transmit()
1544 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Transmit()
1550 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Transmit()
1553 while (hi2c->XferSize > 0U) in HAL_I2C_Slave_Transmit()
1556 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Transmit()
1559 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Transmit()
1565 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Slave_Transmit()
1568 hi2c->pBuffPtr++; in HAL_I2C_Slave_Transmit()
1571 hi2c->XferCount--; in HAL_I2C_Slave_Transmit()
1572 hi2c->XferSize--; in HAL_I2C_Slave_Transmit()
1574 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) in HAL_I2C_Slave_Transmit()
1577 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Slave_Transmit()
1580 hi2c->pBuffPtr++; in HAL_I2C_Slave_Transmit()
1583 hi2c->XferCount--; in HAL_I2C_Slave_Transmit()
1584 hi2c->XferSize--; in HAL_I2C_Slave_Transmit()
1589 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Transmit()
1595 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_Slave_Transmit()
1598 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Transmit()
1600 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Transmit()
1601 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Transmit()
1604 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Transmit()
1623 HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uin… in HAL_I2C_Slave_Receive() argument
1628 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Receive()
1636 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Receive()
1639 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Receive()
1642 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Receive()
1646 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Receive()
1648 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Slave_Receive()
1649 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Receive()
1650 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Receive()
1653 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Receive()
1654 hi2c->XferCount = Size; in HAL_I2C_Slave_Receive()
1655 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Receive()
1656 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Receive()
1659 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Receive()
1662 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Receive()
1668 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Receive()
1670 while (hi2c->XferSize > 0U) in HAL_I2C_Slave_Receive()
1673 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Receive()
1676 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Receive()
1682 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Slave_Receive()
1685 hi2c->pBuffPtr++; in HAL_I2C_Slave_Receive()
1688 hi2c->XferSize--; in HAL_I2C_Slave_Receive()
1689 hi2c->XferCount--; in HAL_I2C_Slave_Receive()
1691 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) in HAL_I2C_Slave_Receive()
1694 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Slave_Receive()
1697 hi2c->pBuffPtr++; in HAL_I2C_Slave_Receive()
1700 hi2c->XferSize--; in HAL_I2C_Slave_Receive()
1701 hi2c->XferCount--; in HAL_I2C_Slave_Receive()
1706 if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Receive()
1709 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Receive()
1715 __HAL_I2C_CLEAR_STOPFLAG(hi2c); in HAL_I2C_Slave_Receive()
1718 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Receive()
1720 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Receive()
1721 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Receive()
1724 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Receive()
1744 HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t … in HAL_I2C_Master_Transmit_IT() argument
1748 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Transmit_IT()
1757 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Transmit_IT()
1758 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Transmit_IT()
1759 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Transmit_IT()
1760 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Transmit_IT()
1765 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Transmit_IT()
1768 __HAL_LOCK(hi2c); in HAL_I2C_Master_Transmit_IT()
1771 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Transmit_IT()
1774 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Transmit_IT()
1778 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Transmit_IT()
1780 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Master_Transmit_IT()
1781 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Transmit_IT()
1782 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Transmit_IT()
1785 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Transmit_IT()
1786 hi2c->XferCount = Size; in HAL_I2C_Master_Transmit_IT()
1787 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Transmit_IT()
1788 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Master_Transmit_IT()
1789 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Transmit_IT()
1792 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_IT()
1798 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Transmit_IT()
1801 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Transmit_IT()
1821 HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *… in HAL_I2C_Master_Receive_IT() argument
1825 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Receive_IT()
1834 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Receive_IT()
1835 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive_IT()
1836 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive_IT()
1837 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Receive_IT()
1842 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Receive_IT()
1845 __HAL_LOCK(hi2c); in HAL_I2C_Master_Receive_IT()
1848 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Receive_IT()
1851 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Receive_IT()
1855 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Receive_IT()
1857 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Master_Receive_IT()
1858 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Receive_IT()
1859 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Receive_IT()
1862 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Receive_IT()
1863 hi2c->XferCount = Size; in HAL_I2C_Master_Receive_IT()
1864 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Receive_IT()
1865 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Master_Receive_IT()
1866 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Receive_IT()
1870 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_IT()
1877 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Receive_IT()
1880 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive_IT()
1883 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Receive_IT()
1901 HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) in HAL_I2C_Slave_Transmit_IT() argument
1904 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Transmit_IT()
1912 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Transmit_IT()
1915 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Transmit_IT()
1918 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Transmit_IT()
1922 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Transmit_IT()
1924 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Slave_Transmit_IT()
1925 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Transmit_IT()
1926 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Transmit_IT()
1929 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Transmit_IT()
1930 hi2c->XferCount = Size; in HAL_I2C_Slave_Transmit_IT()
1931 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Transmit_IT()
1932 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Transmit_IT()
1935 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Transmit_IT()
1938 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Transmit_IT()
1945 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Slave_Transmit_IT()
1963 HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) in HAL_I2C_Slave_Receive_IT() argument
1966 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Receive_IT()
1974 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Receive_IT()
1977 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Receive_IT()
1980 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Receive_IT()
1984 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Receive_IT()
1986 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Slave_Receive_IT()
1987 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Receive_IT()
1988 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Receive_IT()
1991 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Receive_IT()
1992 hi2c->XferCount = Size; in HAL_I2C_Slave_Receive_IT()
1993 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Receive_IT()
1994 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Receive_IT()
1997 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Receive_IT()
2000 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Receive_IT()
2007 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Slave_Receive_IT()
2027 HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t… in HAL_I2C_Master_Transmit_DMA() argument
2032 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Transmit_DMA()
2041 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Transmit_DMA()
2042 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Transmit_DMA()
2043 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Transmit_DMA()
2044 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Transmit_DMA()
2049 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Transmit_DMA()
2052 __HAL_LOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
2055 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Transmit_DMA()
2058 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Transmit_DMA()
2062 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Transmit_DMA()
2064 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Master_Transmit_DMA()
2065 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Transmit_DMA()
2066 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Transmit_DMA()
2069 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Transmit_DMA()
2070 hi2c->XferCount = Size; in HAL_I2C_Master_Transmit_DMA()
2071 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Transmit_DMA()
2072 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Master_Transmit_DMA()
2073 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Transmit_DMA()
2075 if (hi2c->XferSize > 0U) in HAL_I2C_Master_Transmit_DMA()
2077 if (hi2c->hdmatx != NULL) in HAL_I2C_Master_Transmit_DMA()
2080 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Master_Transmit_DMA()
2083 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Master_Transmit_DMA()
2086 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Master_Transmit_DMA()
2087 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Master_Transmit_DMA()
2090 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Master_Transmit_DMA()
2095 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Transmit_DMA()
2096 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Transmit_DMA()
2099 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Master_Transmit_DMA()
2102 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
2110 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
2117 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Master_Transmit_DMA()
2120 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Master_Transmit_DMA()
2123 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Transmit_DMA()
2126 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Transmit_DMA()
2131 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Transmit_DMA()
2132 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Transmit_DMA()
2135 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Master_Transmit_DMA()
2138 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
2146 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Transmit_DMA()
2149 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Transmit_DMA()
2152 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
2159 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Transmit_DMA()
2180 HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t … in HAL_I2C_Master_Receive_DMA() argument
2185 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Receive_DMA()
2194 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Receive_DMA()
2195 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive_DMA()
2196 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive_DMA()
2197 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Receive_DMA()
2202 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Receive_DMA()
2205 __HAL_LOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2208 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Receive_DMA()
2211 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Receive_DMA()
2215 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Receive_DMA()
2217 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Master_Receive_DMA()
2218 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Receive_DMA()
2219 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Receive_DMA()
2222 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Receive_DMA()
2223 hi2c->XferCount = Size; in HAL_I2C_Master_Receive_DMA()
2224 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Receive_DMA()
2225 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Master_Receive_DMA()
2226 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Receive_DMA()
2228 if (hi2c->XferSize > 0U) in HAL_I2C_Master_Receive_DMA()
2230 if (hi2c->hdmarx != NULL) in HAL_I2C_Master_Receive_DMA()
2233 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Master_Receive_DMA()
2236 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Master_Receive_DMA()
2239 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Master_Receive_DMA()
2240 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Master_Receive_DMA()
2243 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Master_Receive_DMA()
2248 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive_DMA()
2249 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive_DMA()
2252 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Master_Receive_DMA()
2255 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2263 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive_DMA()
2266 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Receive_DMA()
2269 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2276 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Master_Receive_DMA()
2279 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Master_Receive_DMA()
2284 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive_DMA()
2285 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive_DMA()
2288 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Master_Receive_DMA()
2291 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2299 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2306 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Receive_DMA()
2309 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive_DMA()
2312 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Receive_DMA()
2331 HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) in HAL_I2C_Slave_Transmit_DMA() argument
2335 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Transmit_DMA()
2343 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2346 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Transmit_DMA()
2349 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2353 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Transmit_DMA()
2355 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Slave_Transmit_DMA()
2356 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Transmit_DMA()
2357 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Transmit_DMA()
2360 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Transmit_DMA()
2361 hi2c->XferCount = Size; in HAL_I2C_Slave_Transmit_DMA()
2362 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Transmit_DMA()
2363 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Transmit_DMA()
2365 if (hi2c->hdmatx != NULL) in HAL_I2C_Slave_Transmit_DMA()
2368 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Slave_Transmit_DMA()
2371 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Slave_Transmit_DMA()
2374 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Slave_Transmit_DMA()
2375 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Slave_Transmit_DMA()
2378 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Slave_Transmit_DMA()
2383 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_Slave_Transmit_DMA()
2384 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Transmit_DMA()
2387 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Slave_Transmit_DMA()
2390 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2398 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Transmit_DMA()
2401 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2407 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Transmit_DMA()
2410 hi2c->Instance->CR2 |= I2C_CR2_DMAEN; in HAL_I2C_Slave_Transmit_DMA()
2417 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Transmit_DMA()
2418 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Transmit_DMA()
2421 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Slave_Transmit_DMA()
2424 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2443 HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) in HAL_I2C_Slave_Receive_DMA() argument
2447 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Receive_DMA()
2455 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Receive_DMA()
2458 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Receive_DMA()
2461 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Receive_DMA()
2465 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Receive_DMA()
2467 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Slave_Receive_DMA()
2468 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Receive_DMA()
2469 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Receive_DMA()
2472 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Receive_DMA()
2473 hi2c->XferCount = Size; in HAL_I2C_Slave_Receive_DMA()
2474 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Receive_DMA()
2475 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Receive_DMA()
2477 if (hi2c->hdmarx != NULL) in HAL_I2C_Slave_Receive_DMA()
2480 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Slave_Receive_DMA()
2483 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Slave_Receive_DMA()
2486 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Slave_Receive_DMA()
2487 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Slave_Receive_DMA()
2490 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Slave_Receive_DMA()
2495 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_Slave_Receive_DMA()
2496 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Receive_DMA()
2499 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Slave_Receive_DMA()
2502 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Receive_DMA()
2510 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Receive_DMA()
2513 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Receive_DMA()
2519 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Receive_DMA()
2522 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Receive_DMA()
2529 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Receive_DMA()
2530 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Receive_DMA()
2533 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Slave_Receive_DMA()
2536 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Receive_DMA()
2560 HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre… in HAL_I2C_Mem_Write() argument
2568 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Write()
2571 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_Mem_Write()
2577 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Write()
2580 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Write()
2583 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Write()
2587 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Write()
2589 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Mem_Write()
2590 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Write()
2591 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Write()
2594 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Write()
2595 hi2c->XferCount = Size; in HAL_I2C_Mem_Write()
2596 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Write()
2597 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Write()
2600 …if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Write()
2605 while (hi2c->XferSize > 0U) in HAL_I2C_Mem_Write()
2608 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Write()
2610 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in HAL_I2C_Mem_Write()
2613 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Write()
2619 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Mem_Write()
2622 hi2c->pBuffPtr++; in HAL_I2C_Mem_Write()
2625 hi2c->XferSize--; in HAL_I2C_Mem_Write()
2626 hi2c->XferCount--; in HAL_I2C_Mem_Write()
2628 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) in HAL_I2C_Mem_Write()
2631 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Mem_Write()
2634 hi2c->pBuffPtr++; in HAL_I2C_Mem_Write()
2637 hi2c->XferSize--; in HAL_I2C_Mem_Write()
2638 hi2c->XferCount--; in HAL_I2C_Mem_Write()
2643 if (I2C_WaitOnBTFFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Write()
2645 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in HAL_I2C_Mem_Write()
2648 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Write()
2654 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Write()
2656 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write()
2657 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write()
2660 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write()
2683 HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres… in HAL_I2C_Mem_Read() argument
2693 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Read()
2696 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_Mem_Read()
2702 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Read()
2705 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Read()
2708 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Read()
2712 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Read()
2714 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Mem_Read()
2715 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Read()
2716 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Read()
2719 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Read()
2720 hi2c->XferCount = Size; in HAL_I2C_Mem_Read()
2721 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Read()
2722 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Read()
2725 … if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2730 if (hi2c->XferSize == 0U) in HAL_I2C_Mem_Read()
2733 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read()
2736 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read()
2738 else if (hi2c->XferSize == 1U) in HAL_I2C_Mem_Read()
2741 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read()
2748 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read()
2751 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read()
2756 else if (hi2c->XferSize == 2U) in HAL_I2C_Mem_Read()
2759 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Read()
2766 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read()
2769 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read()
2777 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read()
2779 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read()
2782 while (hi2c->XferSize > 0U) in HAL_I2C_Mem_Read()
2784 if (hi2c->XferSize <= 3U) in HAL_I2C_Mem_Read()
2787 if (hi2c->XferSize == 1U) in HAL_I2C_Mem_Read()
2790 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2796 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2799 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2802 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2803 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2806 else if (hi2c->XferSize == 2U) in HAL_I2C_Mem_Read()
2809 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2819 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read()
2822 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2825 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2828 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2829 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2835 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2838 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2841 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2842 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2848 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2854 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read()
2861 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2864 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2867 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2868 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2877 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Mem_Read()
2878 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read()
2879 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read()
2880 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Mem_Read()
2886 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read()
2891 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET); in HAL_I2C_Mem_Read()
2894 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read()
2897 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2900 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2903 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2904 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2910 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2913 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2916 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2917 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2923 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2929 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2932 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2935 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2936 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2938 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) in HAL_I2C_Mem_Read()
2940 if (hi2c->XferSize == 3U) in HAL_I2C_Mem_Read()
2943 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read()
2946 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2949 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2952 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2953 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2958 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read()
2959 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read()
2962 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read()
2984 HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd… in HAL_I2C_Mem_Write_IT() argument
2991 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Write_IT()
3000 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Mem_Write_IT()
3001 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_IT()
3002 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_IT()
3003 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Mem_Write_IT()
3008 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Mem_Write_IT()
3011 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Write_IT()
3014 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Write_IT()
3017 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Write_IT()
3021 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Write_IT()
3023 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Mem_Write_IT()
3024 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Write_IT()
3025 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Write_IT()
3028 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Write_IT()
3029 hi2c->XferCount = Size; in HAL_I2C_Mem_Write_IT()
3030 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Write_IT()
3031 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Write_IT()
3032 hi2c->Devaddress = DevAddress; in HAL_I2C_Mem_Write_IT()
3033 hi2c->Memaddress = MemAddress; in HAL_I2C_Mem_Write_IT()
3034 hi2c->MemaddSize = MemAddSize; in HAL_I2C_Mem_Write_IT()
3035 hi2c->EventCount = 0U; in HAL_I2C_Mem_Write_IT()
3038 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Mem_Write_IT()
3041 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_IT()
3048 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Mem_Write_IT()
3069 HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd… in HAL_I2C_Mem_Read_IT() argument
3076 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Read_IT()
3085 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Mem_Read_IT()
3086 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_IT()
3087 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read_IT()
3088 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Mem_Read_IT()
3093 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Mem_Read_IT()
3096 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Read_IT()
3099 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Read_IT()
3102 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Read_IT()
3106 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Read_IT()
3108 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Mem_Read_IT()
3109 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Read_IT()
3110 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Read_IT()
3113 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Read_IT()
3114 hi2c->XferCount = Size; in HAL_I2C_Mem_Read_IT()
3115 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Read_IT()
3116 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Read_IT()
3117 hi2c->Devaddress = DevAddress; in HAL_I2C_Mem_Read_IT()
3118 hi2c->Memaddress = MemAddress; in HAL_I2C_Mem_Read_IT()
3119 hi2c->MemaddSize = MemAddSize; in HAL_I2C_Mem_Read_IT()
3120 hi2c->EventCount = 0U; in HAL_I2C_Mem_Read_IT()
3123 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read_IT()
3126 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Mem_Read_IT()
3129 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_IT()
3131 if (hi2c->XferSize > 0U) in HAL_I2C_Mem_Read_IT()
3138 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Mem_Read_IT()
3160 HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA… in HAL_I2C_Mem_Write_DMA() argument
3171 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Write_DMA()
3180 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Mem_Write_DMA()
3181 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_DMA()
3182 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_DMA()
3183 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Mem_Write_DMA()
3188 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Mem_Write_DMA()
3191 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3194 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Write_DMA()
3197 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Write_DMA()
3201 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Write_DMA()
3203 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Mem_Write_DMA()
3204 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Write_DMA()
3205 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Write_DMA()
3208 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Write_DMA()
3209 hi2c->XferCount = Size; in HAL_I2C_Mem_Write_DMA()
3210 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Write_DMA()
3211 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Write_DMA()
3212 hi2c->Devaddress = DevAddress; in HAL_I2C_Mem_Write_DMA()
3213 hi2c->Memaddress = MemAddress; in HAL_I2C_Mem_Write_DMA()
3214 hi2c->MemaddSize = MemAddSize; in HAL_I2C_Mem_Write_DMA()
3215 hi2c->EventCount = 0U; in HAL_I2C_Mem_Write_DMA()
3217 if (hi2c->XferSize > 0U) in HAL_I2C_Mem_Write_DMA()
3219 if (hi2c->hdmatx != NULL) in HAL_I2C_Mem_Write_DMA()
3222 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Mem_Write_DMA()
3225 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Mem_Write_DMA()
3228 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Mem_Write_DMA()
3229 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Mem_Write_DMA()
3232 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Mem_Write_DMA()
3237 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_DMA()
3238 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_DMA()
3241 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Mem_Write_DMA()
3244 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3252 …if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) … in HAL_I2C_Mem_Write_DMA()
3255 dmaxferstatus = HAL_DMA_Abort_IT(hi2c->hdmatx); in HAL_I2C_Mem_Write_DMA()
3261 hi2c->hdmatx->XferCpltCallback = NULL; in HAL_I2C_Mem_Write_DMA()
3264 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Write_DMA()
3266 hi2c->XferSize = 0U; in HAL_I2C_Mem_Write_DMA()
3267 hi2c->XferCount = 0U; in HAL_I2C_Mem_Write_DMA()
3270 __HAL_I2C_DISABLE(hi2c); in HAL_I2C_Mem_Write_DMA()
3276 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Write_DMA()
3279 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3285 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_ERR); in HAL_I2C_Mem_Write_DMA()
3288 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Mem_Write_DMA()
3295 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_DMA()
3296 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_DMA()
3299 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Mem_Write_DMA()
3302 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3310 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_DMA()
3311 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_DMA()
3314 hi2c->ErrorCode |= HAL_I2C_ERROR_SIZE; in HAL_I2C_Mem_Write_DMA()
3317 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3340 HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd… in HAL_I2C_Mem_Read_DMA() argument
3350 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Read_DMA()
3359 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Mem_Read_DMA()
3360 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_DMA()
3361 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read_DMA()
3362 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Mem_Read_DMA()
3367 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Mem_Read_DMA()
3370 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3373 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Read_DMA()
3376 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Read_DMA()
3380 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Read_DMA()
3382 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Mem_Read_DMA()
3383 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Read_DMA()
3384 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Read_DMA()
3387 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Read_DMA()
3388 hi2c->XferCount = Size; in HAL_I2C_Mem_Read_DMA()
3389 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Read_DMA()
3390 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Read_DMA()
3391 hi2c->Devaddress = DevAddress; in HAL_I2C_Mem_Read_DMA()
3392 hi2c->Memaddress = MemAddress; in HAL_I2C_Mem_Read_DMA()
3393 hi2c->MemaddSize = MemAddSize; in HAL_I2C_Mem_Read_DMA()
3394 hi2c->EventCount = 0U; in HAL_I2C_Mem_Read_DMA()
3396 if (hi2c->XferSize > 0U) in HAL_I2C_Mem_Read_DMA()
3398 if (hi2c->hdmarx != NULL) in HAL_I2C_Mem_Read_DMA()
3401 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Mem_Read_DMA()
3404 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Mem_Read_DMA()
3407 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Mem_Read_DMA()
3408 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Mem_Read_DMA()
3411 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Mem_Read_DMA()
3416 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_DMA()
3417 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read_DMA()
3420 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Mem_Read_DMA()
3423 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3431 …if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) !… in HAL_I2C_Mem_Read_DMA()
3434 dmaxferstatus = HAL_DMA_Abort_IT(hi2c->hdmarx); in HAL_I2C_Mem_Read_DMA()
3440 hi2c->hdmarx->XferCpltCallback = NULL; in HAL_I2C_Mem_Read_DMA()
3443 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read_DMA()
3445 hi2c->XferSize = 0U; in HAL_I2C_Mem_Read_DMA()
3446 hi2c->XferCount = 0U; in HAL_I2C_Mem_Read_DMA()
3449 __HAL_I2C_DISABLE(hi2c); in HAL_I2C_Mem_Read_DMA()
3454 if (hi2c->XferSize == 1U) in HAL_I2C_Mem_Read_DMA()
3457 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read_DMA()
3462 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in HAL_I2C_Mem_Read_DMA()
3466 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read_DMA()
3469 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3475 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_ERR); in HAL_I2C_Mem_Read_DMA()
3478 hi2c->Instance->CR2 |= I2C_CR2_DMAEN; in HAL_I2C_Mem_Read_DMA()
3483 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_DMA()
3484 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read_DMA()
3487 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Mem_Read_DMA()
3490 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3498 …if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) !… in HAL_I2C_Mem_Read_DMA()
3504 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read_DMA()
3507 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read_DMA()
3509 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_DMA()
3512 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3534 HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria… in HAL_I2C_IsDeviceReady() argument
3542 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_IsDeviceReady()
3545 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_IsDeviceReady()
3551 __HAL_LOCK(hi2c); in HAL_I2C_IsDeviceReady()
3554 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_IsDeviceReady()
3557 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_IsDeviceReady()
3561 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_IsDeviceReady()
3563 hi2c->State = HAL_I2C_STATE_BUSY; in HAL_I2C_IsDeviceReady()
3564 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_IsDeviceReady()
3565 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_IsDeviceReady()
3570 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_IsDeviceReady()
3573 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_IsDeviceReady()
3575 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in HAL_I2C_IsDeviceReady()
3577 hi2c->ErrorCode = HAL_I2C_WRONG_START; in HAL_I2C_IsDeviceReady()
3583 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); in HAL_I2C_IsDeviceReady()
3589 tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); in HAL_I2C_IsDeviceReady()
3590 tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_IsDeviceReady()
3591 while ((hi2c->State != HAL_I2C_STATE_TIMEOUT) && (tmp1 == RESET) && (tmp2 == RESET)) in HAL_I2C_IsDeviceReady()
3595 hi2c->State = HAL_I2C_STATE_TIMEOUT; in HAL_I2C_IsDeviceReady()
3597 tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); in HAL_I2C_IsDeviceReady()
3598 tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_IsDeviceReady()
3601 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_IsDeviceReady()
3604 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR) == SET) in HAL_I2C_IsDeviceReady()
3607 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_IsDeviceReady()
3610 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_IsDeviceReady()
3613 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_IsDeviceReady()
3618 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_IsDeviceReady()
3621 __HAL_UNLOCK(hi2c); in HAL_I2C_IsDeviceReady()
3628 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_IsDeviceReady()
3631 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_IsDeviceReady()
3634 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_IsDeviceReady()
3645 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_IsDeviceReady()
3648 __HAL_UNLOCK(hi2c); in HAL_I2C_IsDeviceReady()
3670 HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint… in HAL_I2C_Master_Seq_Transmit_IT() argument
3678 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Seq_Transmit_IT()
3681 …if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND… in HAL_I2C_Master_Seq_Transmit_IT()
3690 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Seq_Transmit_IT()
3691 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Transmit_IT()
3692 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Transmit_IT()
3693 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Seq_Transmit_IT()
3698 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Seq_Transmit_IT()
3702 __HAL_LOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_IT()
3705 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Seq_Transmit_IT()
3708 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Seq_Transmit_IT()
3712 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Transmit_IT()
3714 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Master_Seq_Transmit_IT()
3715 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Seq_Transmit_IT()
3716 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Seq_Transmit_IT()
3719 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Seq_Transmit_IT()
3720 hi2c->XferCount = Size; in HAL_I2C_Master_Seq_Transmit_IT()
3721 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Seq_Transmit_IT()
3722 hi2c->XferOptions = XferOptions; in HAL_I2C_Master_Seq_Transmit_IT()
3723 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Seq_Transmit_IT()
3725 Prev_State = hi2c->PreviousState; in HAL_I2C_Master_Seq_Transmit_IT()
3732 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Transmit_IT()
3736 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_IT()
3743 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Seq_Transmit_IT()
3765 HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin… in HAL_I2C_Master_Seq_Transmit_DMA() argument
3774 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Seq_Transmit_DMA()
3777 …if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND… in HAL_I2C_Master_Seq_Transmit_DMA()
3786 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3787 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Transmit_DMA()
3788 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3789 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Seq_Transmit_DMA()
3794 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Seq_Transmit_DMA()
3798 __HAL_LOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3801 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Seq_Transmit_DMA()
3804 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3808 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Transmit_DMA()
3810 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Master_Seq_Transmit_DMA()
3811 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Seq_Transmit_DMA()
3812 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3815 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Seq_Transmit_DMA()
3816 hi2c->XferCount = Size; in HAL_I2C_Master_Seq_Transmit_DMA()
3817 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Seq_Transmit_DMA()
3818 hi2c->XferOptions = XferOptions; in HAL_I2C_Master_Seq_Transmit_DMA()
3819 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Seq_Transmit_DMA()
3821 Prev_State = hi2c->PreviousState; in HAL_I2C_Master_Seq_Transmit_DMA()
3823 if (hi2c->XferSize > 0U) in HAL_I2C_Master_Seq_Transmit_DMA()
3825 if (hi2c->hdmatx != NULL) in HAL_I2C_Master_Seq_Transmit_DMA()
3828 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Master_Seq_Transmit_DMA()
3831 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Master_Seq_Transmit_DMA()
3834 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Master_Seq_Transmit_DMA()
3835 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Master_Seq_Transmit_DMA()
3838 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Master_Seq_Transmit_DMA()
3843 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Transmit_DMA()
3844 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3847 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Master_Seq_Transmit_DMA()
3850 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3858 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Transmit_DMA()
3865 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Transmit_DMA()
3869 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3880 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Master_Seq_Transmit_DMA()
3884 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Master_Seq_Transmit_DMA()
3889 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Transmit_DMA()
3890 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3893 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Master_Seq_Transmit_DMA()
3896 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3904 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Transmit_DMA()
3911 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Transmit_DMA()
3915 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3922 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Seq_Transmit_DMA()
3945 HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8… in HAL_I2C_Master_Seq_Receive_IT() argument
3954 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Seq_Receive_IT()
3957 …if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND… in HAL_I2C_Master_Seq_Receive_IT()
3966 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Seq_Receive_IT()
3967 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Receive_IT()
3968 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Receive_IT()
3969 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Seq_Receive_IT()
3974 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Seq_Receive_IT()
3978 __HAL_LOCK(hi2c); in HAL_I2C_Master_Seq_Receive_IT()
3981 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Seq_Receive_IT()
3984 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Seq_Receive_IT()
3988 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Receive_IT()
3990 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Master_Seq_Receive_IT()
3991 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Seq_Receive_IT()
3992 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Seq_Receive_IT()
3995 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Seq_Receive_IT()
3996 hi2c->XferCount = Size; in HAL_I2C_Master_Seq_Receive_IT()
3997 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Seq_Receive_IT()
3998 hi2c->XferOptions = XferOptions; in HAL_I2C_Master_Seq_Receive_IT()
3999 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Seq_Receive_IT()
4001 Prev_State = hi2c->PreviousState; in HAL_I2C_Master_Seq_Receive_IT()
4003 …if ((hi2c->XferCount == 2U) && ((XferOptions == I2C_LAST_FRAME) || (XferOptions == I2C_LAST_FRAME_… in HAL_I2C_Master_Seq_Receive_IT()
4008 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_IT()
4011 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Receive_IT()
4019 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_IT()
4025 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_IT()
4033 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Receive_IT()
4037 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_IT()
4044 __HAL_I2C_ENABLE_IT(hi2c, enableIT); in HAL_I2C_Master_Seq_Receive_IT()
4066 HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint… in HAL_I2C_Master_Seq_Receive_DMA() argument
4076 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Seq_Receive_DMA()
4079 …if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND… in HAL_I2C_Master_Seq_Receive_DMA()
4088 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
4089 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Receive_DMA()
4090 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
4091 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Seq_Receive_DMA()
4096 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Seq_Receive_DMA()
4100 __HAL_LOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4103 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Seq_Receive_DMA()
4106 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4110 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Receive_DMA()
4113 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in HAL_I2C_Master_Seq_Receive_DMA()
4115 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Master_Seq_Receive_DMA()
4116 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Seq_Receive_DMA()
4117 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
4120 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Seq_Receive_DMA()
4121 hi2c->XferCount = Size; in HAL_I2C_Master_Seq_Receive_DMA()
4122 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Seq_Receive_DMA()
4123 hi2c->XferOptions = XferOptions; in HAL_I2C_Master_Seq_Receive_DMA()
4124 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Seq_Receive_DMA()
4126 Prev_State = hi2c->PreviousState; in HAL_I2C_Master_Seq_Receive_DMA()
4128 if (hi2c->XferSize > 0U) in HAL_I2C_Master_Seq_Receive_DMA()
4130 …if ((hi2c->XferCount == 2U) && ((XferOptions == I2C_LAST_FRAME) || (XferOptions == I2C_LAST_FRAME_… in HAL_I2C_Master_Seq_Receive_DMA()
4135 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_DMA()
4138 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Receive_DMA()
4141 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in HAL_I2C_Master_Seq_Receive_DMA()
4146 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_DMA()
4152 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_DMA()
4157 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in HAL_I2C_Master_Seq_Receive_DMA()
4160 if (hi2c->hdmarx != NULL) in HAL_I2C_Master_Seq_Receive_DMA()
4163 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Master_Seq_Receive_DMA()
4166 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Master_Seq_Receive_DMA()
4169 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Master_Seq_Receive_DMA()
4170 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Master_Seq_Receive_DMA()
4173 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Master_Seq_Receive_DMA()
4178 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Receive_DMA()
4179 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
4182 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Master_Seq_Receive_DMA()
4185 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4196 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Receive_DMA()
4208 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4219 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Master_Seq_Receive_DMA()
4223 __HAL_I2C_ENABLE_IT(hi2c, enableIT); in HAL_I2C_Master_Seq_Receive_DMA()
4228 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Receive_DMA()
4229 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
4232 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Master_Seq_Receive_DMA()
4235 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4243 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_DMA()
4250 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Receive_DMA()
4254 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4261 __HAL_I2C_ENABLE_IT(hi2c, enableIT); in HAL_I2C_Master_Seq_Receive_DMA()
4281 HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S… in HAL_I2C_Slave_Seq_Transmit_IT() argument
4286 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in HAL_I2C_Slave_Seq_Transmit_IT()
4294 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_IT()
4297 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Seq_Transmit_IT()
4300 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Seq_Transmit_IT()
4304 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Seq_Transmit_IT()
4306 hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; in HAL_I2C_Slave_Seq_Transmit_IT()
4307 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Seq_Transmit_IT()
4308 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Seq_Transmit_IT()
4311 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Seq_Transmit_IT()
4312 hi2c->XferCount = Size; in HAL_I2C_Slave_Seq_Transmit_IT()
4313 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Seq_Transmit_IT()
4314 hi2c->XferOptions = XferOptions; in HAL_I2C_Slave_Seq_Transmit_IT()
4317 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Seq_Transmit_IT()
4320 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_IT()
4327 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Transmit_IT()
4347 HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t … in HAL_I2C_Slave_Seq_Transmit_DMA() argument
4354 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4362 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4365 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Transmit_DMA()
4369 if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4371 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4374 if (hi2c->hdmarx != NULL) in HAL_I2C_Slave_Seq_Transmit_DMA()
4376 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Transmit_DMA()
4380 hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; in HAL_I2C_Slave_Seq_Transmit_DMA()
4383 if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) in HAL_I2C_Slave_Seq_Transmit_DMA()
4386 hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); in HAL_I2C_Slave_Seq_Transmit_DMA()
4391 else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4393 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4395 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Transmit_DMA()
4398 if (hi2c->hdmatx != NULL) in HAL_I2C_Slave_Seq_Transmit_DMA()
4402 hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; in HAL_I2C_Slave_Seq_Transmit_DMA()
4405 if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) in HAL_I2C_Slave_Seq_Transmit_DMA()
4408 hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); in HAL_I2C_Slave_Seq_Transmit_DMA()
4419 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Seq_Transmit_DMA()
4422 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4426 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Seq_Transmit_DMA()
4428 hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; in HAL_I2C_Slave_Seq_Transmit_DMA()
4429 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Seq_Transmit_DMA()
4430 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Seq_Transmit_DMA()
4433 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Seq_Transmit_DMA()
4434 hi2c->XferCount = Size; in HAL_I2C_Slave_Seq_Transmit_DMA()
4435 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Seq_Transmit_DMA()
4436 hi2c->XferOptions = XferOptions; in HAL_I2C_Slave_Seq_Transmit_DMA()
4438 if (hi2c->hdmatx != NULL) in HAL_I2C_Slave_Seq_Transmit_DMA()
4441 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Slave_Seq_Transmit_DMA()
4444 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Slave_Seq_Transmit_DMA()
4447 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Slave_Seq_Transmit_DMA()
4448 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Slave_Seq_Transmit_DMA()
4451 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Slave_Seq_Transmit_DMA()
4456 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_Slave_Seq_Transmit_DMA()
4457 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Seq_Transmit_DMA()
4460 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Slave_Seq_Transmit_DMA()
4463 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4471 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Seq_Transmit_DMA()
4474 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4477 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4483 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Transmit_DMA()
4486 hi2c->Instance->CR2 |= I2C_CR2_DMAEN; in HAL_I2C_Slave_Seq_Transmit_DMA()
4493 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Seq_Transmit_DMA()
4494 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Seq_Transmit_DMA()
4497 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Slave_Seq_Transmit_DMA()
4500 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4521 HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si… in HAL_I2C_Slave_Seq_Receive_IT() argument
4526 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in HAL_I2C_Slave_Seq_Receive_IT()
4534 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_IT()
4537 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Seq_Receive_IT()
4540 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Seq_Receive_IT()
4544 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Seq_Receive_IT()
4546 hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; in HAL_I2C_Slave_Seq_Receive_IT()
4547 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Seq_Receive_IT()
4548 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Seq_Receive_IT()
4551 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Seq_Receive_IT()
4552 hi2c->XferCount = Size; in HAL_I2C_Slave_Seq_Receive_IT()
4553 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Seq_Receive_IT()
4554 hi2c->XferOptions = XferOptions; in HAL_I2C_Slave_Seq_Receive_IT()
4557 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Seq_Receive_IT()
4560 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_IT()
4567 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Receive_IT()
4587 HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S… in HAL_I2C_Slave_Seq_Receive_DMA() argument
4594 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4602 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4605 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Receive_DMA()
4609 if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4611 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4614 if (hi2c->hdmarx != NULL) in HAL_I2C_Slave_Seq_Receive_DMA()
4616 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Receive_DMA()
4620 hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; in HAL_I2C_Slave_Seq_Receive_DMA()
4623 if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) in HAL_I2C_Slave_Seq_Receive_DMA()
4626 hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); in HAL_I2C_Slave_Seq_Receive_DMA()
4631 else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4633 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4635 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Receive_DMA()
4638 if (hi2c->hdmatx != NULL) in HAL_I2C_Slave_Seq_Receive_DMA()
4642 hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; in HAL_I2C_Slave_Seq_Receive_DMA()
4645 if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) in HAL_I2C_Slave_Seq_Receive_DMA()
4648 hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); in HAL_I2C_Slave_Seq_Receive_DMA()
4659 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Seq_Receive_DMA()
4662 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4666 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Seq_Receive_DMA()
4668 hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; in HAL_I2C_Slave_Seq_Receive_DMA()
4669 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Seq_Receive_DMA()
4670 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Seq_Receive_DMA()
4673 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Seq_Receive_DMA()
4674 hi2c->XferCount = Size; in HAL_I2C_Slave_Seq_Receive_DMA()
4675 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Seq_Receive_DMA()
4676 hi2c->XferOptions = XferOptions; in HAL_I2C_Slave_Seq_Receive_DMA()
4678 if (hi2c->hdmarx != NULL) in HAL_I2C_Slave_Seq_Receive_DMA()
4681 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Slave_Seq_Receive_DMA()
4684 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Slave_Seq_Receive_DMA()
4687 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Slave_Seq_Receive_DMA()
4688 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Slave_Seq_Receive_DMA()
4691 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Slave_Seq_Receive_DMA()
4696 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_Slave_Seq_Receive_DMA()
4697 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Seq_Receive_DMA()
4700 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Slave_Seq_Receive_DMA()
4703 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4711 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Seq_Receive_DMA()
4714 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4717 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4720 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Receive_DMA()
4726 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Receive_DMA()
4733 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Seq_Receive_DMA()
4734 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Seq_Receive_DMA()
4737 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Slave_Seq_Receive_DMA()
4740 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4757 HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) in HAL_I2C_EnableListen_IT() argument
4759 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_EnableListen_IT()
4761 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_EnableListen_IT()
4764 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_EnableListen_IT()
4767 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_EnableListen_IT()
4771 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_EnableListen_IT()
4774 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_EnableListen_IT()
4790 HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) in HAL_I2C_DisableListen_IT() argument
4796 if (hi2c->State == HAL_I2C_STATE_LISTEN) in HAL_I2C_DisableListen_IT()
4798 tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; in HAL_I2C_DisableListen_IT()
4799 hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); in HAL_I2C_DisableListen_IT()
4800 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_DisableListen_IT()
4801 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_DisableListen_IT()
4804 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_DisableListen_IT()
4807 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_DisableListen_IT()
4825 HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) in HAL_I2C_Master_Abort_IT() argument
4828 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in HAL_I2C_Master_Abort_IT()
4834 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && ((CurrentMode == HAL_I2C_MODE_MASTER) || in HAL_I2C_Master_Abort_IT()
4838 __HAL_LOCK(hi2c); in HAL_I2C_Master_Abort_IT()
4840 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Abort_IT()
4841 hi2c->State = HAL_I2C_STATE_ABORT; in HAL_I2C_Master_Abort_IT()
4844 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Abort_IT()
4847 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Abort_IT()
4849 hi2c->XferCount = 0U; in HAL_I2C_Master_Abort_IT()
4852 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Abort_IT()
4855 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Abort_IT()
4858 I2C_ITError(hi2c); in HAL_I2C_Master_Abort_IT()
4885 void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) in HAL_I2C_EV_IRQHandler() argument
4889 uint32_t itsources = READ_REG(hi2c->Instance->CR2); in HAL_I2C_EV_IRQHandler()
4890 uint32_t CurrentXferOptions = hi2c->XferOptions; in HAL_I2C_EV_IRQHandler()
4891 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in HAL_I2C_EV_IRQHandler()
4892 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in HAL_I2C_EV_IRQHandler()
4897 sr2itflags = READ_REG(hi2c->Instance->SR2); in HAL_I2C_EV_IRQHandler()
4898 sr1itflags = READ_REG(hi2c->Instance->SR1); in HAL_I2C_EV_IRQHandler()
4910 I2C_ConvertOtherXferOptions(hi2c); in HAL_I2C_EV_IRQHandler()
4912 I2C_Master_SB(hi2c); in HAL_I2C_EV_IRQHandler()
4917 I2C_Master_ADD10(hi2c); in HAL_I2C_EV_IRQHandler()
4922 I2C_Master_ADDR(hi2c); in HAL_I2C_EV_IRQHandler()
4928 if (READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) != I2C_CR2_DMAEN) in HAL_I2C_EV_IRQHandler()
4933 I2C_MasterTransmit_TXE(hi2c); in HAL_I2C_EV_IRQHandler()
4940 I2C_MasterTransmit_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
4946 I2C_MemoryTransmit_TXE_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
4960 if (READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) != I2C_CR2_DMAEN) in HAL_I2C_EV_IRQHandler()
4965 I2C_MasterReceive_RXNE(hi2c); in HAL_I2C_EV_IRQHandler()
4970 I2C_MasterReceive_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
4984 if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) in HAL_I2C_EV_IRQHandler()
4986 sr1itflags = READ_REG(hi2c->Instance->SR1); in HAL_I2C_EV_IRQHandler()
4990 sr2itflags = READ_REG(hi2c->Instance->SR2); in HAL_I2C_EV_IRQHandler()
4991 sr1itflags = READ_REG(hi2c->Instance->SR1); in HAL_I2C_EV_IRQHandler()
4998 if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) in HAL_I2C_EV_IRQHandler()
5000 sr2itflags = READ_REG(hi2c->Instance->SR2); in HAL_I2C_EV_IRQHandler()
5002 I2C_Slave_ADDR(hi2c, sr2itflags); in HAL_I2C_EV_IRQHandler()
5007 I2C_Slave_STOPF(hi2c); in HAL_I2C_EV_IRQHandler()
5015 I2C_SlaveTransmit_TXE(hi2c); in HAL_I2C_EV_IRQHandler()
5020 I2C_SlaveTransmit_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
5033 I2C_SlaveReceive_RXNE(hi2c); in HAL_I2C_EV_IRQHandler()
5038 I2C_SlaveReceive_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
5054 void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) in HAL_I2C_ER_IRQHandler() argument
5060 uint32_t sr1itflags = READ_REG(hi2c->Instance->SR1); in HAL_I2C_ER_IRQHandler()
5061 uint32_t itsources = READ_REG(hi2c->Instance->CR2); in HAL_I2C_ER_IRQHandler()
5063 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in HAL_I2C_ER_IRQHandler()
5071 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); in HAL_I2C_ER_IRQHandler()
5074 SET_BIT(hi2c->Instance->CR1, I2C_CR1_SWRST); in HAL_I2C_ER_IRQHandler()
5083 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); in HAL_I2C_ER_IRQHandler()
5090 tmp2 = hi2c->XferCount; in HAL_I2C_ER_IRQHandler()
5091 tmp3 = hi2c->State; in HAL_I2C_ER_IRQHandler()
5092 tmp4 = hi2c->PreviousState; in HAL_I2C_ER_IRQHandler()
5097 I2C_Slave_AF(hi2c); in HAL_I2C_ER_IRQHandler()
5102 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_ER_IRQHandler()
5110 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_ER_IRQHandler()
5120 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); in HAL_I2C_ER_IRQHandler()
5126 hi2c->ErrorCode |= error; in HAL_I2C_ER_IRQHandler()
5127 I2C_ITError(hi2c); in HAL_I2C_ER_IRQHandler()
5137 __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_MasterTxCpltCallback() argument
5140 UNUSED(hi2c); in HAL_I2C_MasterTxCpltCallback()
5153 __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_MasterRxCpltCallback() argument
5156 UNUSED(hi2c); in HAL_I2C_MasterRxCpltCallback()
5168 __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_SlaveTxCpltCallback() argument
5171 UNUSED(hi2c); in HAL_I2C_SlaveTxCpltCallback()
5184 __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_SlaveRxCpltCallback() argument
5187 UNUSED(hi2c); in HAL_I2C_SlaveRxCpltCallback()
5202 __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM… in HAL_I2C_AddrCallback() argument
5205 UNUSED(hi2c); in HAL_I2C_AddrCallback()
5220 __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_ListenCpltCallback() argument
5223 UNUSED(hi2c); in HAL_I2C_ListenCpltCallback()
5236 __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_MemTxCpltCallback() argument
5239 UNUSED(hi2c); in HAL_I2C_MemTxCpltCallback()
5252 __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_MemRxCpltCallback() argument
5255 UNUSED(hi2c); in HAL_I2C_MemRxCpltCallback()
5268 __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_ErrorCallback() argument
5271 UNUSED(hi2c); in HAL_I2C_ErrorCallback()
5284 __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_AbortCpltCallback() argument
5287 UNUSED(hi2c); in HAL_I2C_AbortCpltCallback()
5319 HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c) in HAL_I2C_GetState() argument
5322 return hi2c->State; in HAL_I2C_GetState()
5331 HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c) in HAL_I2C_GetMode() argument
5333 return hi2c->Mode; in HAL_I2C_GetMode()
5342 uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c) in HAL_I2C_GetError() argument
5344 return hi2c->ErrorCode; in HAL_I2C_GetError()
5365 static void I2C_MasterTransmit_TXE(I2C_HandleTypeDef *hi2c) in I2C_MasterTransmit_TXE() argument
5368 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_MasterTransmit_TXE()
5369 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in I2C_MasterTransmit_TXE()
5370 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterTransmit_TXE()
5372 if ((hi2c->XferSize == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX)) in I2C_MasterTransmit_TXE()
5377 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterTransmit_TXE()
5379 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; in I2C_MasterTransmit_TXE()
5380 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_TXE()
5381 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterTransmit_TXE()
5384 hi2c->MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5386 HAL_I2C_MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5392 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterTransmit_TXE()
5395 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_MasterTransmit_TXE()
5397 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterTransmit_TXE()
5398 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterTransmit_TXE()
5400 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterTransmit_TXE()
5402 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_TXE()
5404 hi2c->MemTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5406 HAL_I2C_MemTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5411 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_TXE()
5413 hi2c->MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5415 HAL_I2C_MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5423 if (hi2c->XferCount == 0U) in I2C_MasterTransmit_TXE()
5426 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterTransmit_TXE()
5430 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterTransmit_TXE()
5432 I2C_MemoryTransmit_TXE_BTF(hi2c); in I2C_MasterTransmit_TXE()
5437 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_MasterTransmit_TXE()
5440 hi2c->pBuffPtr++; in I2C_MasterTransmit_TXE()
5443 hi2c->XferCount--; in I2C_MasterTransmit_TXE()
5459 static void I2C_MasterTransmit_BTF(I2C_HandleTypeDef *hi2c) in I2C_MasterTransmit_BTF() argument
5462 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterTransmit_BTF()
5464 if (hi2c->State == HAL_I2C_STATE_BUSY_TX) in I2C_MasterTransmit_BTF()
5466 if (hi2c->XferCount != 0U) in I2C_MasterTransmit_BTF()
5469 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_MasterTransmit_BTF()
5472 hi2c->pBuffPtr++; in I2C_MasterTransmit_BTF()
5475 hi2c->XferCount--; in I2C_MasterTransmit_BTF()
5482 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterTransmit_BTF()
5484 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; in I2C_MasterTransmit_BTF()
5485 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_BTF()
5486 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterTransmit_BTF()
5489 hi2c->MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5491 HAL_I2C_MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5497 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterTransmit_BTF()
5500 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_MasterTransmit_BTF()
5502 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterTransmit_BTF()
5503 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterTransmit_BTF()
5504 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterTransmit_BTF()
5506 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_BTF()
5508 hi2c->MemTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5510 HAL_I2C_MemTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5515 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_BTF()
5518 hi2c->MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5520 HAL_I2C_MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5538 static void I2C_MemoryTransmit_TXE_BTF(I2C_HandleTypeDef *hi2c) in I2C_MemoryTransmit_TXE_BTF() argument
5541 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_MemoryTransmit_TXE_BTF()
5543 if (hi2c->EventCount == 0U) in I2C_MemoryTransmit_TXE_BTF()
5546 if (hi2c->MemaddSize == I2C_MEMADD_SIZE_8BIT) in I2C_MemoryTransmit_TXE_BTF()
5549 hi2c->Instance->DR = I2C_MEM_ADD_LSB(hi2c->Memaddress); in I2C_MemoryTransmit_TXE_BTF()
5551 hi2c->EventCount += 2U; in I2C_MemoryTransmit_TXE_BTF()
5557 hi2c->Instance->DR = I2C_MEM_ADD_MSB(hi2c->Memaddress); in I2C_MemoryTransmit_TXE_BTF()
5559 hi2c->EventCount++; in I2C_MemoryTransmit_TXE_BTF()
5562 else if (hi2c->EventCount == 1U) in I2C_MemoryTransmit_TXE_BTF()
5565 hi2c->Instance->DR = I2C_MEM_ADD_LSB(hi2c->Memaddress); in I2C_MemoryTransmit_TXE_BTF()
5567 hi2c->EventCount++; in I2C_MemoryTransmit_TXE_BTF()
5569 else if (hi2c->EventCount == 2U) in I2C_MemoryTransmit_TXE_BTF()
5574 hi2c->Instance->CR1 |= I2C_CR1_START; in I2C_MemoryTransmit_TXE_BTF()
5576 hi2c->EventCount++; in I2C_MemoryTransmit_TXE_BTF()
5578 else if ((hi2c->XferCount > 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX)) in I2C_MemoryTransmit_TXE_BTF()
5581 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_MemoryTransmit_TXE_BTF()
5584 hi2c->pBuffPtr++; in I2C_MemoryTransmit_TXE_BTF()
5587 hi2c->XferCount--; in I2C_MemoryTransmit_TXE_BTF()
5589 else if ((hi2c->XferCount == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX)) in I2C_MemoryTransmit_TXE_BTF()
5593 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MemoryTransmit_TXE_BTF()
5596 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_MemoryTransmit_TXE_BTF()
5598 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MemoryTransmit_TXE_BTF()
5599 hi2c->State = HAL_I2C_STATE_READY; in I2C_MemoryTransmit_TXE_BTF()
5600 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MemoryTransmit_TXE_BTF()
5602 hi2c->MemTxCpltCallback(hi2c); in I2C_MemoryTransmit_TXE_BTF()
5604 HAL_I2C_MemTxCpltCallback(hi2c); in I2C_MemoryTransmit_TXE_BTF()
5615 I2C_Flush_DR(hi2c); in I2C_MemoryTransmit_TXE_BTF()
5625 static void I2C_MasterReceive_RXNE(I2C_HandleTypeDef *hi2c) in I2C_MasterReceive_RXNE() argument
5627 if (hi2c->State == HAL_I2C_STATE_BUSY_RX) in I2C_MasterReceive_RXNE()
5632 CurrentXferOptions = hi2c->XferOptions; in I2C_MasterReceive_RXNE()
5633 tmp = hi2c->XferCount; in I2C_MasterReceive_RXNE()
5637 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_RXNE()
5640 hi2c->pBuffPtr++; in I2C_MasterReceive_RXNE()
5643 hi2c->XferCount--; in I2C_MasterReceive_RXNE()
5645 if (hi2c->XferCount == (uint16_t)3) in I2C_MasterReceive_RXNE()
5650 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterReceive_RXNE()
5653 else if ((hi2c->XferOptions != I2C_FIRST_AND_NEXT_FRAME) && ((tmp == 1U) || (tmp == 0U))) in I2C_MasterReceive_RXNE()
5655 if (I2C_WaitOnSTOPRequestThroughIT(hi2c) == HAL_OK) in I2C_MasterReceive_RXNE()
5658 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterReceive_RXNE()
5661 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterReceive_RXNE()
5664 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_RXNE()
5667 hi2c->pBuffPtr++; in I2C_MasterReceive_RXNE()
5670 hi2c->XferCount--; in I2C_MasterReceive_RXNE()
5672 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterReceive_RXNE()
5674 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterReceive_RXNE()
5676 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_RXNE()
5677 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterReceive_RXNE()
5680 hi2c->MemRxCpltCallback(hi2c); in I2C_MasterReceive_RXNE()
5682 HAL_I2C_MemRxCpltCallback(hi2c); in I2C_MasterReceive_RXNE()
5687 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_RXNE()
5690 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterReceive_RXNE()
5694 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; in I2C_MasterReceive_RXNE()
5698 hi2c->MasterRxCpltCallback(hi2c); in I2C_MasterReceive_RXNE()
5700 HAL_I2C_MasterRxCpltCallback(hi2c); in I2C_MasterReceive_RXNE()
5707 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterReceive_RXNE()
5710 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_RXNE()
5713 hi2c->pBuffPtr++; in I2C_MasterReceive_RXNE()
5716 hi2c->XferCount--; in I2C_MasterReceive_RXNE()
5718 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterReceive_RXNE()
5719 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_RXNE()
5723 hi2c->ErrorCallback(hi2c); in I2C_MasterReceive_RXNE()
5725 HAL_I2C_ErrorCallback(hi2c); in I2C_MasterReceive_RXNE()
5733 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterReceive_RXNE()
5744 static void I2C_MasterReceive_BTF(I2C_HandleTypeDef *hi2c) in I2C_MasterReceive_BTF() argument
5747 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterReceive_BTF()
5749 if (hi2c->XferCount == 4U) in I2C_MasterReceive_BTF()
5753 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterReceive_BTF()
5756 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5759 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5762 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5764 else if (hi2c->XferCount == 3U) in I2C_MasterReceive_BTF()
5768 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterReceive_BTF()
5773 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterReceive_BTF()
5777 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5780 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5783 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5785 else if (hi2c->XferCount == 2U) in I2C_MasterReceive_BTF()
5791 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterReceive_BTF()
5796 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterReceive_BTF()
5801 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_MasterReceive_BTF()
5805 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5808 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5811 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5814 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5817 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5820 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5823 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in I2C_MasterReceive_BTF()
5825 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterReceive_BTF()
5826 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterReceive_BTF()
5828 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_BTF()
5829 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterReceive_BTF()
5831 hi2c->MemRxCpltCallback(hi2c); in I2C_MasterReceive_BTF()
5833 HAL_I2C_MemRxCpltCallback(hi2c); in I2C_MasterReceive_BTF()
5838 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_BTF()
5841 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterReceive_BTF()
5845 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; in I2C_MasterReceive_BTF()
5848 hi2c->MasterRxCpltCallback(hi2c); in I2C_MasterReceive_BTF()
5850 HAL_I2C_MasterRxCpltCallback(hi2c); in I2C_MasterReceive_BTF()
5857 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5860 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5863 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5873 static void I2C_Master_SB(I2C_HandleTypeDef *hi2c) in I2C_Master_SB() argument
5875 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_Master_SB()
5877 if (hi2c->EventCount == 0U) in I2C_Master_SB()
5880 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(hi2c->Devaddress); in I2C_Master_SB()
5884 hi2c->Instance->DR = I2C_7BIT_ADD_READ(hi2c->Devaddress); in I2C_Master_SB()
5889 if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) in I2C_Master_SB()
5892 if (hi2c->State == HAL_I2C_STATE_BUSY_TX) in I2C_Master_SB()
5894 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(hi2c->Devaddress); in I2C_Master_SB()
5898 hi2c->Instance->DR = I2C_7BIT_ADD_READ(hi2c->Devaddress); in I2C_Master_SB()
5901 if (((hi2c->hdmatx != NULL) && (hi2c->hdmatx->XferCpltCallback != NULL)) in I2C_Master_SB()
5902 || ((hi2c->hdmarx != NULL) && (hi2c->hdmarx->XferCpltCallback != NULL))) in I2C_Master_SB()
5905 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_Master_SB()
5910 if (hi2c->EventCount == 0U) in I2C_Master_SB()
5913 hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(hi2c->Devaddress); in I2C_Master_SB()
5915 else if (hi2c->EventCount == 1U) in I2C_Master_SB()
5918 hi2c->Instance->DR = I2C_10BIT_HEADER_READ(hi2c->Devaddress); in I2C_Master_SB()
5934 static void I2C_Master_ADD10(I2C_HandleTypeDef *hi2c) in I2C_Master_ADD10() argument
5937 hi2c->Instance->DR = I2C_10BIT_ADDRESS(hi2c->Devaddress); in I2C_Master_ADD10()
5939 if (((hi2c->hdmatx != NULL) && (hi2c->hdmatx->XferCpltCallback != NULL)) in I2C_Master_ADD10()
5940 || ((hi2c->hdmarx != NULL) && (hi2c->hdmarx->XferCpltCallback != NULL))) in I2C_Master_ADD10()
5943 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_Master_ADD10()
5953 static void I2C_Master_ADDR(I2C_HandleTypeDef *hi2c) in I2C_Master_ADDR() argument
5956 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in I2C_Master_ADDR()
5957 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_Master_ADDR()
5958 uint32_t Prev_State = hi2c->PreviousState; in I2C_Master_ADDR()
5960 if (hi2c->State == HAL_I2C_STATE_BUSY_RX) in I2C_Master_ADDR()
5962 if ((hi2c->EventCount == 0U) && (CurrentMode == HAL_I2C_MODE_MEM)) in I2C_Master_ADDR()
5965 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5967 else if ((hi2c->EventCount == 0U) && (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)) in I2C_Master_ADDR()
5970 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5973 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_Master_ADDR()
5975 hi2c->EventCount++; in I2C_Master_ADDR()
5979 if (hi2c->XferCount == 0U) in I2C_Master_ADDR()
5982 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5985 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_Master_ADDR()
5987 else if (hi2c->XferCount == 1U) in I2C_Master_ADDR()
5992 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5994 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in I2C_Master_ADDR()
5997 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
6000 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
6005 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
6008 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_Master_ADDR()
6018 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
6023 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
6027 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
6032 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
6035 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
6038 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_Master_ADDR()
6041 else if (hi2c->XferCount == 2U) in I2C_Master_ADDR()
6046 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in I2C_Master_ADDR()
6049 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
6052 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
6057 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
6060 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
6063 …if (((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) && ((CurrentXferOptions == I2C_NO_OPT… in I2C_Master_ADDR()
6066 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in I2C_Master_ADDR()
6072 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
6074 …if (((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) && ((CurrentXferOptions == I2C_NO_OPT… in I2C_Master_ADDR()
6077 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in I2C_Master_ADDR()
6081 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
6085 hi2c->EventCount = 0U; in I2C_Master_ADDR()
6091 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
6101 static void I2C_SlaveTransmit_TXE(I2C_HandleTypeDef *hi2c) in I2C_SlaveTransmit_TXE() argument
6104 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_SlaveTransmit_TXE()
6106 if (hi2c->XferCount != 0U) in I2C_SlaveTransmit_TXE()
6109 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_SlaveTransmit_TXE()
6112 hi2c->pBuffPtr++; in I2C_SlaveTransmit_TXE()
6115 hi2c->XferCount--; in I2C_SlaveTransmit_TXE()
6117 if ((hi2c->XferCount == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX_LISTEN)) in I2C_SlaveTransmit_TXE()
6120 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_SlaveTransmit_TXE()
6123 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; in I2C_SlaveTransmit_TXE()
6124 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_SlaveTransmit_TXE()
6128 hi2c->SlaveTxCpltCallback(hi2c); in I2C_SlaveTransmit_TXE()
6130 HAL_I2C_SlaveTxCpltCallback(hi2c); in I2C_SlaveTransmit_TXE()
6142 static void I2C_SlaveTransmit_BTF(I2C_HandleTypeDef *hi2c) in I2C_SlaveTransmit_BTF() argument
6144 if (hi2c->XferCount != 0U) in I2C_SlaveTransmit_BTF()
6147 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_SlaveTransmit_BTF()
6150 hi2c->pBuffPtr++; in I2C_SlaveTransmit_BTF()
6153 hi2c->XferCount--; in I2C_SlaveTransmit_BTF()
6163 static void I2C_SlaveReceive_RXNE(I2C_HandleTypeDef *hi2c) in I2C_SlaveReceive_RXNE() argument
6166 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_SlaveReceive_RXNE()
6168 if (hi2c->XferCount != 0U) in I2C_SlaveReceive_RXNE()
6171 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_SlaveReceive_RXNE()
6174 hi2c->pBuffPtr++; in I2C_SlaveReceive_RXNE()
6177 hi2c->XferCount--; in I2C_SlaveReceive_RXNE()
6179 if ((hi2c->XferCount == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_RX_LISTEN)) in I2C_SlaveReceive_RXNE()
6182 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_SlaveReceive_RXNE()
6185 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; in I2C_SlaveReceive_RXNE()
6186 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_SlaveReceive_RXNE()
6190 hi2c->SlaveRxCpltCallback(hi2c); in I2C_SlaveReceive_RXNE()
6192 HAL_I2C_SlaveRxCpltCallback(hi2c); in I2C_SlaveReceive_RXNE()
6204 static void I2C_SlaveReceive_BTF(I2C_HandleTypeDef *hi2c) in I2C_SlaveReceive_BTF() argument
6206 if (hi2c->XferCount != 0U) in I2C_SlaveReceive_BTF()
6209 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_SlaveReceive_BTF()
6212 hi2c->pBuffPtr++; in I2C_SlaveReceive_BTF()
6215 hi2c->XferCount--; in I2C_SlaveReceive_BTF()
6226 static void I2C_Slave_ADDR(I2C_HandleTypeDef *hi2c, uint32_t IT2Flags) in I2C_Slave_ADDR() argument
6231 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in I2C_Slave_ADDR()
6234 __HAL_I2C_DISABLE_IT(hi2c, (I2C_IT_BUF)); in I2C_Slave_ADDR()
6244 SlaveAddrCode = (uint16_t)hi2c->Init.OwnAddress1; in I2C_Slave_ADDR()
6248 SlaveAddrCode = (uint16_t)hi2c->Init.OwnAddress2; in I2C_Slave_ADDR()
6252 __HAL_UNLOCK(hi2c); in I2C_Slave_ADDR()
6256 hi2c->AddrCallback(hi2c, TransferDirection, SlaveAddrCode); in I2C_Slave_ADDR()
6258 HAL_I2C_AddrCallback(hi2c, TransferDirection, SlaveAddrCode); in I2C_Slave_ADDR()
6264 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Slave_ADDR()
6267 __HAL_UNLOCK(hi2c); in I2C_Slave_ADDR()
6277 static void I2C_Slave_STOPF(I2C_HandleTypeDef *hi2c) in I2C_Slave_STOPF() argument
6280 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_Slave_STOPF()
6283 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_Slave_STOPF()
6286 __HAL_I2C_CLEAR_STOPFLAG(hi2c); in I2C_Slave_STOPF()
6289 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Slave_STOPF()
6292 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in I2C_Slave_STOPF()
6296 hi2c->XferCount = (uint16_t)(I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx)); in I2C_Slave_STOPF()
6298 if (hi2c->XferCount != 0U) in I2C_Slave_STOPF()
6301 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_Slave_STOPF()
6305 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_Slave_STOPF()
6308 if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) in I2C_Slave_STOPF()
6312 hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; in I2C_Slave_STOPF()
6315 if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) in I2C_Slave_STOPF()
6318 hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); in I2C_Slave_STOPF()
6324 hi2c->XferCount = (uint16_t)(I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx)); in I2C_Slave_STOPF()
6326 if (hi2c->XferCount != 0U) in I2C_Slave_STOPF()
6329 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_Slave_STOPF()
6333 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_Slave_STOPF()
6336 if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) in I2C_Slave_STOPF()
6340 hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; in I2C_Slave_STOPF()
6343 if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) in I2C_Slave_STOPF()
6346 hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); in I2C_Slave_STOPF()
6353 if (hi2c->XferCount != 0U) in I2C_Slave_STOPF()
6356 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) in I2C_Slave_STOPF()
6359 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_Slave_STOPF()
6362 hi2c->pBuffPtr++; in I2C_Slave_STOPF()
6365 hi2c->XferCount--; in I2C_Slave_STOPF()
6369 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) in I2C_Slave_STOPF()
6372 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_Slave_STOPF()
6375 hi2c->pBuffPtr++; in I2C_Slave_STOPF()
6378 hi2c->XferCount--; in I2C_Slave_STOPF()
6381 if (hi2c->XferCount != 0U) in I2C_Slave_STOPF()
6384 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_Slave_STOPF()
6388 if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) in I2C_Slave_STOPF()
6391 I2C_ITError(hi2c); in I2C_Slave_STOPF()
6398 hi2c->PreviousState = I2C_STATE_NONE; in I2C_Slave_STOPF()
6399 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_Slave_STOPF()
6403 hi2c->SlaveRxCpltCallback(hi2c); in I2C_Slave_STOPF()
6405 HAL_I2C_SlaveRxCpltCallback(hi2c); in I2C_Slave_STOPF()
6409 if (hi2c->State == HAL_I2C_STATE_LISTEN) in I2C_Slave_STOPF()
6411 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in I2C_Slave_STOPF()
6412 hi2c->PreviousState = I2C_STATE_NONE; in I2C_Slave_STOPF()
6413 hi2c->State = HAL_I2C_STATE_READY; in I2C_Slave_STOPF()
6414 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_Slave_STOPF()
6418 hi2c->ListenCpltCallback(hi2c); in I2C_Slave_STOPF()
6420 HAL_I2C_ListenCpltCallback(hi2c); in I2C_Slave_STOPF()
6425 … if ((hi2c->PreviousState == I2C_STATE_SLAVE_BUSY_RX) || (CurrentState == HAL_I2C_STATE_BUSY_RX)) in I2C_Slave_STOPF()
6427 hi2c->PreviousState = I2C_STATE_NONE; in I2C_Slave_STOPF()
6428 hi2c->State = HAL_I2C_STATE_READY; in I2C_Slave_STOPF()
6429 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_Slave_STOPF()
6432 hi2c->SlaveRxCpltCallback(hi2c); in I2C_Slave_STOPF()
6434 HAL_I2C_SlaveRxCpltCallback(hi2c); in I2C_Slave_STOPF()
6446 static void I2C_Slave_AF(I2C_HandleTypeDef *hi2c) in I2C_Slave_AF() argument
6449 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_Slave_AF()
6450 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_Slave_AF()
6455 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in I2C_Slave_AF()
6458 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_Slave_AF()
6461 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_Slave_AF()
6464 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Slave_AF()
6466 hi2c->PreviousState = I2C_STATE_NONE; in I2C_Slave_AF()
6467 hi2c->State = HAL_I2C_STATE_READY; in I2C_Slave_AF()
6468 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_Slave_AF()
6472 hi2c->ListenCpltCallback(hi2c); in I2C_Slave_AF()
6474 HAL_I2C_ListenCpltCallback(hi2c); in I2C_Slave_AF()
6479 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in I2C_Slave_AF()
6480 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; in I2C_Slave_AF()
6481 hi2c->State = HAL_I2C_STATE_READY; in I2C_Slave_AF()
6482 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_Slave_AF()
6485 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_Slave_AF()
6488 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_Slave_AF()
6491 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Slave_AF()
6494 I2C_Flush_DR(hi2c); in I2C_Slave_AF()
6497 hi2c->SlaveTxCpltCallback(hi2c); in I2C_Slave_AF()
6499 HAL_I2C_SlaveTxCpltCallback(hi2c); in I2C_Slave_AF()
6506 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_Slave_AF()
6515 static void I2C_ITError(I2C_HandleTypeDef *hi2c) in I2C_ITError() argument
6518 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_ITError()
6519 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in I2C_ITError()
6525 hi2c->Instance->CR1 &= ~I2C_CR1_POS; in I2C_ITError()
6531 hi2c->PreviousState = I2C_STATE_NONE; in I2C_ITError()
6532 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_ITError()
6538 …if ((READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) != I2C_CR2_DMAEN) && (CurrentState != HAL_I2C_ST… in I2C_ITError()
6540 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6541 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_ITError()
6543 hi2c->PreviousState = I2C_STATE_NONE; in I2C_ITError()
6547 if (READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in I2C_ITError()
6549 hi2c->Instance->CR2 &= ~I2C_CR2_DMAEN; in I2C_ITError()
6551 if (hi2c->hdmatx->State != HAL_DMA_STATE_READY) in I2C_ITError()
6555 hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; in I2C_ITError()
6557 if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) in I2C_ITError()
6560 __HAL_I2C_DISABLE(hi2c); in I2C_ITError()
6562 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6565 hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); in I2C_ITError()
6572 hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; in I2C_ITError()
6574 if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) in I2C_ITError()
6577 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) in I2C_ITError()
6580 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_ITError()
6583 hi2c->pBuffPtr++; in I2C_ITError()
6587 __HAL_I2C_DISABLE(hi2c); in I2C_ITError()
6589 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6592 hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); in I2C_ITError()
6596 else if (hi2c->State == HAL_I2C_STATE_ABORT) in I2C_ITError()
6598 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6599 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in I2C_ITError()
6602 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) in I2C_ITError()
6605 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_ITError()
6608 hi2c->pBuffPtr++; in I2C_ITError()
6612 __HAL_I2C_DISABLE(hi2c); in I2C_ITError()
6616 hi2c->AbortCpltCallback(hi2c); in I2C_ITError()
6618 HAL_I2C_AbortCpltCallback(hi2c); in I2C_ITError()
6624 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) in I2C_ITError()
6627 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_ITError()
6630 hi2c->pBuffPtr++; in I2C_ITError()
6635 hi2c->ErrorCallback(hi2c); in I2C_ITError()
6637 HAL_I2C_ErrorCallback(hi2c); in I2C_ITError()
6642 CurrentError = hi2c->ErrorCode; in I2C_ITError()
6650 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_ITError()
6655 CurrentState = hi2c->State; in I2C_ITError()
6656 …if (((hi2c->ErrorCode & HAL_I2C_ERROR_AF) == HAL_I2C_ERROR_AF) && (CurrentState == HAL_I2C_STATE_L… in I2C_ITError()
6658 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in I2C_ITError()
6659 hi2c->PreviousState = I2C_STATE_NONE; in I2C_ITError()
6660 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6661 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_ITError()
6665 hi2c->ListenCpltCallback(hi2c); in I2C_ITError()
6667 HAL_I2C_ListenCpltCallback(hi2c); in I2C_ITError()
6681 static HAL_StatusTypeDef I2C_MasterRequestWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint3… in I2C_MasterRequestWrite() argument
6684 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterRequestWrite()
6690 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestWrite()
6692 else if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) in I2C_MasterRequestWrite()
6695 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestWrite()
6703 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestWrite()
6705 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_MasterRequestWrite()
6707 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_MasterRequestWrite()
6712 if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) in I2C_MasterRequestWrite()
6715 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); in I2C_MasterRequestWrite()
6720 hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(DevAddress); in I2C_MasterRequestWrite()
6723 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADD10, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestWrite()
6729 hi2c->Instance->DR = I2C_10BIT_ADDRESS(DevAddress); in I2C_MasterRequestWrite()
6733 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestWrite()
6751 static HAL_StatusTypeDef I2C_MasterRequestRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32… in I2C_MasterRequestRead() argument
6754 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterRequestRead()
6757 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterRequestRead()
6763 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestRead()
6765 else if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) in I2C_MasterRequestRead()
6768 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestRead()
6776 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6778 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_MasterRequestRead()
6780 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_MasterRequestRead()
6785 if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) in I2C_MasterRequestRead()
6788 hi2c->Instance->DR = I2C_7BIT_ADD_READ(DevAddress); in I2C_MasterRequestRead()
6793 hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(DevAddress); in I2C_MasterRequestRead()
6796 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADD10, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6802 hi2c->Instance->DR = I2C_10BIT_ADDRESS(DevAddress); in I2C_MasterRequestRead()
6805 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6811 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_MasterRequestRead()
6814 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestRead()
6817 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6819 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_MasterRequestRead()
6821 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_MasterRequestRead()
6827 hi2c->Instance->DR = I2C_10BIT_HEADER_READ(DevAddress); in I2C_MasterRequestRead()
6831 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6851 static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1… in I2C_RequestMemoryWrite() argument
6854 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_RequestMemoryWrite()
6857 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryWrite()
6859 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_RequestMemoryWrite()
6861 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_RequestMemoryWrite()
6867 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); in I2C_RequestMemoryWrite()
6870 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryWrite()
6876 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_RequestMemoryWrite()
6879 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryWrite()
6881 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryWrite()
6884 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryWrite()
6893 hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); in I2C_RequestMemoryWrite()
6899 hi2c->Instance->DR = I2C_MEM_ADD_MSB(MemAddress); in I2C_RequestMemoryWrite()
6902 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryWrite()
6904 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryWrite()
6907 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryWrite()
6913 hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); in I2C_RequestMemoryWrite()
6931 static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16… in I2C_RequestMemoryRead() argument
6934 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_RequestMemoryRead()
6937 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_RequestMemoryRead()
6940 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6942 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_RequestMemoryRead()
6944 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_RequestMemoryRead()
6950 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); in I2C_RequestMemoryRead()
6953 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6959 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_RequestMemoryRead()
6962 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6964 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryRead()
6967 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryRead()
6976 hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); in I2C_RequestMemoryRead()
6982 hi2c->Instance->DR = I2C_MEM_ADD_MSB(MemAddress); in I2C_RequestMemoryRead()
6985 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6987 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryRead()
6990 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryRead()
6996 hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); in I2C_RequestMemoryRead()
7000 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
7002 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryRead()
7005 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryRead()
7011 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_RequestMemoryRead()
7014 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
7016 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_RequestMemoryRead()
7018 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_RequestMemoryRead()
7024 hi2c->Instance->DR = I2C_7BIT_ADD_READ(DevAddress); in I2C_RequestMemoryRead()
7027 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
7042 …I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2C_DMAXferCplt() local
7045 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_DMAXferCplt()
7046 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in I2C_DMAXferCplt()
7047 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_DMAXferCplt()
7050 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in I2C_DMAXferCplt()
7053 if (hi2c->hdmatx != NULL) in I2C_DMAXferCplt()
7055 hi2c->hdmatx->XferCpltCallback = NULL; in I2C_DMAXferCplt()
7057 if (hi2c->hdmarx != NULL) in I2C_DMAXferCplt()
7059 hi2c->hdmarx->XferCpltCallback = NULL; in I2C_DMAXferCplt()
7065 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_DMAXferCplt()
7067 hi2c->XferCount = 0U; in I2C_DMAXferCplt()
7072 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; in I2C_DMAXferCplt()
7073 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_DMAXferCplt()
7077 hi2c->SlaveTxCpltCallback(hi2c); in I2C_DMAXferCplt()
7079 HAL_I2C_SlaveTxCpltCallback(hi2c); in I2C_DMAXferCplt()
7085 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; in I2C_DMAXferCplt()
7086 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_DMAXferCplt()
7090 hi2c->SlaveRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7092 HAL_I2C_SlaveRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7101 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in I2C_DMAXferCplt()
7104 else if (hi2c->Mode != HAL_I2C_MODE_NONE) in I2C_DMAXferCplt()
7106 if (hi2c->XferCount == (uint16_t)1) in I2C_DMAXferCplt()
7109 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_DMAXferCplt()
7113 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in I2C_DMAXferCplt()
7119 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_DMAXferCplt()
7123 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in I2C_DMAXferCplt()
7126 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_DMAXferCplt()
7128 hi2c->XferCount = 0U; in I2C_DMAXferCplt()
7131 if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) in I2C_DMAXferCplt()
7134 hi2c->ErrorCallback(hi2c); in I2C_DMAXferCplt()
7136 HAL_I2C_ErrorCallback(hi2c); in I2C_DMAXferCplt()
7141 hi2c->State = HAL_I2C_STATE_READY; in I2C_DMAXferCplt()
7143 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_DMAXferCplt()
7145 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAXferCplt()
7146 hi2c->PreviousState = I2C_STATE_NONE; in I2C_DMAXferCplt()
7149 hi2c->MemRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7151 HAL_I2C_MemRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7156 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAXferCplt()
7159 hi2c->PreviousState = I2C_STATE_NONE; in I2C_DMAXferCplt()
7163 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; in I2C_DMAXferCplt()
7167 hi2c->MasterRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7169 HAL_I2C_MasterRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7187 …I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2C_DMAError() local
7190 if (hi2c->hdmatx != NULL) in I2C_DMAError()
7192 hi2c->hdmatx->XferCpltCallback = NULL; in I2C_DMAError()
7194 if (hi2c->hdmarx != NULL) in I2C_DMAError()
7196 hi2c->hdmarx->XferCpltCallback = NULL; in I2C_DMAError()
7200 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_DMAError()
7202 hi2c->XferCount = 0U; in I2C_DMAError()
7203 hi2c->State = HAL_I2C_STATE_READY; in I2C_DMAError()
7204 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAError()
7205 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in I2C_DMAError()
7208 hi2c->ErrorCallback(hi2c); in I2C_DMAError()
7210 HAL_I2C_ErrorCallback(hi2c); in I2C_DMAError()
7223 …I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2C_DMAAbort() local
7226 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_DMAAbort()
7235 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_DMAAbort()
7240 while (READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP); in I2C_DMAAbort()
7243 if (hi2c->hdmatx != NULL) in I2C_DMAAbort()
7245 hi2c->hdmatx->XferCpltCallback = NULL; in I2C_DMAAbort()
7247 if (hi2c->hdmarx != NULL) in I2C_DMAAbort()
7249 hi2c->hdmarx->XferCpltCallback = NULL; in I2C_DMAAbort()
7253 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_DMAAbort()
7255 hi2c->XferCount = 0U; in I2C_DMAAbort()
7258 if (hi2c->hdmatx != NULL) in I2C_DMAAbort()
7260 hi2c->hdmatx->XferAbortCallback = NULL; in I2C_DMAAbort()
7262 if (hi2c->hdmarx != NULL) in I2C_DMAAbort()
7264 hi2c->hdmarx->XferAbortCallback = NULL; in I2C_DMAAbort()
7268 __HAL_I2C_DISABLE(hi2c); in I2C_DMAAbort()
7271 if (hi2c->State == HAL_I2C_STATE_ABORT) in I2C_DMAAbort()
7273 hi2c->State = HAL_I2C_STATE_READY; in I2C_DMAAbort()
7274 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAAbort()
7275 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in I2C_DMAAbort()
7279 hi2c->AbortCpltCallback(hi2c); in I2C_DMAAbort()
7281 HAL_I2C_AbortCpltCallback(hi2c); in I2C_DMAAbort()
7289 __HAL_I2C_ENABLE(hi2c); in I2C_DMAAbort()
7292 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_DMAAbort()
7295 hi2c->PreviousState = I2C_STATE_NONE; in I2C_DMAAbort()
7296 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_DMAAbort()
7300 hi2c->State = HAL_I2C_STATE_READY; in I2C_DMAAbort()
7301 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAAbort()
7306 hi2c->ErrorCallback(hi2c); in I2C_DMAAbort()
7308 HAL_I2C_ErrorCallback(hi2c); in I2C_DMAAbort()
7323 static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta… in I2C_WaitOnFlagUntilTimeout() argument
7326 while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) in I2C_WaitOnFlagUntilTimeout()
7333 if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) in I2C_WaitOnFlagUntilTimeout()
7335 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnFlagUntilTimeout()
7336 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnFlagUntilTimeout()
7337 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnFlagUntilTimeout()
7338 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnFlagUntilTimeout()
7341 __HAL_UNLOCK(hi2c); in I2C_WaitOnFlagUntilTimeout()
7360 static HAL_StatusTypeDef I2C_WaitOnMasterAddressFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t … in I2C_WaitOnMasterAddressFlagUntilTimeout() argument
7362 while (__HAL_I2C_GET_FLAG(hi2c, Flag) == RESET) in I2C_WaitOnMasterAddressFlagUntilTimeout()
7364 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) in I2C_WaitOnMasterAddressFlagUntilTimeout()
7367 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_WaitOnMasterAddressFlagUntilTimeout()
7370 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_WaitOnMasterAddressFlagUntilTimeout()
7372 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7373 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7374 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7375 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7378 __HAL_UNLOCK(hi2c); in I2C_WaitOnMasterAddressFlagUntilTimeout()
7388 if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == RESET)) in I2C_WaitOnMasterAddressFlagUntilTimeout()
7390 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7391 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7392 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7393 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7396 __HAL_UNLOCK(hi2c); in I2C_WaitOnMasterAddressFlagUntilTimeout()
7414 static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, u… in I2C_WaitOnTXEFlagUntilTimeout() argument
7416 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) in I2C_WaitOnTXEFlagUntilTimeout()
7419 if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) in I2C_WaitOnTXEFlagUntilTimeout()
7429 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)) in I2C_WaitOnTXEFlagUntilTimeout()
7431 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnTXEFlagUntilTimeout()
7432 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnTXEFlagUntilTimeout()
7433 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnTXEFlagUntilTimeout()
7434 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnTXEFlagUntilTimeout()
7437 __HAL_UNLOCK(hi2c); in I2C_WaitOnTXEFlagUntilTimeout()
7455 static HAL_StatusTypeDef I2C_WaitOnBTFFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, u… in I2C_WaitOnBTFFlagUntilTimeout() argument
7457 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET) in I2C_WaitOnBTFFlagUntilTimeout()
7460 if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) in I2C_WaitOnBTFFlagUntilTimeout()
7470 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET)) in I2C_WaitOnBTFFlagUntilTimeout()
7472 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnBTFFlagUntilTimeout()
7473 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnBTFFlagUntilTimeout()
7474 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnBTFFlagUntilTimeout()
7475 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnBTFFlagUntilTimeout()
7478 __HAL_UNLOCK(hi2c); in I2C_WaitOnBTFFlagUntilTimeout()
7496 static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, … in I2C_WaitOnSTOPFlagUntilTimeout() argument
7498 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) in I2C_WaitOnSTOPFlagUntilTimeout()
7501 if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) in I2C_WaitOnSTOPFlagUntilTimeout()
7509 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)) in I2C_WaitOnSTOPFlagUntilTimeout()
7511 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnSTOPFlagUntilTimeout()
7512 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnSTOPFlagUntilTimeout()
7513 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnSTOPFlagUntilTimeout()
7514 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnSTOPFlagUntilTimeout()
7517 __HAL_UNLOCK(hi2c); in I2C_WaitOnSTOPFlagUntilTimeout()
7532 static HAL_StatusTypeDef I2C_WaitOnSTOPRequestThroughIT(I2C_HandleTypeDef *hi2c) in I2C_WaitOnSTOPRequestThroughIT() argument
7543 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnSTOPRequestThroughIT()
7548 while (READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP); in I2C_WaitOnSTOPRequestThroughIT()
7561 static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, … in I2C_WaitOnRXNEFlagUntilTimeout() argument
7564 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) in I2C_WaitOnRXNEFlagUntilTimeout()
7567 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) in I2C_WaitOnRXNEFlagUntilTimeout()
7570 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); in I2C_WaitOnRXNEFlagUntilTimeout()
7572 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7573 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnRXNEFlagUntilTimeout()
7574 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7575 hi2c->ErrorCode |= HAL_I2C_ERROR_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7578 __HAL_UNLOCK(hi2c); in I2C_WaitOnRXNEFlagUntilTimeout()
7586 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)) in I2C_WaitOnRXNEFlagUntilTimeout()
7588 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7589 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnRXNEFlagUntilTimeout()
7590 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7591 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnRXNEFlagUntilTimeout()
7594 __HAL_UNLOCK(hi2c); in I2C_WaitOnRXNEFlagUntilTimeout()
7609 static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c) in I2C_IsAcknowledgeFailed() argument
7611 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) in I2C_IsAcknowledgeFailed()
7614 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_IsAcknowledgeFailed()
7616 hi2c->PreviousState = I2C_STATE_NONE; in I2C_IsAcknowledgeFailed()
7617 hi2c->State = HAL_I2C_STATE_READY; in I2C_IsAcknowledgeFailed()
7618 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_IsAcknowledgeFailed()
7619 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_IsAcknowledgeFailed()
7622 __HAL_UNLOCK(hi2c); in I2C_IsAcknowledgeFailed()
7634 static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) in I2C_ConvertOtherXferOptions() argument
7639 if (hi2c->XferOptions == I2C_OTHER_FRAME) in I2C_ConvertOtherXferOptions()
7641 hi2c->XferOptions = I2C_FIRST_FRAME; in I2C_ConvertOtherXferOptions()
7647 else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) in I2C_ConvertOtherXferOptions()
7649 hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; in I2C_ConvertOtherXferOptions()