Lines Matching refs:hi2c
356 static void I2C_ITError(I2C_HandleTypeDef *hi2c);
358 static HAL_StatusTypeDef I2C_MasterRequestWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint3…
359 static HAL_StatusTypeDef I2C_MasterRequestRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32…
360 static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1…
361 static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16…
364 static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta…
365 static HAL_StatusTypeDef I2C_WaitOnMasterAddressFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t …
366 static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, u…
367 static HAL_StatusTypeDef I2C_WaitOnBTFFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, u…
368 static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, …
369 static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, …
370 static HAL_StatusTypeDef I2C_WaitOnSTOPRequestThroughIT(I2C_HandleTypeDef *hi2c);
371 static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c);
374 static void I2C_MasterTransmit_TXE(I2C_HandleTypeDef *hi2c);
375 static void I2C_MasterTransmit_BTF(I2C_HandleTypeDef *hi2c);
376 static void I2C_MasterReceive_RXNE(I2C_HandleTypeDef *hi2c);
377 static void I2C_MasterReceive_BTF(I2C_HandleTypeDef *hi2c);
378 static void I2C_Master_SB(I2C_HandleTypeDef *hi2c);
379 static void I2C_Master_ADD10(I2C_HandleTypeDef *hi2c);
380 static void I2C_Master_ADDR(I2C_HandleTypeDef *hi2c);
382 static void I2C_SlaveTransmit_TXE(I2C_HandleTypeDef *hi2c);
383 static void I2C_SlaveTransmit_BTF(I2C_HandleTypeDef *hi2c);
384 static void I2C_SlaveReceive_RXNE(I2C_HandleTypeDef *hi2c);
385 static void I2C_SlaveReceive_BTF(I2C_HandleTypeDef *hi2c);
386 static void I2C_Slave_ADDR(I2C_HandleTypeDef *hi2c, uint32_t IT2Flags);
387 static void I2C_Slave_STOPF(I2C_HandleTypeDef *hi2c);
388 static void I2C_Slave_AF(I2C_HandleTypeDef *hi2c);
390 static void I2C_MemoryTransmit_TXE_BTF(I2C_HandleTypeDef *hi2c);
393 static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c);
396 static void I2C_Flush_DR(I2C_HandleTypeDef *hi2c);
445 HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) in HAL_I2C_Init() argument
451 if (hi2c == NULL) in HAL_I2C_Init()
457 assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); in HAL_I2C_Init()
458 assert_param(IS_I2C_CLOCK_SPEED(hi2c->Init.ClockSpeed)); in HAL_I2C_Init()
459 assert_param(IS_I2C_DUTY_CYCLE(hi2c->Init.DutyCycle)); in HAL_I2C_Init()
460 assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); in HAL_I2C_Init()
461 assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); in HAL_I2C_Init()
462 assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); in HAL_I2C_Init()
463 assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); in HAL_I2C_Init()
464 assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); in HAL_I2C_Init()
465 assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); in HAL_I2C_Init()
467 if (hi2c->State == HAL_I2C_STATE_RESET) in HAL_I2C_Init()
470 hi2c->Lock = HAL_UNLOCKED; in HAL_I2C_Init()
474 … hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback */ in HAL_I2C_Init()
475 … hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback */ in HAL_I2C_Init()
476 … hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback */ in HAL_I2C_Init()
477 … hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback */ in HAL_I2C_Init()
478 … hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback */ in HAL_I2C_Init()
479 … hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback */ in HAL_I2C_Init()
480 … hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback */ in HAL_I2C_Init()
481 … hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_I2C_Init()
482 … hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ in HAL_I2C_Init()
483 … hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ in HAL_I2C_Init()
485 if (hi2c->MspInitCallback == NULL) in HAL_I2C_Init()
487 hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ in HAL_I2C_Init()
491 hi2c->MspInitCallback(hi2c); in HAL_I2C_Init()
494 HAL_I2C_MspInit(hi2c); in HAL_I2C_Init()
498 hi2c->State = HAL_I2C_STATE_BUSY; in HAL_I2C_Init()
501 __HAL_I2C_DISABLE(hi2c); in HAL_I2C_Init()
504 hi2c->Instance->CR1 |= I2C_CR1_SWRST; in HAL_I2C_Init()
505 hi2c->Instance->CR1 &= ~I2C_CR1_SWRST; in HAL_I2C_Init()
511 if (I2C_MIN_PCLK_FREQ(pclk1, hi2c->Init.ClockSpeed) == 1U) in HAL_I2C_Init()
521 MODIFY_REG(hi2c->Instance->CR2, I2C_CR2_FREQ, freqrange); in HAL_I2C_Init()
525 …MODIFY_REG(hi2c->Instance->TRISE, I2C_TRISE_TRISE, I2C_RISE_TIME(freqrange, hi2c->Init.ClockSpeed)… in HAL_I2C_Init()
529 …MODIFY_REG(hi2c->Instance->CCR, (I2C_CCR_FS | I2C_CCR_DUTY | I2C_CCR_CCR), I2C_SPEED(pclk1, hi2c->… in HAL_I2C_Init()
533 …MODIFY_REG(hi2c->Instance->CR1, (I2C_CR1_ENGC | I2C_CR1_NOSTRETCH), (hi2c->Init.GeneralCallMode | … in HAL_I2C_Init()
537 …MODIFY_REG(hi2c->Instance->OAR1, (I2C_OAR1_ADDMODE | I2C_OAR1_ADD8_9 | I2C_OAR1_ADD1_7 | I2C_OAR1_… in HAL_I2C_Init()
541 …MODIFY_REG(hi2c->Instance->OAR2, (I2C_OAR2_ENDUAL | I2C_OAR2_ADD2), (hi2c->Init.DualAddressMode | … in HAL_I2C_Init()
544 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Init()
546 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Init()
547 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Init()
548 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Init()
549 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Init()
560 HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) in HAL_I2C_DeInit() argument
563 if (hi2c == NULL) in HAL_I2C_DeInit()
569 assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); in HAL_I2C_DeInit()
571 hi2c->State = HAL_I2C_STATE_BUSY; in HAL_I2C_DeInit()
574 __HAL_I2C_DISABLE(hi2c); in HAL_I2C_DeInit()
577 if (hi2c->MspDeInitCallback == NULL) in HAL_I2C_DeInit()
579 hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ in HAL_I2C_DeInit()
583 hi2c->MspDeInitCallback(hi2c); in HAL_I2C_DeInit()
586 HAL_I2C_MspDeInit(hi2c); in HAL_I2C_DeInit()
589 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_DeInit()
590 hi2c->State = HAL_I2C_STATE_RESET; in HAL_I2C_DeInit()
591 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_DeInit()
592 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_DeInit()
595 __HAL_UNLOCK(hi2c); in HAL_I2C_DeInit()
606 __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) in HAL_I2C_MspInit() argument
609 UNUSED(hi2c); in HAL_I2C_MspInit()
622 __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) in HAL_I2C_MspDeInit() argument
625 UNUSED(hi2c); in HAL_I2C_MspDeInit()
654 HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb… in HAL_I2C_RegisterCallback() argument
661 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_RegisterCallback()
666 __HAL_LOCK(hi2c); in HAL_I2C_RegisterCallback()
668 if (HAL_I2C_STATE_READY == hi2c->State) in HAL_I2C_RegisterCallback()
673 hi2c->MasterTxCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
677 hi2c->MasterRxCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
681 hi2c->SlaveTxCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
685 hi2c->SlaveRxCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
689 hi2c->ListenCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
693 hi2c->MemTxCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
697 hi2c->MemRxCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
701 hi2c->ErrorCallback = pCallback; in HAL_I2C_RegisterCallback()
705 hi2c->AbortCpltCallback = pCallback; in HAL_I2C_RegisterCallback()
709 hi2c->MspInitCallback = pCallback; in HAL_I2C_RegisterCallback()
713 hi2c->MspDeInitCallback = pCallback; in HAL_I2C_RegisterCallback()
718 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_RegisterCallback()
725 else if (HAL_I2C_STATE_RESET == hi2c->State) in HAL_I2C_RegisterCallback()
730 hi2c->MspInitCallback = pCallback; in HAL_I2C_RegisterCallback()
734 hi2c->MspDeInitCallback = pCallback; in HAL_I2C_RegisterCallback()
739 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_RegisterCallback()
749 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_RegisterCallback()
756 __HAL_UNLOCK(hi2c); in HAL_I2C_RegisterCallback()
781 HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal… in HAL_I2C_UnRegisterCallback() argument
786 __HAL_LOCK(hi2c); in HAL_I2C_UnRegisterCallback()
788 if (HAL_I2C_STATE_READY == hi2c->State) in HAL_I2C_UnRegisterCallback()
793 … hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback */ in HAL_I2C_UnRegisterCallback()
797 … hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback */ in HAL_I2C_UnRegisterCallback()
801 … hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback */ in HAL_I2C_UnRegisterCallback()
805 … hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback */ in HAL_I2C_UnRegisterCallback()
809 … hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback */ in HAL_I2C_UnRegisterCallback()
813 … hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback */ in HAL_I2C_UnRegisterCallback()
817 … hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback */ in HAL_I2C_UnRegisterCallback()
821 … hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_I2C_UnRegisterCallback()
825 … hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ in HAL_I2C_UnRegisterCallback()
829 … hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ in HAL_I2C_UnRegisterCallback()
833 … hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ in HAL_I2C_UnRegisterCallback()
838 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_UnRegisterCallback()
845 else if (HAL_I2C_STATE_RESET == hi2c->State) in HAL_I2C_UnRegisterCallback()
850 … hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ in HAL_I2C_UnRegisterCallback()
854 … hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ in HAL_I2C_UnRegisterCallback()
859 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_UnRegisterCallback()
869 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_UnRegisterCallback()
876 __HAL_UNLOCK(hi2c); in HAL_I2C_UnRegisterCallback()
888 HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC… in HAL_I2C_RegisterAddrCallback() argument
895 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_RegisterAddrCallback()
900 __HAL_LOCK(hi2c); in HAL_I2C_RegisterAddrCallback()
902 if (HAL_I2C_STATE_READY == hi2c->State) in HAL_I2C_RegisterAddrCallback()
904 hi2c->AddrCallback = pCallback; in HAL_I2C_RegisterAddrCallback()
909 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_RegisterAddrCallback()
916 __HAL_UNLOCK(hi2c); in HAL_I2C_RegisterAddrCallback()
927 HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_UnRegisterAddrCallback() argument
932 __HAL_LOCK(hi2c); in HAL_I2C_UnRegisterAddrCallback()
934 if (HAL_I2C_STATE_READY == hi2c->State) in HAL_I2C_UnRegisterAddrCallback()
936 hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ in HAL_I2C_UnRegisterAddrCallback()
941 hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; in HAL_I2C_UnRegisterAddrCallback()
948 __HAL_UNLOCK(hi2c); in HAL_I2C_UnRegisterAddrCallback()
959 static void I2C_Flush_DR(I2C_HandleTypeDef *hi2c) in I2C_Flush_DR() argument
962 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) != RESET) in I2C_Flush_DR()
964 hi2c->Instance->DR = 0x00U; in I2C_Flush_DR()
1056 HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD… in HAL_I2C_Master_Transmit() argument
1061 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Transmit()
1064 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_Master_Transmit()
1070 __HAL_LOCK(hi2c); in HAL_I2C_Master_Transmit()
1073 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Transmit()
1076 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Transmit()
1080 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Transmit()
1082 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Master_Transmit()
1083 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Transmit()
1084 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Transmit()
1087 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Transmit()
1088 hi2c->XferCount = Size; in HAL_I2C_Master_Transmit()
1089 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Transmit()
1090 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Master_Transmit()
1093 if (I2C_MasterRequestWrite(hi2c, DevAddress, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Transmit()
1099 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Master_Transmit()
1101 while (hi2c->XferSize > 0U) in HAL_I2C_Master_Transmit()
1104 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Transmit()
1106 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in HAL_I2C_Master_Transmit()
1109 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Transmit()
1115 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Master_Transmit()
1118 hi2c->pBuffPtr++; in HAL_I2C_Master_Transmit()
1121 hi2c->XferCount--; in HAL_I2C_Master_Transmit()
1122 hi2c->XferSize--; in HAL_I2C_Master_Transmit()
1124 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) in HAL_I2C_Master_Transmit()
1127 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Master_Transmit()
1130 hi2c->pBuffPtr++; in HAL_I2C_Master_Transmit()
1133 hi2c->XferCount--; in HAL_I2C_Master_Transmit()
1134 hi2c->XferSize--; in HAL_I2C_Master_Transmit()
1138 if (I2C_WaitOnBTFFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Transmit()
1140 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in HAL_I2C_Master_Transmit()
1143 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Transmit()
1150 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Transmit()
1152 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Transmit()
1153 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Transmit()
1156 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit()
1177 HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa… in HAL_I2C_Master_Receive() argument
1182 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Receive()
1185 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_Master_Receive()
1191 __HAL_LOCK(hi2c); in HAL_I2C_Master_Receive()
1194 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Receive()
1197 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Receive()
1201 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Receive()
1203 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Master_Receive()
1204 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Receive()
1205 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Receive()
1208 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Receive()
1209 hi2c->XferCount = Size; in HAL_I2C_Master_Receive()
1210 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Receive()
1211 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Master_Receive()
1214 if (I2C_MasterRequestRead(hi2c, DevAddress, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Receive()
1219 if (hi2c->XferSize == 0U) in HAL_I2C_Master_Receive()
1222 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Master_Receive()
1225 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Receive()
1227 else if (hi2c->XferSize == 1U) in HAL_I2C_Master_Receive()
1230 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive()
1233 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Master_Receive()
1236 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Receive()
1238 else if (hi2c->XferSize == 2U) in HAL_I2C_Master_Receive()
1241 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive()
1244 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Receive()
1247 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Master_Receive()
1252 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive()
1255 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Master_Receive()
1258 while (hi2c->XferSize > 0U) in HAL_I2C_Master_Receive()
1260 if (hi2c->XferSize <= 3U) in HAL_I2C_Master_Receive()
1263 if (hi2c->XferSize == 1U) in HAL_I2C_Master_Receive()
1266 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Receive()
1272 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1275 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1278 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1279 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1282 else if (hi2c->XferSize == 2U) in HAL_I2C_Master_Receive()
1285 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Receive()
1291 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Receive()
1294 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1297 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1300 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1301 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1304 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1307 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1310 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1311 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1317 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Receive()
1323 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive()
1326 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1329 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1332 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1333 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1336 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Receive()
1342 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); 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()
1355 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1358 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1361 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1362 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1368 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Master_Receive()
1374 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1377 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1380 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1381 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1383 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) in HAL_I2C_Master_Receive()
1386 if (hi2c->XferSize == 3U) in HAL_I2C_Master_Receive()
1389 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive()
1393 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Master_Receive()
1396 hi2c->pBuffPtr++; in HAL_I2C_Master_Receive()
1399 hi2c->XferSize--; in HAL_I2C_Master_Receive()
1400 hi2c->XferCount--; in HAL_I2C_Master_Receive()
1405 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive()
1406 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive()
1409 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive()
1428 HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, ui… in HAL_I2C_Slave_Transmit() argument
1433 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Transmit()
1441 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Transmit()
1444 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Transmit()
1447 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Transmit()
1451 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Transmit()
1453 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Slave_Transmit()
1454 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Transmit()
1455 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Transmit()
1458 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Transmit()
1459 hi2c->XferCount = Size; in HAL_I2C_Slave_Transmit()
1460 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Transmit()
1461 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Transmit()
1464 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Transmit()
1467 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Transmit()
1473 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Transmit()
1476 if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) in HAL_I2C_Slave_Transmit()
1479 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Transmit()
1485 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Transmit()
1488 while (hi2c->XferSize > 0U) in HAL_I2C_Slave_Transmit()
1491 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Transmit()
1494 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Transmit()
1500 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Slave_Transmit()
1503 hi2c->pBuffPtr++; in HAL_I2C_Slave_Transmit()
1506 hi2c->XferCount--; in HAL_I2C_Slave_Transmit()
1507 hi2c->XferSize--; in HAL_I2C_Slave_Transmit()
1509 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) in HAL_I2C_Slave_Transmit()
1512 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Slave_Transmit()
1515 hi2c->pBuffPtr++; in HAL_I2C_Slave_Transmit()
1518 hi2c->XferCount--; in HAL_I2C_Slave_Transmit()
1519 hi2c->XferSize--; in HAL_I2C_Slave_Transmit()
1524 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Transmit()
1530 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_Slave_Transmit()
1533 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Transmit()
1535 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Transmit()
1536 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Transmit()
1539 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Transmit()
1558 HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uin… in HAL_I2C_Slave_Receive() argument
1563 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Receive()
1571 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Receive()
1574 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Receive()
1577 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Receive()
1581 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Receive()
1583 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Slave_Receive()
1584 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Receive()
1585 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Receive()
1588 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Receive()
1589 hi2c->XferCount = Size; in HAL_I2C_Slave_Receive()
1590 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Receive()
1591 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Receive()
1594 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Receive()
1597 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Receive()
1603 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Receive()
1605 while (hi2c->XferSize > 0U) in HAL_I2C_Slave_Receive()
1608 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Receive()
1611 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Receive()
1617 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Slave_Receive()
1620 hi2c->pBuffPtr++; in HAL_I2C_Slave_Receive()
1623 hi2c->XferSize--; in HAL_I2C_Slave_Receive()
1624 hi2c->XferCount--; in HAL_I2C_Slave_Receive()
1626 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) in HAL_I2C_Slave_Receive()
1629 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Slave_Receive()
1632 hi2c->pBuffPtr++; in HAL_I2C_Slave_Receive()
1635 hi2c->XferSize--; in HAL_I2C_Slave_Receive()
1636 hi2c->XferCount--; in HAL_I2C_Slave_Receive()
1641 if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Slave_Receive()
1644 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Receive()
1650 __HAL_I2C_CLEAR_STOPFLAG(hi2c); in HAL_I2C_Slave_Receive()
1653 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Receive()
1655 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Receive()
1656 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Receive()
1659 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Receive()
1679 HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t … in HAL_I2C_Master_Transmit_IT() argument
1683 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Transmit_IT()
1692 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Transmit_IT()
1693 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Transmit_IT()
1694 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Transmit_IT()
1695 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Transmit_IT()
1700 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Transmit_IT()
1703 __HAL_LOCK(hi2c); in HAL_I2C_Master_Transmit_IT()
1706 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Transmit_IT()
1709 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Transmit_IT()
1713 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Transmit_IT()
1715 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Master_Transmit_IT()
1716 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Transmit_IT()
1717 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Transmit_IT()
1720 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Transmit_IT()
1721 hi2c->XferCount = Size; in HAL_I2C_Master_Transmit_IT()
1722 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Transmit_IT()
1723 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Master_Transmit_IT()
1724 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Transmit_IT()
1727 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_IT()
1733 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Transmit_IT()
1736 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Transmit_IT()
1756 HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *… in HAL_I2C_Master_Receive_IT() argument
1760 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Receive_IT()
1769 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Receive_IT()
1770 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive_IT()
1771 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive_IT()
1772 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Receive_IT()
1777 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Receive_IT()
1780 __HAL_LOCK(hi2c); in HAL_I2C_Master_Receive_IT()
1783 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Receive_IT()
1786 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Receive_IT()
1790 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Receive_IT()
1792 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Master_Receive_IT()
1793 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Receive_IT()
1794 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Receive_IT()
1797 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Receive_IT()
1798 hi2c->XferCount = Size; in HAL_I2C_Master_Receive_IT()
1799 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Receive_IT()
1800 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Master_Receive_IT()
1801 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Receive_IT()
1805 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_IT()
1812 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Receive_IT()
1815 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive_IT()
1818 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Receive_IT()
1836 HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) in HAL_I2C_Slave_Transmit_IT() argument
1839 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Transmit_IT()
1847 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Transmit_IT()
1850 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Transmit_IT()
1853 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Transmit_IT()
1857 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Transmit_IT()
1859 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Slave_Transmit_IT()
1860 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Transmit_IT()
1861 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Transmit_IT()
1864 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Transmit_IT()
1865 hi2c->XferCount = Size; in HAL_I2C_Slave_Transmit_IT()
1866 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Transmit_IT()
1867 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Transmit_IT()
1870 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Transmit_IT()
1873 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Transmit_IT()
1880 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Slave_Transmit_IT()
1898 HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) in HAL_I2C_Slave_Receive_IT() argument
1901 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Receive_IT()
1909 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Receive_IT()
1912 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Receive_IT()
1915 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Receive_IT()
1919 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Receive_IT()
1921 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Slave_Receive_IT()
1922 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Receive_IT()
1923 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Receive_IT()
1926 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Receive_IT()
1927 hi2c->XferCount = Size; in HAL_I2C_Slave_Receive_IT()
1928 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Receive_IT()
1929 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Receive_IT()
1932 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Receive_IT()
1935 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Receive_IT()
1942 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Slave_Receive_IT()
1962 HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t… in HAL_I2C_Master_Transmit_DMA() argument
1967 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Transmit_DMA()
1976 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Transmit_DMA()
1977 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Transmit_DMA()
1978 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Transmit_DMA()
1979 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Transmit_DMA()
1984 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Transmit_DMA()
1987 __HAL_LOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
1990 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Transmit_DMA()
1993 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Transmit_DMA()
1997 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Transmit_DMA()
1999 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Master_Transmit_DMA()
2000 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Transmit_DMA()
2001 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Transmit_DMA()
2004 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Transmit_DMA()
2005 hi2c->XferCount = Size; in HAL_I2C_Master_Transmit_DMA()
2006 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Transmit_DMA()
2007 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Master_Transmit_DMA()
2008 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Transmit_DMA()
2010 if (hi2c->XferSize > 0U) in HAL_I2C_Master_Transmit_DMA()
2012 if (hi2c->hdmatx != NULL) in HAL_I2C_Master_Transmit_DMA()
2015 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Master_Transmit_DMA()
2018 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Master_Transmit_DMA()
2021 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Master_Transmit_DMA()
2022 hi2c->hdmatx->XferM1CpltCallback = NULL; in HAL_I2C_Master_Transmit_DMA()
2023 hi2c->hdmatx->XferM1HalfCpltCallback = NULL; in HAL_I2C_Master_Transmit_DMA()
2024 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Master_Transmit_DMA()
2027 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Master_Transmit_DMA()
2032 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Transmit_DMA()
2033 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Transmit_DMA()
2036 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Master_Transmit_DMA()
2039 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
2047 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
2054 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Master_Transmit_DMA()
2057 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Master_Transmit_DMA()
2060 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Transmit_DMA()
2063 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Transmit_DMA()
2068 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Transmit_DMA()
2069 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Transmit_DMA()
2072 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Master_Transmit_DMA()
2075 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
2083 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Transmit_DMA()
2086 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Transmit_DMA()
2089 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
2096 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Transmit_DMA()
2117 HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t … in HAL_I2C_Master_Receive_DMA() argument
2122 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Receive_DMA()
2131 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Receive_DMA()
2132 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive_DMA()
2133 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive_DMA()
2134 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Receive_DMA()
2139 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Receive_DMA()
2142 __HAL_LOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2145 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Receive_DMA()
2148 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Receive_DMA()
2152 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Receive_DMA()
2154 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Master_Receive_DMA()
2155 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Receive_DMA()
2156 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Receive_DMA()
2159 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Receive_DMA()
2160 hi2c->XferCount = Size; in HAL_I2C_Master_Receive_DMA()
2161 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Receive_DMA()
2162 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Master_Receive_DMA()
2163 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Receive_DMA()
2165 if (hi2c->XferSize > 0U) in HAL_I2C_Master_Receive_DMA()
2167 if (hi2c->hdmarx != NULL) in HAL_I2C_Master_Receive_DMA()
2170 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Master_Receive_DMA()
2173 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Master_Receive_DMA()
2176 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Master_Receive_DMA()
2177 hi2c->hdmarx->XferM1CpltCallback = NULL; in HAL_I2C_Master_Receive_DMA()
2178 hi2c->hdmarx->XferM1HalfCpltCallback = NULL; in HAL_I2C_Master_Receive_DMA()
2179 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Master_Receive_DMA()
2182 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Master_Receive_DMA()
2187 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive_DMA()
2188 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive_DMA()
2191 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Master_Receive_DMA()
2194 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2202 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive_DMA()
2205 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Receive_DMA()
2208 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2215 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Master_Receive_DMA()
2218 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Master_Receive_DMA()
2223 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive_DMA()
2224 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive_DMA()
2227 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Master_Receive_DMA()
2230 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2238 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2245 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Receive_DMA()
2248 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive_DMA()
2251 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Receive_DMA()
2270 HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) in HAL_I2C_Slave_Transmit_DMA() argument
2274 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Transmit_DMA()
2282 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2285 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Transmit_DMA()
2288 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2292 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Transmit_DMA()
2294 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Slave_Transmit_DMA()
2295 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Transmit_DMA()
2296 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Transmit_DMA()
2299 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Transmit_DMA()
2300 hi2c->XferCount = Size; in HAL_I2C_Slave_Transmit_DMA()
2301 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Transmit_DMA()
2302 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Transmit_DMA()
2304 if (hi2c->hdmatx != NULL) in HAL_I2C_Slave_Transmit_DMA()
2307 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Slave_Transmit_DMA()
2310 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Slave_Transmit_DMA()
2313 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Slave_Transmit_DMA()
2314 hi2c->hdmatx->XferM1CpltCallback = NULL; in HAL_I2C_Slave_Transmit_DMA()
2315 hi2c->hdmatx->XferM1HalfCpltCallback = NULL; in HAL_I2C_Slave_Transmit_DMA()
2316 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Slave_Transmit_DMA()
2319 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Slave_Transmit_DMA()
2324 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_Slave_Transmit_DMA()
2325 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Transmit_DMA()
2328 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Slave_Transmit_DMA()
2331 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2339 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Transmit_DMA()
2342 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2348 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Transmit_DMA()
2351 hi2c->Instance->CR2 |= I2C_CR2_DMAEN; in HAL_I2C_Slave_Transmit_DMA()
2358 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Transmit_DMA()
2359 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Transmit_DMA()
2362 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Slave_Transmit_DMA()
2365 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2384 HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) in HAL_I2C_Slave_Receive_DMA() argument
2388 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Receive_DMA()
2396 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Receive_DMA()
2399 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Receive_DMA()
2402 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Receive_DMA()
2406 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Receive_DMA()
2408 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Slave_Receive_DMA()
2409 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Receive_DMA()
2410 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Receive_DMA()
2413 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Receive_DMA()
2414 hi2c->XferCount = Size; in HAL_I2C_Slave_Receive_DMA()
2415 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Receive_DMA()
2416 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Receive_DMA()
2418 if (hi2c->hdmarx != NULL) in HAL_I2C_Slave_Receive_DMA()
2421 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Slave_Receive_DMA()
2424 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Slave_Receive_DMA()
2427 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Slave_Receive_DMA()
2428 hi2c->hdmarx->XferM1CpltCallback = NULL; in HAL_I2C_Slave_Receive_DMA()
2429 hi2c->hdmarx->XferM1HalfCpltCallback = NULL; in HAL_I2C_Slave_Receive_DMA()
2430 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Slave_Receive_DMA()
2433 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Slave_Receive_DMA()
2438 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_Slave_Receive_DMA()
2439 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Receive_DMA()
2442 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Slave_Receive_DMA()
2445 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Receive_DMA()
2453 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Receive_DMA()
2456 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Receive_DMA()
2462 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Receive_DMA()
2465 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Receive_DMA()
2472 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Receive_DMA()
2473 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Receive_DMA()
2476 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Slave_Receive_DMA()
2479 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Receive_DMA()
2503 HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre… in HAL_I2C_Mem_Write() argument
2511 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Write()
2514 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_Mem_Write()
2520 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Write()
2523 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Write()
2526 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Write()
2530 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Write()
2532 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Mem_Write()
2533 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Write()
2534 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Write()
2537 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Write()
2538 hi2c->XferCount = Size; in HAL_I2C_Mem_Write()
2539 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Write()
2540 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Write()
2543 …if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Write()
2548 while (hi2c->XferSize > 0U) in HAL_I2C_Mem_Write()
2551 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Write()
2553 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in HAL_I2C_Mem_Write()
2556 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Write()
2562 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Mem_Write()
2565 hi2c->pBuffPtr++; in HAL_I2C_Mem_Write()
2568 hi2c->XferSize--; in HAL_I2C_Mem_Write()
2569 hi2c->XferCount--; in HAL_I2C_Mem_Write()
2571 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) in HAL_I2C_Mem_Write()
2574 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Mem_Write()
2577 hi2c->pBuffPtr++; in HAL_I2C_Mem_Write()
2580 hi2c->XferSize--; in HAL_I2C_Mem_Write()
2581 hi2c->XferCount--; in HAL_I2C_Mem_Write()
2586 if (I2C_WaitOnBTFFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Write()
2588 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in HAL_I2C_Mem_Write()
2591 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Write()
2597 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Write()
2599 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write()
2600 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write()
2603 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write()
2626 HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres… in HAL_I2C_Mem_Read() argument
2634 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Read()
2637 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_Mem_Read()
2643 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Read()
2646 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Read()
2649 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Read()
2653 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Read()
2655 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Mem_Read()
2656 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Read()
2657 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Read()
2660 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Read()
2661 hi2c->XferCount = Size; in HAL_I2C_Mem_Read()
2662 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Read()
2663 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Read()
2666 … if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2671 if (hi2c->XferSize == 0U) in HAL_I2C_Mem_Read()
2674 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read()
2677 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read()
2679 else if (hi2c->XferSize == 1U) in HAL_I2C_Mem_Read()
2682 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read()
2685 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read()
2688 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read()
2690 else if (hi2c->XferSize == 2U) in HAL_I2C_Mem_Read()
2693 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read()
2696 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Read()
2699 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read()
2704 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read()
2707 while (hi2c->XferSize > 0U) in HAL_I2C_Mem_Read()
2709 if (hi2c->XferSize <= 3U) in HAL_I2C_Mem_Read()
2712 if (hi2c->XferSize == 1U) in HAL_I2C_Mem_Read()
2715 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2721 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2724 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2727 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2728 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2731 else if (hi2c->XferSize == 2U) in HAL_I2C_Mem_Read()
2734 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2740 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read()
2743 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2746 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2749 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2750 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2753 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2756 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2759 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2760 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2766 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2772 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read()
2775 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2778 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2781 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2782 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2785 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2791 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read()
2794 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2797 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2800 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2801 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2804 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2807 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2810 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2811 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2817 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2823 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2826 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2829 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2830 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2832 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) in HAL_I2C_Mem_Read()
2834 if (hi2c->XferSize == 3U) in HAL_I2C_Mem_Read()
2837 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read()
2840 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2843 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2846 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2847 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2852 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read()
2853 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read()
2856 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read()
2878 HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd… in HAL_I2C_Mem_Write_IT() argument
2885 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Write_IT()
2894 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Mem_Write_IT()
2895 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_IT()
2896 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_IT()
2897 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Mem_Write_IT()
2902 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Mem_Write_IT()
2905 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Write_IT()
2908 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Write_IT()
2911 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Write_IT()
2915 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Write_IT()
2917 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Mem_Write_IT()
2918 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Write_IT()
2919 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Write_IT()
2922 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Write_IT()
2923 hi2c->XferCount = Size; in HAL_I2C_Mem_Write_IT()
2924 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Write_IT()
2925 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Write_IT()
2926 hi2c->Devaddress = DevAddress; in HAL_I2C_Mem_Write_IT()
2927 hi2c->Memaddress = MemAddress; in HAL_I2C_Mem_Write_IT()
2928 hi2c->MemaddSize = MemAddSize; in HAL_I2C_Mem_Write_IT()
2929 hi2c->EventCount = 0U; in HAL_I2C_Mem_Write_IT()
2932 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Mem_Write_IT()
2935 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_IT()
2942 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Mem_Write_IT()
2963 HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd… in HAL_I2C_Mem_Read_IT() argument
2970 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Read_IT()
2979 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Mem_Read_IT()
2980 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_IT()
2981 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read_IT()
2982 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Mem_Read_IT()
2987 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Mem_Read_IT()
2990 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Read_IT()
2993 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Read_IT()
2996 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Read_IT()
3000 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Read_IT()
3002 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Mem_Read_IT()
3003 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Read_IT()
3004 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Read_IT()
3007 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Read_IT()
3008 hi2c->XferCount = Size; in HAL_I2C_Mem_Read_IT()
3009 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Read_IT()
3010 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Read_IT()
3011 hi2c->Devaddress = DevAddress; in HAL_I2C_Mem_Read_IT()
3012 hi2c->Memaddress = MemAddress; in HAL_I2C_Mem_Read_IT()
3013 hi2c->MemaddSize = MemAddSize; in HAL_I2C_Mem_Read_IT()
3014 hi2c->EventCount = 0U; in HAL_I2C_Mem_Read_IT()
3017 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read_IT()
3020 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Mem_Read_IT()
3023 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_IT()
3025 if (hi2c->XferSize > 0U) in HAL_I2C_Mem_Read_IT()
3032 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Mem_Read_IT()
3054 HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA… in HAL_I2C_Mem_Write_DMA() argument
3065 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Write_DMA()
3074 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Mem_Write_DMA()
3075 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_DMA()
3076 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_DMA()
3077 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Mem_Write_DMA()
3082 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Mem_Write_DMA()
3085 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3088 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Write_DMA()
3091 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Write_DMA()
3095 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Write_DMA()
3097 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Mem_Write_DMA()
3098 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Write_DMA()
3099 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Write_DMA()
3102 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Write_DMA()
3103 hi2c->XferCount = Size; in HAL_I2C_Mem_Write_DMA()
3104 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Write_DMA()
3105 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Write_DMA()
3106 hi2c->Devaddress = DevAddress; in HAL_I2C_Mem_Write_DMA()
3107 hi2c->Memaddress = MemAddress; in HAL_I2C_Mem_Write_DMA()
3108 hi2c->MemaddSize = MemAddSize; in HAL_I2C_Mem_Write_DMA()
3109 hi2c->EventCount = 0U; in HAL_I2C_Mem_Write_DMA()
3111 if (hi2c->XferSize > 0U) in HAL_I2C_Mem_Write_DMA()
3113 if (hi2c->hdmatx != NULL) in HAL_I2C_Mem_Write_DMA()
3116 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Mem_Write_DMA()
3119 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Mem_Write_DMA()
3122 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Mem_Write_DMA()
3123 hi2c->hdmatx->XferM1CpltCallback = NULL; in HAL_I2C_Mem_Write_DMA()
3124 hi2c->hdmatx->XferM1HalfCpltCallback = NULL; in HAL_I2C_Mem_Write_DMA()
3125 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Mem_Write_DMA()
3128 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Mem_Write_DMA()
3133 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_DMA()
3134 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_DMA()
3137 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Mem_Write_DMA()
3140 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3148 …if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) … in HAL_I2C_Mem_Write_DMA()
3151 dmaxferstatus = HAL_DMA_Abort_IT(hi2c->hdmatx); in HAL_I2C_Mem_Write_DMA()
3157 hi2c->hdmatx->XferCpltCallback = NULL; in HAL_I2C_Mem_Write_DMA()
3160 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Write_DMA()
3162 hi2c->XferSize = 0U; in HAL_I2C_Mem_Write_DMA()
3163 hi2c->XferCount = 0U; in HAL_I2C_Mem_Write_DMA()
3166 __HAL_I2C_DISABLE(hi2c); in HAL_I2C_Mem_Write_DMA()
3172 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Write_DMA()
3175 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3181 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_ERR); in HAL_I2C_Mem_Write_DMA()
3184 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Mem_Write_DMA()
3191 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_DMA()
3192 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_DMA()
3195 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Mem_Write_DMA()
3198 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3206 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_DMA()
3207 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_DMA()
3210 hi2c->ErrorCode |= HAL_I2C_ERROR_SIZE; in HAL_I2C_Mem_Write_DMA()
3213 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3236 HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd… in HAL_I2C_Mem_Read_DMA() argument
3246 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Read_DMA()
3255 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Mem_Read_DMA()
3256 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_DMA()
3257 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read_DMA()
3258 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Mem_Read_DMA()
3263 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Mem_Read_DMA()
3266 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3269 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Read_DMA()
3272 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Read_DMA()
3276 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Read_DMA()
3278 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Mem_Read_DMA()
3279 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Read_DMA()
3280 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Read_DMA()
3283 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Read_DMA()
3284 hi2c->XferCount = Size; in HAL_I2C_Mem_Read_DMA()
3285 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Read_DMA()
3286 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Read_DMA()
3287 hi2c->Devaddress = DevAddress; in HAL_I2C_Mem_Read_DMA()
3288 hi2c->Memaddress = MemAddress; in HAL_I2C_Mem_Read_DMA()
3289 hi2c->MemaddSize = MemAddSize; in HAL_I2C_Mem_Read_DMA()
3290 hi2c->EventCount = 0U; in HAL_I2C_Mem_Read_DMA()
3292 if (hi2c->XferSize > 0U) in HAL_I2C_Mem_Read_DMA()
3294 if (hi2c->hdmarx != NULL) in HAL_I2C_Mem_Read_DMA()
3297 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Mem_Read_DMA()
3300 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Mem_Read_DMA()
3303 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Mem_Read_DMA()
3304 hi2c->hdmarx->XferM1CpltCallback = NULL; in HAL_I2C_Mem_Read_DMA()
3305 hi2c->hdmarx->XferM1HalfCpltCallback = NULL; in HAL_I2C_Mem_Read_DMA()
3306 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Mem_Read_DMA()
3309 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Mem_Read_DMA()
3314 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_DMA()
3315 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read_DMA()
3318 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Mem_Read_DMA()
3321 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3329 …if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) !… in HAL_I2C_Mem_Read_DMA()
3332 dmaxferstatus = HAL_DMA_Abort_IT(hi2c->hdmarx); in HAL_I2C_Mem_Read_DMA()
3338 hi2c->hdmarx->XferCpltCallback = NULL; in HAL_I2C_Mem_Read_DMA()
3341 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read_DMA()
3343 hi2c->XferSize = 0U; in HAL_I2C_Mem_Read_DMA()
3344 hi2c->XferCount = 0U; in HAL_I2C_Mem_Read_DMA()
3347 __HAL_I2C_DISABLE(hi2c); in HAL_I2C_Mem_Read_DMA()
3352 if (hi2c->XferSize == 1U) in HAL_I2C_Mem_Read_DMA()
3355 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read_DMA()
3360 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in HAL_I2C_Mem_Read_DMA()
3364 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read_DMA()
3367 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3373 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_ERR); in HAL_I2C_Mem_Read_DMA()
3376 hi2c->Instance->CR2 |= I2C_CR2_DMAEN; in HAL_I2C_Mem_Read_DMA()
3381 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_DMA()
3382 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read_DMA()
3385 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Mem_Read_DMA()
3388 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3396 …if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) !… in HAL_I2C_Mem_Read_DMA()
3402 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read_DMA()
3405 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read_DMA()
3407 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_DMA()
3410 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3432 HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria… in HAL_I2C_IsDeviceReady() argument
3440 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_IsDeviceReady()
3443 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_IsDeviceReady()
3449 __HAL_LOCK(hi2c); in HAL_I2C_IsDeviceReady()
3452 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_IsDeviceReady()
3455 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_IsDeviceReady()
3459 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_IsDeviceReady()
3461 hi2c->State = HAL_I2C_STATE_BUSY; in HAL_I2C_IsDeviceReady()
3462 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_IsDeviceReady()
3463 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_IsDeviceReady()
3468 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_IsDeviceReady()
3471 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_IsDeviceReady()
3473 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in HAL_I2C_IsDeviceReady()
3475 hi2c->ErrorCode = HAL_I2C_WRONG_START; in HAL_I2C_IsDeviceReady()
3481 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); in HAL_I2C_IsDeviceReady()
3487 tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); in HAL_I2C_IsDeviceReady()
3488 tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_IsDeviceReady()
3489 while ((hi2c->State != HAL_I2C_STATE_TIMEOUT) && (tmp1 == RESET) && (tmp2 == RESET)) in HAL_I2C_IsDeviceReady()
3493 hi2c->State = HAL_I2C_STATE_TIMEOUT; in HAL_I2C_IsDeviceReady()
3495 tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); in HAL_I2C_IsDeviceReady()
3496 tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_IsDeviceReady()
3499 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_IsDeviceReady()
3502 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR) == SET) in HAL_I2C_IsDeviceReady()
3505 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_IsDeviceReady()
3508 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_IsDeviceReady()
3511 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_IsDeviceReady()
3516 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_IsDeviceReady()
3519 __HAL_UNLOCK(hi2c); in HAL_I2C_IsDeviceReady()
3526 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_IsDeviceReady()
3529 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_IsDeviceReady()
3532 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_IsDeviceReady()
3543 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_IsDeviceReady()
3546 __HAL_UNLOCK(hi2c); in HAL_I2C_IsDeviceReady()
3568 HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint… in HAL_I2C_Master_Seq_Transmit_IT() argument
3576 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Seq_Transmit_IT()
3579 …if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND… in HAL_I2C_Master_Seq_Transmit_IT()
3588 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Seq_Transmit_IT()
3589 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Transmit_IT()
3590 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Transmit_IT()
3591 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Seq_Transmit_IT()
3596 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Seq_Transmit_IT()
3600 __HAL_LOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_IT()
3603 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Seq_Transmit_IT()
3606 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Seq_Transmit_IT()
3610 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Transmit_IT()
3612 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Master_Seq_Transmit_IT()
3613 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Seq_Transmit_IT()
3614 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Seq_Transmit_IT()
3617 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Seq_Transmit_IT()
3618 hi2c->XferCount = Size; in HAL_I2C_Master_Seq_Transmit_IT()
3619 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Seq_Transmit_IT()
3620 hi2c->XferOptions = XferOptions; in HAL_I2C_Master_Seq_Transmit_IT()
3621 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Seq_Transmit_IT()
3623 Prev_State = hi2c->PreviousState; in HAL_I2C_Master_Seq_Transmit_IT()
3630 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Transmit_IT()
3634 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_IT()
3641 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Seq_Transmit_IT()
3663 HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin… in HAL_I2C_Master_Seq_Transmit_DMA() argument
3672 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Seq_Transmit_DMA()
3675 …if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND… in HAL_I2C_Master_Seq_Transmit_DMA()
3684 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3685 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Transmit_DMA()
3686 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3687 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Seq_Transmit_DMA()
3692 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Seq_Transmit_DMA()
3696 __HAL_LOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3699 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Seq_Transmit_DMA()
3702 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3706 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Transmit_DMA()
3708 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Master_Seq_Transmit_DMA()
3709 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Seq_Transmit_DMA()
3710 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3713 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Seq_Transmit_DMA()
3714 hi2c->XferCount = Size; in HAL_I2C_Master_Seq_Transmit_DMA()
3715 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Seq_Transmit_DMA()
3716 hi2c->XferOptions = XferOptions; in HAL_I2C_Master_Seq_Transmit_DMA()
3717 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Seq_Transmit_DMA()
3719 Prev_State = hi2c->PreviousState; in HAL_I2C_Master_Seq_Transmit_DMA()
3721 if (hi2c->XferSize > 0U) in HAL_I2C_Master_Seq_Transmit_DMA()
3723 if (hi2c->hdmatx != NULL) in HAL_I2C_Master_Seq_Transmit_DMA()
3726 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Master_Seq_Transmit_DMA()
3729 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Master_Seq_Transmit_DMA()
3732 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Master_Seq_Transmit_DMA()
3733 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Master_Seq_Transmit_DMA()
3736 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Master_Seq_Transmit_DMA()
3741 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Transmit_DMA()
3742 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3745 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Master_Seq_Transmit_DMA()
3748 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3756 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Transmit_DMA()
3763 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Transmit_DMA()
3767 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3778 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Master_Seq_Transmit_DMA()
3782 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); 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()
3791 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Master_Seq_Transmit_DMA()
3794 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3802 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Transmit_DMA()
3809 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Transmit_DMA()
3813 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3820 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Seq_Transmit_DMA()
3843 HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8… in HAL_I2C_Master_Seq_Receive_IT() argument
3852 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Seq_Receive_IT()
3855 …if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND… in HAL_I2C_Master_Seq_Receive_IT()
3864 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Seq_Receive_IT()
3865 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Receive_IT()
3866 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Receive_IT()
3867 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Seq_Receive_IT()
3872 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Seq_Receive_IT()
3876 __HAL_LOCK(hi2c); in HAL_I2C_Master_Seq_Receive_IT()
3879 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Seq_Receive_IT()
3882 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Seq_Receive_IT()
3886 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Receive_IT()
3888 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Master_Seq_Receive_IT()
3889 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Seq_Receive_IT()
3890 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Seq_Receive_IT()
3893 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Seq_Receive_IT()
3894 hi2c->XferCount = Size; in HAL_I2C_Master_Seq_Receive_IT()
3895 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Seq_Receive_IT()
3896 hi2c->XferOptions = XferOptions; in HAL_I2C_Master_Seq_Receive_IT()
3897 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Seq_Receive_IT()
3899 Prev_State = hi2c->PreviousState; in HAL_I2C_Master_Seq_Receive_IT()
3901 …if ((hi2c->XferCount == 2U) && ((XferOptions == I2C_LAST_FRAME) || (XferOptions == I2C_LAST_FRAME_… in HAL_I2C_Master_Seq_Receive_IT()
3906 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_IT()
3909 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Receive_IT()
3917 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_IT()
3923 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_IT()
3931 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Receive_IT()
3935 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_IT()
3942 __HAL_I2C_ENABLE_IT(hi2c, enableIT); in HAL_I2C_Master_Seq_Receive_IT()
3964 HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint… in HAL_I2C_Master_Seq_Receive_DMA() argument
3974 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Seq_Receive_DMA()
3977 …if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND… in HAL_I2C_Master_Seq_Receive_DMA()
3986 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
3987 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Receive_DMA()
3988 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
3989 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Seq_Receive_DMA()
3994 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Seq_Receive_DMA()
3998 __HAL_LOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4001 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Seq_Receive_DMA()
4004 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4008 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Receive_DMA()
4011 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in HAL_I2C_Master_Seq_Receive_DMA()
4013 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Master_Seq_Receive_DMA()
4014 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Seq_Receive_DMA()
4015 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
4018 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Seq_Receive_DMA()
4019 hi2c->XferCount = Size; in HAL_I2C_Master_Seq_Receive_DMA()
4020 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Seq_Receive_DMA()
4021 hi2c->XferOptions = XferOptions; in HAL_I2C_Master_Seq_Receive_DMA()
4022 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Seq_Receive_DMA()
4024 Prev_State = hi2c->PreviousState; in HAL_I2C_Master_Seq_Receive_DMA()
4026 if (hi2c->XferSize > 0U) in HAL_I2C_Master_Seq_Receive_DMA()
4028 …if ((hi2c->XferCount == 2U) && ((XferOptions == I2C_LAST_FRAME) || (XferOptions == I2C_LAST_FRAME_… in HAL_I2C_Master_Seq_Receive_DMA()
4033 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_DMA()
4036 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Receive_DMA()
4039 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in HAL_I2C_Master_Seq_Receive_DMA()
4044 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_DMA()
4050 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_DMA()
4055 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in HAL_I2C_Master_Seq_Receive_DMA()
4058 if (hi2c->hdmarx != NULL) in HAL_I2C_Master_Seq_Receive_DMA()
4061 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Master_Seq_Receive_DMA()
4064 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Master_Seq_Receive_DMA()
4067 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Master_Seq_Receive_DMA()
4068 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Master_Seq_Receive_DMA()
4071 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Master_Seq_Receive_DMA()
4076 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Receive_DMA()
4077 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
4080 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Master_Seq_Receive_DMA()
4083 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4094 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Receive_DMA()
4106 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4117 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Master_Seq_Receive_DMA()
4121 __HAL_I2C_ENABLE_IT(hi2c, enableIT); in HAL_I2C_Master_Seq_Receive_DMA()
4126 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Receive_DMA()
4127 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
4130 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Master_Seq_Receive_DMA()
4133 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4141 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_DMA()
4148 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Receive_DMA()
4152 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4159 __HAL_I2C_ENABLE_IT(hi2c, enableIT); in HAL_I2C_Master_Seq_Receive_DMA()
4179 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
4184 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in HAL_I2C_Slave_Seq_Transmit_IT()
4192 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_IT()
4195 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Seq_Transmit_IT()
4198 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Seq_Transmit_IT()
4202 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Seq_Transmit_IT()
4204 hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; in HAL_I2C_Slave_Seq_Transmit_IT()
4205 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Seq_Transmit_IT()
4206 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Seq_Transmit_IT()
4209 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Seq_Transmit_IT()
4210 hi2c->XferCount = Size; in HAL_I2C_Slave_Seq_Transmit_IT()
4211 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Seq_Transmit_IT()
4212 hi2c->XferOptions = XferOptions; in HAL_I2C_Slave_Seq_Transmit_IT()
4215 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Seq_Transmit_IT()
4218 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_IT()
4225 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Transmit_IT()
4245 HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t … in HAL_I2C_Slave_Seq_Transmit_DMA() argument
4252 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4260 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4263 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Transmit_DMA()
4267 if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4269 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4272 if (hi2c->hdmarx != NULL) in HAL_I2C_Slave_Seq_Transmit_DMA()
4274 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Transmit_DMA()
4278 hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; in HAL_I2C_Slave_Seq_Transmit_DMA()
4281 if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) in HAL_I2C_Slave_Seq_Transmit_DMA()
4284 hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); in HAL_I2C_Slave_Seq_Transmit_DMA()
4289 else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4291 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4293 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Transmit_DMA()
4296 if (hi2c->hdmatx != NULL) in HAL_I2C_Slave_Seq_Transmit_DMA()
4300 hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; in HAL_I2C_Slave_Seq_Transmit_DMA()
4303 if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) in HAL_I2C_Slave_Seq_Transmit_DMA()
4306 hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); in HAL_I2C_Slave_Seq_Transmit_DMA()
4317 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Seq_Transmit_DMA()
4320 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4324 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Seq_Transmit_DMA()
4326 hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; in HAL_I2C_Slave_Seq_Transmit_DMA()
4327 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Seq_Transmit_DMA()
4328 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Seq_Transmit_DMA()
4331 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Seq_Transmit_DMA()
4332 hi2c->XferCount = Size; in HAL_I2C_Slave_Seq_Transmit_DMA()
4333 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Seq_Transmit_DMA()
4334 hi2c->XferOptions = XferOptions; in HAL_I2C_Slave_Seq_Transmit_DMA()
4336 if (hi2c->hdmatx != NULL) in HAL_I2C_Slave_Seq_Transmit_DMA()
4339 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Slave_Seq_Transmit_DMA()
4342 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Slave_Seq_Transmit_DMA()
4345 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Slave_Seq_Transmit_DMA()
4346 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Slave_Seq_Transmit_DMA()
4349 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Slave_Seq_Transmit_DMA()
4354 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_Slave_Seq_Transmit_DMA()
4355 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Seq_Transmit_DMA()
4358 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Slave_Seq_Transmit_DMA()
4361 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4369 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Seq_Transmit_DMA()
4372 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4375 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4381 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Transmit_DMA()
4384 hi2c->Instance->CR2 |= I2C_CR2_DMAEN; in HAL_I2C_Slave_Seq_Transmit_DMA()
4391 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Seq_Transmit_DMA()
4392 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Seq_Transmit_DMA()
4395 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Slave_Seq_Transmit_DMA()
4398 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4419 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
4424 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in HAL_I2C_Slave_Seq_Receive_IT()
4432 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_IT()
4435 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Seq_Receive_IT()
4438 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Seq_Receive_IT()
4442 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Seq_Receive_IT()
4444 hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; in HAL_I2C_Slave_Seq_Receive_IT()
4445 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Seq_Receive_IT()
4446 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Seq_Receive_IT()
4449 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Seq_Receive_IT()
4450 hi2c->XferCount = Size; in HAL_I2C_Slave_Seq_Receive_IT()
4451 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Seq_Receive_IT()
4452 hi2c->XferOptions = XferOptions; in HAL_I2C_Slave_Seq_Receive_IT()
4455 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Seq_Receive_IT()
4458 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_IT()
4465 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Receive_IT()
4485 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
4492 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4500 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4503 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Receive_DMA()
4507 if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4509 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4512 if (hi2c->hdmarx != NULL) in HAL_I2C_Slave_Seq_Receive_DMA()
4514 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Receive_DMA()
4518 hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; in HAL_I2C_Slave_Seq_Receive_DMA()
4521 if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) in HAL_I2C_Slave_Seq_Receive_DMA()
4524 hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); in HAL_I2C_Slave_Seq_Receive_DMA()
4529 else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4531 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4533 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Receive_DMA()
4536 if (hi2c->hdmatx != NULL) in HAL_I2C_Slave_Seq_Receive_DMA()
4540 hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; in HAL_I2C_Slave_Seq_Receive_DMA()
4543 if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) in HAL_I2C_Slave_Seq_Receive_DMA()
4546 hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); in HAL_I2C_Slave_Seq_Receive_DMA()
4557 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Seq_Receive_DMA()
4560 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4564 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Seq_Receive_DMA()
4566 hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; in HAL_I2C_Slave_Seq_Receive_DMA()
4567 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Seq_Receive_DMA()
4568 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Seq_Receive_DMA()
4571 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Seq_Receive_DMA()
4572 hi2c->XferCount = Size; in HAL_I2C_Slave_Seq_Receive_DMA()
4573 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Seq_Receive_DMA()
4574 hi2c->XferOptions = XferOptions; in HAL_I2C_Slave_Seq_Receive_DMA()
4576 if (hi2c->hdmarx != NULL) in HAL_I2C_Slave_Seq_Receive_DMA()
4579 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Slave_Seq_Receive_DMA()
4582 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Slave_Seq_Receive_DMA()
4585 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Slave_Seq_Receive_DMA()
4586 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Slave_Seq_Receive_DMA()
4589 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Slave_Seq_Receive_DMA()
4594 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_Slave_Seq_Receive_DMA()
4595 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Seq_Receive_DMA()
4598 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Slave_Seq_Receive_DMA()
4601 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4609 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Seq_Receive_DMA()
4612 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4615 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4618 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Receive_DMA()
4624 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Receive_DMA()
4631 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Seq_Receive_DMA()
4632 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Seq_Receive_DMA()
4635 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Slave_Seq_Receive_DMA()
4638 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4655 HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) in HAL_I2C_EnableListen_IT() argument
4657 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_EnableListen_IT()
4659 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_EnableListen_IT()
4662 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_EnableListen_IT()
4665 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_EnableListen_IT()
4669 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_EnableListen_IT()
4672 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_EnableListen_IT()
4688 HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) in HAL_I2C_DisableListen_IT() argument
4694 if (hi2c->State == HAL_I2C_STATE_LISTEN) in HAL_I2C_DisableListen_IT()
4696 tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; in HAL_I2C_DisableListen_IT()
4697 hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); in HAL_I2C_DisableListen_IT()
4698 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_DisableListen_IT()
4699 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_DisableListen_IT()
4702 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_DisableListen_IT()
4705 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_DisableListen_IT()
4723 HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) in HAL_I2C_Master_Abort_IT() argument
4726 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in HAL_I2C_Master_Abort_IT()
4732 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && ((CurrentMode == HAL_I2C_MODE_MASTER) || in HAL_I2C_Master_Abort_IT()
4736 __HAL_LOCK(hi2c); in HAL_I2C_Master_Abort_IT()
4738 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Abort_IT()
4739 hi2c->State = HAL_I2C_STATE_ABORT; in HAL_I2C_Master_Abort_IT()
4742 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Abort_IT()
4745 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Abort_IT()
4747 hi2c->XferCount = 0U; in HAL_I2C_Master_Abort_IT()
4750 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Abort_IT()
4753 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Abort_IT()
4756 I2C_ITError(hi2c); in HAL_I2C_Master_Abort_IT()
4783 void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) in HAL_I2C_EV_IRQHandler() argument
4787 uint32_t itsources = READ_REG(hi2c->Instance->CR2); in HAL_I2C_EV_IRQHandler()
4788 uint32_t CurrentXferOptions = hi2c->XferOptions; in HAL_I2C_EV_IRQHandler()
4789 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in HAL_I2C_EV_IRQHandler()
4790 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in HAL_I2C_EV_IRQHandler()
4795 sr2itflags = READ_REG(hi2c->Instance->SR2); in HAL_I2C_EV_IRQHandler()
4796 sr1itflags = READ_REG(hi2c->Instance->SR1); in HAL_I2C_EV_IRQHandler()
4808 I2C_ConvertOtherXferOptions(hi2c); in HAL_I2C_EV_IRQHandler()
4810 I2C_Master_SB(hi2c); in HAL_I2C_EV_IRQHandler()
4815 I2C_Master_ADD10(hi2c); in HAL_I2C_EV_IRQHandler()
4820 I2C_Master_ADDR(hi2c); in HAL_I2C_EV_IRQHandler()
4826 if (READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) != I2C_CR2_DMAEN) in HAL_I2C_EV_IRQHandler()
4831 I2C_MasterTransmit_TXE(hi2c); in HAL_I2C_EV_IRQHandler()
4838 I2C_MasterTransmit_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
4844 I2C_MemoryTransmit_TXE_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
4858 if (READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) != I2C_CR2_DMAEN) in HAL_I2C_EV_IRQHandler()
4863 I2C_MasterReceive_RXNE(hi2c); in HAL_I2C_EV_IRQHandler()
4868 I2C_MasterReceive_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
4882 if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) in HAL_I2C_EV_IRQHandler()
4884 sr1itflags = READ_REG(hi2c->Instance->SR1); in HAL_I2C_EV_IRQHandler()
4888 sr2itflags = READ_REG(hi2c->Instance->SR2); in HAL_I2C_EV_IRQHandler()
4889 sr1itflags = READ_REG(hi2c->Instance->SR1); in HAL_I2C_EV_IRQHandler()
4896 if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) in HAL_I2C_EV_IRQHandler()
4898 sr2itflags = READ_REG(hi2c->Instance->SR2); in HAL_I2C_EV_IRQHandler()
4900 I2C_Slave_ADDR(hi2c, sr2itflags); in HAL_I2C_EV_IRQHandler()
4905 I2C_Slave_STOPF(hi2c); in HAL_I2C_EV_IRQHandler()
4913 I2C_SlaveTransmit_TXE(hi2c); in HAL_I2C_EV_IRQHandler()
4918 I2C_SlaveTransmit_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
4931 I2C_SlaveReceive_RXNE(hi2c); in HAL_I2C_EV_IRQHandler()
4936 I2C_SlaveReceive_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
4952 void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) in HAL_I2C_ER_IRQHandler() argument
4958 uint32_t sr1itflags = READ_REG(hi2c->Instance->SR1); in HAL_I2C_ER_IRQHandler()
4959 uint32_t itsources = READ_REG(hi2c->Instance->CR2); in HAL_I2C_ER_IRQHandler()
4961 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in HAL_I2C_ER_IRQHandler()
4969 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); in HAL_I2C_ER_IRQHandler()
4978 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); in HAL_I2C_ER_IRQHandler()
4985 tmp2 = hi2c->XferCount; in HAL_I2C_ER_IRQHandler()
4986 tmp3 = hi2c->State; in HAL_I2C_ER_IRQHandler()
4987 tmp4 = hi2c->PreviousState; in HAL_I2C_ER_IRQHandler()
4992 I2C_Slave_AF(hi2c); in HAL_I2C_ER_IRQHandler()
4997 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_ER_IRQHandler()
5005 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_ER_IRQHandler()
5015 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); in HAL_I2C_ER_IRQHandler()
5021 hi2c->ErrorCode |= error; in HAL_I2C_ER_IRQHandler()
5022 I2C_ITError(hi2c); in HAL_I2C_ER_IRQHandler()
5032 __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_MasterTxCpltCallback() argument
5035 UNUSED(hi2c); in HAL_I2C_MasterTxCpltCallback()
5048 __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_MasterRxCpltCallback() argument
5051 UNUSED(hi2c); in HAL_I2C_MasterRxCpltCallback()
5063 __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_SlaveTxCpltCallback() argument
5066 UNUSED(hi2c); in HAL_I2C_SlaveTxCpltCallback()
5079 __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_SlaveRxCpltCallback() argument
5082 UNUSED(hi2c); in HAL_I2C_SlaveRxCpltCallback()
5097 __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM… in HAL_I2C_AddrCallback() argument
5100 UNUSED(hi2c); in HAL_I2C_AddrCallback()
5115 __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_ListenCpltCallback() argument
5118 UNUSED(hi2c); in HAL_I2C_ListenCpltCallback()
5131 __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_MemTxCpltCallback() argument
5134 UNUSED(hi2c); in HAL_I2C_MemTxCpltCallback()
5147 __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_MemRxCpltCallback() argument
5150 UNUSED(hi2c); in HAL_I2C_MemRxCpltCallback()
5163 __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_ErrorCallback() argument
5166 UNUSED(hi2c); in HAL_I2C_ErrorCallback()
5179 __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_AbortCpltCallback() argument
5182 UNUSED(hi2c); in HAL_I2C_AbortCpltCallback()
5214 HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c) in HAL_I2C_GetState() argument
5217 return hi2c->State; in HAL_I2C_GetState()
5226 HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c) in HAL_I2C_GetMode() argument
5228 return hi2c->Mode; in HAL_I2C_GetMode()
5237 uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c) in HAL_I2C_GetError() argument
5239 return hi2c->ErrorCode; in HAL_I2C_GetError()
5260 static void I2C_MasterTransmit_TXE(I2C_HandleTypeDef *hi2c) in I2C_MasterTransmit_TXE() argument
5263 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_MasterTransmit_TXE()
5264 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in I2C_MasterTransmit_TXE()
5265 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterTransmit_TXE()
5267 if ((hi2c->XferSize == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX)) in I2C_MasterTransmit_TXE()
5272 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterTransmit_TXE()
5274 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; in I2C_MasterTransmit_TXE()
5275 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_TXE()
5276 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterTransmit_TXE()
5279 hi2c->MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5281 HAL_I2C_MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5287 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterTransmit_TXE()
5290 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_MasterTransmit_TXE()
5292 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterTransmit_TXE()
5293 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterTransmit_TXE()
5295 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterTransmit_TXE()
5297 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_TXE()
5299 hi2c->MemTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5301 HAL_I2C_MemTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5306 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_TXE()
5308 hi2c->MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5310 HAL_I2C_MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5318 if (hi2c->XferCount == 0U) in I2C_MasterTransmit_TXE()
5321 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterTransmit_TXE()
5325 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterTransmit_TXE()
5327 I2C_MemoryTransmit_TXE_BTF(hi2c); in I2C_MasterTransmit_TXE()
5332 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_MasterTransmit_TXE()
5335 hi2c->pBuffPtr++; in I2C_MasterTransmit_TXE()
5338 hi2c->XferCount--; in I2C_MasterTransmit_TXE()
5354 static void I2C_MasterTransmit_BTF(I2C_HandleTypeDef *hi2c) in I2C_MasterTransmit_BTF() argument
5357 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterTransmit_BTF()
5359 if (hi2c->State == HAL_I2C_STATE_BUSY_TX) in I2C_MasterTransmit_BTF()
5361 if (hi2c->XferCount != 0U) in I2C_MasterTransmit_BTF()
5364 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_MasterTransmit_BTF()
5367 hi2c->pBuffPtr++; in I2C_MasterTransmit_BTF()
5370 hi2c->XferCount--; in I2C_MasterTransmit_BTF()
5377 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterTransmit_BTF()
5379 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; in I2C_MasterTransmit_BTF()
5380 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_BTF()
5381 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterTransmit_BTF()
5384 hi2c->MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5386 HAL_I2C_MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5392 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterTransmit_BTF()
5395 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_MasterTransmit_BTF()
5397 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterTransmit_BTF()
5398 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterTransmit_BTF()
5399 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterTransmit_BTF()
5401 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_BTF()
5403 hi2c->MemTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5405 HAL_I2C_MemTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5410 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_BTF()
5413 hi2c->MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5415 HAL_I2C_MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5433 static void I2C_MemoryTransmit_TXE_BTF(I2C_HandleTypeDef *hi2c) in I2C_MemoryTransmit_TXE_BTF() argument
5436 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_MemoryTransmit_TXE_BTF()
5438 if (hi2c->EventCount == 0U) in I2C_MemoryTransmit_TXE_BTF()
5441 if (hi2c->MemaddSize == I2C_MEMADD_SIZE_8BIT) in I2C_MemoryTransmit_TXE_BTF()
5444 hi2c->Instance->DR = I2C_MEM_ADD_LSB(hi2c->Memaddress); in I2C_MemoryTransmit_TXE_BTF()
5446 hi2c->EventCount += 2U; in I2C_MemoryTransmit_TXE_BTF()
5452 hi2c->Instance->DR = I2C_MEM_ADD_MSB(hi2c->Memaddress); in I2C_MemoryTransmit_TXE_BTF()
5454 hi2c->EventCount++; in I2C_MemoryTransmit_TXE_BTF()
5457 else if (hi2c->EventCount == 1U) in I2C_MemoryTransmit_TXE_BTF()
5460 hi2c->Instance->DR = I2C_MEM_ADD_LSB(hi2c->Memaddress); in I2C_MemoryTransmit_TXE_BTF()
5462 hi2c->EventCount++; in I2C_MemoryTransmit_TXE_BTF()
5464 else if (hi2c->EventCount == 2U) in I2C_MemoryTransmit_TXE_BTF()
5469 hi2c->Instance->CR1 |= I2C_CR1_START; in I2C_MemoryTransmit_TXE_BTF()
5471 hi2c->EventCount++; in I2C_MemoryTransmit_TXE_BTF()
5473 else if ((hi2c->XferCount > 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX)) in I2C_MemoryTransmit_TXE_BTF()
5476 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_MemoryTransmit_TXE_BTF()
5479 hi2c->pBuffPtr++; in I2C_MemoryTransmit_TXE_BTF()
5482 hi2c->XferCount--; in I2C_MemoryTransmit_TXE_BTF()
5484 else if ((hi2c->XferCount == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX)) in I2C_MemoryTransmit_TXE_BTF()
5488 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MemoryTransmit_TXE_BTF()
5491 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_MemoryTransmit_TXE_BTF()
5493 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MemoryTransmit_TXE_BTF()
5494 hi2c->State = HAL_I2C_STATE_READY; in I2C_MemoryTransmit_TXE_BTF()
5495 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MemoryTransmit_TXE_BTF()
5497 hi2c->MemTxCpltCallback(hi2c); in I2C_MemoryTransmit_TXE_BTF()
5499 HAL_I2C_MemTxCpltCallback(hi2c); in I2C_MemoryTransmit_TXE_BTF()
5510 I2C_Flush_DR(hi2c); in I2C_MemoryTransmit_TXE_BTF()
5520 static void I2C_MasterReceive_RXNE(I2C_HandleTypeDef *hi2c) in I2C_MasterReceive_RXNE() argument
5522 if (hi2c->State == HAL_I2C_STATE_BUSY_RX) in I2C_MasterReceive_RXNE()
5527 CurrentXferOptions = hi2c->XferOptions; in I2C_MasterReceive_RXNE()
5528 tmp = hi2c->XferCount; in I2C_MasterReceive_RXNE()
5532 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_RXNE()
5535 hi2c->pBuffPtr++; in I2C_MasterReceive_RXNE()
5538 hi2c->XferCount--; in I2C_MasterReceive_RXNE()
5540 if (hi2c->XferCount == (uint16_t)3) in I2C_MasterReceive_RXNE()
5545 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterReceive_RXNE()
5548 else if ((hi2c->XferOptions != I2C_FIRST_AND_NEXT_FRAME) && ((tmp == 1U) || (tmp == 0U))) in I2C_MasterReceive_RXNE()
5550 if (I2C_WaitOnSTOPRequestThroughIT(hi2c) == HAL_OK) in I2C_MasterReceive_RXNE()
5553 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterReceive_RXNE()
5556 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterReceive_RXNE()
5559 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_RXNE()
5562 hi2c->pBuffPtr++; in I2C_MasterReceive_RXNE()
5565 hi2c->XferCount--; in I2C_MasterReceive_RXNE()
5567 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterReceive_RXNE()
5569 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterReceive_RXNE()
5571 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_RXNE()
5572 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterReceive_RXNE()
5575 hi2c->MemRxCpltCallback(hi2c); in I2C_MasterReceive_RXNE()
5577 HAL_I2C_MemRxCpltCallback(hi2c); in I2C_MasterReceive_RXNE()
5582 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_RXNE()
5585 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterReceive_RXNE()
5589 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; in I2C_MasterReceive_RXNE()
5593 hi2c->MasterRxCpltCallback(hi2c); in I2C_MasterReceive_RXNE()
5595 HAL_I2C_MasterRxCpltCallback(hi2c); in I2C_MasterReceive_RXNE()
5602 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterReceive_RXNE()
5605 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_RXNE()
5608 hi2c->pBuffPtr++; in I2C_MasterReceive_RXNE()
5611 hi2c->XferCount--; in I2C_MasterReceive_RXNE()
5613 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterReceive_RXNE()
5614 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_RXNE()
5618 hi2c->ErrorCallback(hi2c); in I2C_MasterReceive_RXNE()
5620 HAL_I2C_ErrorCallback(hi2c); in I2C_MasterReceive_RXNE()
5628 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterReceive_RXNE()
5639 static void I2C_MasterReceive_BTF(I2C_HandleTypeDef *hi2c) in I2C_MasterReceive_BTF() argument
5642 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterReceive_BTF()
5644 if (hi2c->XferCount == 4U) in I2C_MasterReceive_BTF()
5648 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterReceive_BTF()
5651 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5654 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5657 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5659 else if (hi2c->XferCount == 3U) in I2C_MasterReceive_BTF()
5663 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterReceive_BTF()
5668 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterReceive_BTF()
5672 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5675 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5678 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5680 else if (hi2c->XferCount == 2U) in I2C_MasterReceive_BTF()
5686 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterReceive_BTF()
5691 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterReceive_BTF()
5696 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_MasterReceive_BTF()
5704 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5707 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5710 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5713 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5716 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5719 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5722 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in I2C_MasterReceive_BTF()
5724 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterReceive_BTF()
5725 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterReceive_BTF()
5727 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_BTF()
5728 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterReceive_BTF()
5730 hi2c->MemRxCpltCallback(hi2c); in I2C_MasterReceive_BTF()
5732 HAL_I2C_MemRxCpltCallback(hi2c); in I2C_MasterReceive_BTF()
5737 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_BTF()
5740 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterReceive_BTF()
5744 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; in I2C_MasterReceive_BTF()
5747 hi2c->MasterRxCpltCallback(hi2c); in I2C_MasterReceive_BTF()
5749 HAL_I2C_MasterRxCpltCallback(hi2c); 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()
5772 static void I2C_Master_SB(I2C_HandleTypeDef *hi2c) in I2C_Master_SB() argument
5774 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_Master_SB()
5776 if (hi2c->EventCount == 0U) in I2C_Master_SB()
5779 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(hi2c->Devaddress); in I2C_Master_SB()
5783 hi2c->Instance->DR = I2C_7BIT_ADD_READ(hi2c->Devaddress); in I2C_Master_SB()
5788 if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) in I2C_Master_SB()
5791 if (hi2c->State == HAL_I2C_STATE_BUSY_TX) in I2C_Master_SB()
5793 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(hi2c->Devaddress); in I2C_Master_SB()
5797 hi2c->Instance->DR = I2C_7BIT_ADD_READ(hi2c->Devaddress); in I2C_Master_SB()
5800 if (((hi2c->hdmatx != NULL) && (hi2c->hdmatx->XferCpltCallback != NULL)) in I2C_Master_SB()
5801 || ((hi2c->hdmarx != NULL) && (hi2c->hdmarx->XferCpltCallback != NULL))) in I2C_Master_SB()
5804 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_Master_SB()
5809 if (hi2c->EventCount == 0U) in I2C_Master_SB()
5812 hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(hi2c->Devaddress); in I2C_Master_SB()
5814 else if (hi2c->EventCount == 1U) in I2C_Master_SB()
5817 hi2c->Instance->DR = I2C_10BIT_HEADER_READ(hi2c->Devaddress); in I2C_Master_SB()
5833 static void I2C_Master_ADD10(I2C_HandleTypeDef *hi2c) in I2C_Master_ADD10() argument
5836 hi2c->Instance->DR = I2C_10BIT_ADDRESS(hi2c->Devaddress); in I2C_Master_ADD10()
5838 if (((hi2c->hdmatx != NULL) && (hi2c->hdmatx->XferCpltCallback != NULL)) in I2C_Master_ADD10()
5839 || ((hi2c->hdmarx != NULL) && (hi2c->hdmarx->XferCpltCallback != NULL))) in I2C_Master_ADD10()
5842 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_Master_ADD10()
5852 static void I2C_Master_ADDR(I2C_HandleTypeDef *hi2c) in I2C_Master_ADDR() argument
5855 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in I2C_Master_ADDR()
5856 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_Master_ADDR()
5857 uint32_t Prev_State = hi2c->PreviousState; in I2C_Master_ADDR()
5859 if (hi2c->State == HAL_I2C_STATE_BUSY_RX) in I2C_Master_ADDR()
5861 if ((hi2c->EventCount == 0U) && (CurrentMode == HAL_I2C_MODE_MEM)) in I2C_Master_ADDR()
5864 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5866 else if ((hi2c->EventCount == 0U) && (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)) in I2C_Master_ADDR()
5869 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5872 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_Master_ADDR()
5874 hi2c->EventCount++; in I2C_Master_ADDR()
5878 if (hi2c->XferCount == 0U) in I2C_Master_ADDR()
5881 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5884 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_Master_ADDR()
5886 else if (hi2c->XferCount == 1U) in I2C_Master_ADDR()
5891 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5893 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in I2C_Master_ADDR()
5896 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5899 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5904 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5907 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_Master_ADDR()
5917 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5922 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5926 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5931 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5934 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5937 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_Master_ADDR()
5940 else if (hi2c->XferCount == 2U) in I2C_Master_ADDR()
5945 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5948 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in I2C_Master_ADDR()
5953 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5956 …if (((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) && ((CurrentXferOptions == I2C_NO_OPT… in I2C_Master_ADDR()
5959 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in I2C_Master_ADDR()
5963 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5968 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5970 …if (((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) && ((CurrentXferOptions == I2C_NO_OPT… in I2C_Master_ADDR()
5973 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in I2C_Master_ADDR()
5977 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5981 hi2c->EventCount = 0U; in I2C_Master_ADDR()
5987 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5997 static void I2C_SlaveTransmit_TXE(I2C_HandleTypeDef *hi2c) in I2C_SlaveTransmit_TXE() argument
6000 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_SlaveTransmit_TXE()
6002 if (hi2c->XferCount != 0U) in I2C_SlaveTransmit_TXE()
6005 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_SlaveTransmit_TXE()
6008 hi2c->pBuffPtr++; in I2C_SlaveTransmit_TXE()
6011 hi2c->XferCount--; in I2C_SlaveTransmit_TXE()
6013 if ((hi2c->XferCount == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX_LISTEN)) in I2C_SlaveTransmit_TXE()
6016 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_SlaveTransmit_TXE()
6019 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; in I2C_SlaveTransmit_TXE()
6020 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_SlaveTransmit_TXE()
6024 hi2c->SlaveTxCpltCallback(hi2c); in I2C_SlaveTransmit_TXE()
6026 HAL_I2C_SlaveTxCpltCallback(hi2c); in I2C_SlaveTransmit_TXE()
6038 static void I2C_SlaveTransmit_BTF(I2C_HandleTypeDef *hi2c) in I2C_SlaveTransmit_BTF() argument
6040 if (hi2c->XferCount != 0U) in I2C_SlaveTransmit_BTF()
6043 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_SlaveTransmit_BTF()
6046 hi2c->pBuffPtr++; in I2C_SlaveTransmit_BTF()
6049 hi2c->XferCount--; in I2C_SlaveTransmit_BTF()
6059 static void I2C_SlaveReceive_RXNE(I2C_HandleTypeDef *hi2c) in I2C_SlaveReceive_RXNE() argument
6062 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_SlaveReceive_RXNE()
6064 if (hi2c->XferCount != 0U) in I2C_SlaveReceive_RXNE()
6067 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_SlaveReceive_RXNE()
6070 hi2c->pBuffPtr++; in I2C_SlaveReceive_RXNE()
6073 hi2c->XferCount--; in I2C_SlaveReceive_RXNE()
6075 if ((hi2c->XferCount == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_RX_LISTEN)) in I2C_SlaveReceive_RXNE()
6078 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_SlaveReceive_RXNE()
6081 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; in I2C_SlaveReceive_RXNE()
6082 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_SlaveReceive_RXNE()
6086 hi2c->SlaveRxCpltCallback(hi2c); in I2C_SlaveReceive_RXNE()
6088 HAL_I2C_SlaveRxCpltCallback(hi2c); in I2C_SlaveReceive_RXNE()
6100 static void I2C_SlaveReceive_BTF(I2C_HandleTypeDef *hi2c) in I2C_SlaveReceive_BTF() argument
6102 if (hi2c->XferCount != 0U) in I2C_SlaveReceive_BTF()
6105 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_SlaveReceive_BTF()
6108 hi2c->pBuffPtr++; in I2C_SlaveReceive_BTF()
6111 hi2c->XferCount--; in I2C_SlaveReceive_BTF()
6122 static void I2C_Slave_ADDR(I2C_HandleTypeDef *hi2c, uint32_t IT2Flags) in I2C_Slave_ADDR() argument
6127 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in I2C_Slave_ADDR()
6130 __HAL_I2C_DISABLE_IT(hi2c, (I2C_IT_BUF)); in I2C_Slave_ADDR()
6140 SlaveAddrCode = (uint16_t)hi2c->Init.OwnAddress1; in I2C_Slave_ADDR()
6144 SlaveAddrCode = (uint16_t)hi2c->Init.OwnAddress2; in I2C_Slave_ADDR()
6148 __HAL_UNLOCK(hi2c); in I2C_Slave_ADDR()
6152 hi2c->AddrCallback(hi2c, TransferDirection, SlaveAddrCode); in I2C_Slave_ADDR()
6154 HAL_I2C_AddrCallback(hi2c, TransferDirection, SlaveAddrCode); in I2C_Slave_ADDR()
6160 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Slave_ADDR()
6163 __HAL_UNLOCK(hi2c); in I2C_Slave_ADDR()
6173 static void I2C_Slave_STOPF(I2C_HandleTypeDef *hi2c) in I2C_Slave_STOPF() argument
6176 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_Slave_STOPF()
6179 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_Slave_STOPF()
6182 __HAL_I2C_CLEAR_STOPFLAG(hi2c); in I2C_Slave_STOPF()
6185 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Slave_STOPF()
6188 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in I2C_Slave_STOPF()
6192 hi2c->XferCount = (uint16_t)(I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx)); in I2C_Slave_STOPF()
6194 if (hi2c->XferCount != 0U) in I2C_Slave_STOPF()
6197 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_Slave_STOPF()
6201 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_Slave_STOPF()
6204 if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) in I2C_Slave_STOPF()
6208 hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; in I2C_Slave_STOPF()
6211 if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) in I2C_Slave_STOPF()
6214 hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); in I2C_Slave_STOPF()
6220 hi2c->XferCount = (uint16_t)(I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx)); in I2C_Slave_STOPF()
6222 if (hi2c->XferCount != 0U) in I2C_Slave_STOPF()
6225 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_Slave_STOPF()
6229 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_Slave_STOPF()
6232 if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) in I2C_Slave_STOPF()
6236 hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; in I2C_Slave_STOPF()
6239 if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) in I2C_Slave_STOPF()
6242 hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); in I2C_Slave_STOPF()
6249 if (hi2c->XferCount != 0U) in I2C_Slave_STOPF()
6252 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) in I2C_Slave_STOPF()
6255 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_Slave_STOPF()
6258 hi2c->pBuffPtr++; in I2C_Slave_STOPF()
6261 hi2c->XferCount--; in I2C_Slave_STOPF()
6265 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) in I2C_Slave_STOPF()
6268 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_Slave_STOPF()
6271 hi2c->pBuffPtr++; in I2C_Slave_STOPF()
6274 hi2c->XferCount--; in I2C_Slave_STOPF()
6277 if (hi2c->XferCount != 0U) in I2C_Slave_STOPF()
6280 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_Slave_STOPF()
6284 if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) in I2C_Slave_STOPF()
6287 I2C_ITError(hi2c); in I2C_Slave_STOPF()
6294 hi2c->PreviousState = I2C_STATE_NONE; in I2C_Slave_STOPF()
6295 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_Slave_STOPF()
6299 hi2c->SlaveRxCpltCallback(hi2c); in I2C_Slave_STOPF()
6301 HAL_I2C_SlaveRxCpltCallback(hi2c); in I2C_Slave_STOPF()
6305 if (hi2c->State == HAL_I2C_STATE_LISTEN) in I2C_Slave_STOPF()
6307 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in I2C_Slave_STOPF()
6308 hi2c->PreviousState = I2C_STATE_NONE; in I2C_Slave_STOPF()
6309 hi2c->State = HAL_I2C_STATE_READY; in I2C_Slave_STOPF()
6310 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_Slave_STOPF()
6314 hi2c->ListenCpltCallback(hi2c); in I2C_Slave_STOPF()
6316 HAL_I2C_ListenCpltCallback(hi2c); in I2C_Slave_STOPF()
6321 … if ((hi2c->PreviousState == I2C_STATE_SLAVE_BUSY_RX) || (CurrentState == HAL_I2C_STATE_BUSY_RX)) in I2C_Slave_STOPF()
6323 hi2c->PreviousState = I2C_STATE_NONE; in I2C_Slave_STOPF()
6324 hi2c->State = HAL_I2C_STATE_READY; in I2C_Slave_STOPF()
6325 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_Slave_STOPF()
6328 hi2c->SlaveRxCpltCallback(hi2c); in I2C_Slave_STOPF()
6330 HAL_I2C_SlaveRxCpltCallback(hi2c); in I2C_Slave_STOPF()
6342 static void I2C_Slave_AF(I2C_HandleTypeDef *hi2c) in I2C_Slave_AF() argument
6345 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_Slave_AF()
6346 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_Slave_AF()
6351 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in I2C_Slave_AF()
6354 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_Slave_AF()
6357 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_Slave_AF()
6360 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Slave_AF()
6362 hi2c->PreviousState = I2C_STATE_NONE; in I2C_Slave_AF()
6363 hi2c->State = HAL_I2C_STATE_READY; in I2C_Slave_AF()
6364 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_Slave_AF()
6368 hi2c->ListenCpltCallback(hi2c); in I2C_Slave_AF()
6370 HAL_I2C_ListenCpltCallback(hi2c); in I2C_Slave_AF()
6375 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in I2C_Slave_AF()
6376 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; in I2C_Slave_AF()
6377 hi2c->State = HAL_I2C_STATE_READY; in I2C_Slave_AF()
6378 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_Slave_AF()
6381 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_Slave_AF()
6384 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_Slave_AF()
6387 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Slave_AF()
6390 I2C_Flush_DR(hi2c); in I2C_Slave_AF()
6393 hi2c->SlaveTxCpltCallback(hi2c); in I2C_Slave_AF()
6395 HAL_I2C_SlaveTxCpltCallback(hi2c); in I2C_Slave_AF()
6402 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_Slave_AF()
6411 static void I2C_ITError(I2C_HandleTypeDef *hi2c) in I2C_ITError() argument
6414 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_ITError()
6415 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in I2C_ITError()
6421 hi2c->Instance->CR1 &= ~I2C_CR1_POS; in I2C_ITError()
6427 hi2c->PreviousState = I2C_STATE_NONE; in I2C_ITError()
6428 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_ITError()
6434 …if ((READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) != I2C_CR2_DMAEN) && (CurrentState != HAL_I2C_ST… in I2C_ITError()
6436 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6437 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_ITError()
6439 hi2c->PreviousState = I2C_STATE_NONE; in I2C_ITError()
6443 if (READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in I2C_ITError()
6445 hi2c->Instance->CR2 &= ~I2C_CR2_DMAEN; in I2C_ITError()
6447 if (hi2c->hdmatx->State != HAL_DMA_STATE_READY) in I2C_ITError()
6451 hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; in I2C_ITError()
6453 if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) in I2C_ITError()
6456 __HAL_I2C_DISABLE(hi2c); in I2C_ITError()
6458 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6461 hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); in I2C_ITError()
6468 hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; in I2C_ITError()
6470 if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) in I2C_ITError()
6473 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) in I2C_ITError()
6476 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_ITError()
6479 hi2c->pBuffPtr++; in I2C_ITError()
6483 __HAL_I2C_DISABLE(hi2c); in I2C_ITError()
6485 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6488 hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); in I2C_ITError()
6492 else if (hi2c->State == HAL_I2C_STATE_ABORT) in I2C_ITError()
6494 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6495 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in I2C_ITError()
6498 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) in I2C_ITError()
6501 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_ITError()
6504 hi2c->pBuffPtr++; in I2C_ITError()
6508 __HAL_I2C_DISABLE(hi2c); in I2C_ITError()
6512 hi2c->AbortCpltCallback(hi2c); in I2C_ITError()
6514 HAL_I2C_AbortCpltCallback(hi2c); in I2C_ITError()
6520 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) in I2C_ITError()
6523 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_ITError()
6526 hi2c->pBuffPtr++; in I2C_ITError()
6531 hi2c->ErrorCallback(hi2c); in I2C_ITError()
6533 HAL_I2C_ErrorCallback(hi2c); in I2C_ITError()
6538 CurrentError = hi2c->ErrorCode; in I2C_ITError()
6546 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_ITError()
6551 CurrentState = hi2c->State; in I2C_ITError()
6552 …if (((hi2c->ErrorCode & HAL_I2C_ERROR_AF) == HAL_I2C_ERROR_AF) && (CurrentState == HAL_I2C_STATE_L… in I2C_ITError()
6554 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in I2C_ITError()
6555 hi2c->PreviousState = I2C_STATE_NONE; in I2C_ITError()
6556 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6557 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_ITError()
6561 hi2c->ListenCpltCallback(hi2c); in I2C_ITError()
6563 HAL_I2C_ListenCpltCallback(hi2c); in I2C_ITError()
6577 static HAL_StatusTypeDef I2C_MasterRequestWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint3… in I2C_MasterRequestWrite() argument
6580 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterRequestWrite()
6586 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestWrite()
6588 else if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) in I2C_MasterRequestWrite()
6591 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestWrite()
6599 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestWrite()
6601 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_MasterRequestWrite()
6603 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_MasterRequestWrite()
6608 if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) in I2C_MasterRequestWrite()
6611 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); in I2C_MasterRequestWrite()
6616 hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(DevAddress); in I2C_MasterRequestWrite()
6619 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADD10, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestWrite()
6625 hi2c->Instance->DR = I2C_10BIT_ADDRESS(DevAddress); in I2C_MasterRequestWrite()
6629 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestWrite()
6647 static HAL_StatusTypeDef I2C_MasterRequestRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32… in I2C_MasterRequestRead() argument
6650 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterRequestRead()
6653 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterRequestRead()
6659 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestRead()
6661 else if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) in I2C_MasterRequestRead()
6664 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestRead()
6672 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6674 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_MasterRequestRead()
6676 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_MasterRequestRead()
6681 if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) in I2C_MasterRequestRead()
6684 hi2c->Instance->DR = I2C_7BIT_ADD_READ(DevAddress); in I2C_MasterRequestRead()
6689 hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(DevAddress); in I2C_MasterRequestRead()
6692 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADD10, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6698 hi2c->Instance->DR = I2C_10BIT_ADDRESS(DevAddress); in I2C_MasterRequestRead()
6701 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6707 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_MasterRequestRead()
6710 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestRead()
6713 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6715 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_MasterRequestRead()
6717 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_MasterRequestRead()
6723 hi2c->Instance->DR = I2C_10BIT_HEADER_READ(DevAddress); in I2C_MasterRequestRead()
6727 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6747 static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1… in I2C_RequestMemoryWrite() argument
6750 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_RequestMemoryWrite()
6753 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryWrite()
6755 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_RequestMemoryWrite()
6757 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_RequestMemoryWrite()
6763 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); in I2C_RequestMemoryWrite()
6766 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryWrite()
6772 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_RequestMemoryWrite()
6775 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryWrite()
6777 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryWrite()
6780 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryWrite()
6789 hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); in I2C_RequestMemoryWrite()
6795 hi2c->Instance->DR = I2C_MEM_ADD_MSB(MemAddress); in I2C_RequestMemoryWrite()
6798 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryWrite()
6800 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryWrite()
6803 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryWrite()
6809 hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); in I2C_RequestMemoryWrite()
6827 static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16… in I2C_RequestMemoryRead() argument
6830 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_RequestMemoryRead()
6833 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_RequestMemoryRead()
6836 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6838 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_RequestMemoryRead()
6840 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_RequestMemoryRead()
6846 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); in I2C_RequestMemoryRead()
6849 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6855 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_RequestMemoryRead()
6858 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6860 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryRead()
6863 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryRead()
6872 hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); in I2C_RequestMemoryRead()
6878 hi2c->Instance->DR = I2C_MEM_ADD_MSB(MemAddress); in I2C_RequestMemoryRead()
6881 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6883 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryRead()
6886 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryRead()
6892 hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); in I2C_RequestMemoryRead()
6896 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6898 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryRead()
6901 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryRead()
6907 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_RequestMemoryRead()
6910 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6912 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_RequestMemoryRead()
6914 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_RequestMemoryRead()
6920 hi2c->Instance->DR = I2C_7BIT_ADD_READ(DevAddress); in I2C_RequestMemoryRead()
6923 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6938 …I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2C_DMAXferCplt() local
6941 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_DMAXferCplt()
6942 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in I2C_DMAXferCplt()
6943 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_DMAXferCplt()
6946 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in I2C_DMAXferCplt()
6949 if (hi2c->hdmatx != NULL) in I2C_DMAXferCplt()
6951 hi2c->hdmatx->XferCpltCallback = NULL; in I2C_DMAXferCplt()
6953 if (hi2c->hdmarx != NULL) in I2C_DMAXferCplt()
6955 hi2c->hdmarx->XferCpltCallback = NULL; in I2C_DMAXferCplt()
6961 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_DMAXferCplt()
6963 hi2c->XferCount = 0U; in I2C_DMAXferCplt()
6968 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; in I2C_DMAXferCplt()
6969 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_DMAXferCplt()
6973 hi2c->SlaveTxCpltCallback(hi2c); in I2C_DMAXferCplt()
6975 HAL_I2C_SlaveTxCpltCallback(hi2c); in I2C_DMAXferCplt()
6981 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; in I2C_DMAXferCplt()
6982 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_DMAXferCplt()
6986 hi2c->SlaveRxCpltCallback(hi2c); in I2C_DMAXferCplt()
6988 HAL_I2C_SlaveRxCpltCallback(hi2c); in I2C_DMAXferCplt()
6997 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in I2C_DMAXferCplt()
7000 else if (hi2c->Mode != HAL_I2C_MODE_NONE) in I2C_DMAXferCplt()
7002 if (hi2c->XferCount == (uint16_t)1) in I2C_DMAXferCplt()
7005 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_DMAXferCplt()
7009 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in I2C_DMAXferCplt()
7015 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_DMAXferCplt()
7019 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in I2C_DMAXferCplt()
7022 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_DMAXferCplt()
7024 hi2c->XferCount = 0U; in I2C_DMAXferCplt()
7027 if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) in I2C_DMAXferCplt()
7030 hi2c->ErrorCallback(hi2c); in I2C_DMAXferCplt()
7032 HAL_I2C_ErrorCallback(hi2c); in I2C_DMAXferCplt()
7037 hi2c->State = HAL_I2C_STATE_READY; in I2C_DMAXferCplt()
7039 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_DMAXferCplt()
7041 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAXferCplt()
7042 hi2c->PreviousState = I2C_STATE_NONE; in I2C_DMAXferCplt()
7045 hi2c->MemRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7047 HAL_I2C_MemRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7052 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAXferCplt()
7055 hi2c->PreviousState = I2C_STATE_NONE; in I2C_DMAXferCplt()
7059 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; in I2C_DMAXferCplt()
7063 hi2c->MasterRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7065 HAL_I2C_MasterRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7083 …I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2C_DMAError() local
7086 if (hi2c->hdmatx != NULL) in I2C_DMAError()
7088 hi2c->hdmatx->XferCpltCallback = NULL; in I2C_DMAError()
7090 if (hi2c->hdmarx != NULL) in I2C_DMAError()
7092 hi2c->hdmarx->XferCpltCallback = NULL; in I2C_DMAError()
7099 hi2c->Instance->CR1 &= ~I2C_CR1_ACK; in I2C_DMAError()
7101 hi2c->XferCount = 0U; in I2C_DMAError()
7103 hi2c->State = HAL_I2C_STATE_READY; in I2C_DMAError()
7104 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAError()
7106 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in I2C_DMAError()
7109 hi2c->ErrorCallback(hi2c); in I2C_DMAError()
7111 HAL_I2C_ErrorCallback(hi2c); in I2C_DMAError()
7125 …I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2C_DMAAbort() local
7128 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_DMAAbort()
7137 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_DMAAbort()
7142 while (READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP); in I2C_DMAAbort()
7145 if (hi2c->hdmatx != NULL) in I2C_DMAAbort()
7147 hi2c->hdmatx->XferCpltCallback = NULL; in I2C_DMAAbort()
7149 if (hi2c->hdmarx != NULL) in I2C_DMAAbort()
7151 hi2c->hdmarx->XferCpltCallback = NULL; in I2C_DMAAbort()
7155 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_DMAAbort()
7157 hi2c->XferCount = 0U; in I2C_DMAAbort()
7160 if (hi2c->hdmatx != NULL) in I2C_DMAAbort()
7162 hi2c->hdmatx->XferAbortCallback = NULL; in I2C_DMAAbort()
7164 if (hi2c->hdmarx != NULL) in I2C_DMAAbort()
7166 hi2c->hdmarx->XferAbortCallback = NULL; in I2C_DMAAbort()
7170 __HAL_I2C_DISABLE(hi2c); in I2C_DMAAbort()
7173 if (hi2c->State == HAL_I2C_STATE_ABORT) in I2C_DMAAbort()
7175 hi2c->State = HAL_I2C_STATE_READY; in I2C_DMAAbort()
7176 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAAbort()
7177 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in I2C_DMAAbort()
7181 hi2c->AbortCpltCallback(hi2c); in I2C_DMAAbort()
7183 HAL_I2C_AbortCpltCallback(hi2c); in I2C_DMAAbort()
7191 __HAL_I2C_ENABLE(hi2c); in I2C_DMAAbort()
7194 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_DMAAbort()
7197 hi2c->PreviousState = I2C_STATE_NONE; in I2C_DMAAbort()
7198 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_DMAAbort()
7202 hi2c->State = HAL_I2C_STATE_READY; in I2C_DMAAbort()
7203 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAAbort()
7208 hi2c->ErrorCallback(hi2c); in I2C_DMAAbort()
7210 HAL_I2C_ErrorCallback(hi2c); in I2C_DMAAbort()
7225 static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta… in I2C_WaitOnFlagUntilTimeout() argument
7228 while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) in I2C_WaitOnFlagUntilTimeout()
7235 if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) in I2C_WaitOnFlagUntilTimeout()
7237 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnFlagUntilTimeout()
7238 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnFlagUntilTimeout()
7239 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnFlagUntilTimeout()
7240 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnFlagUntilTimeout()
7243 __HAL_UNLOCK(hi2c); in I2C_WaitOnFlagUntilTimeout()
7262 static HAL_StatusTypeDef I2C_WaitOnMasterAddressFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t … in I2C_WaitOnMasterAddressFlagUntilTimeout() argument
7264 while (__HAL_I2C_GET_FLAG(hi2c, Flag) == RESET) in I2C_WaitOnMasterAddressFlagUntilTimeout()
7266 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) in I2C_WaitOnMasterAddressFlagUntilTimeout()
7269 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_WaitOnMasterAddressFlagUntilTimeout()
7272 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_WaitOnMasterAddressFlagUntilTimeout()
7274 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7275 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7276 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7277 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7280 __HAL_UNLOCK(hi2c); in I2C_WaitOnMasterAddressFlagUntilTimeout()
7290 if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == RESET)) in I2C_WaitOnMasterAddressFlagUntilTimeout()
7292 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7293 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7294 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7295 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7298 __HAL_UNLOCK(hi2c); in I2C_WaitOnMasterAddressFlagUntilTimeout()
7316 static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, u… in I2C_WaitOnTXEFlagUntilTimeout() argument
7318 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) in I2C_WaitOnTXEFlagUntilTimeout()
7321 if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) in I2C_WaitOnTXEFlagUntilTimeout()
7331 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)) in I2C_WaitOnTXEFlagUntilTimeout()
7333 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnTXEFlagUntilTimeout()
7334 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnTXEFlagUntilTimeout()
7335 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnTXEFlagUntilTimeout()
7336 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnTXEFlagUntilTimeout()
7339 __HAL_UNLOCK(hi2c); in I2C_WaitOnTXEFlagUntilTimeout()
7357 static HAL_StatusTypeDef I2C_WaitOnBTFFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, u… in I2C_WaitOnBTFFlagUntilTimeout() argument
7359 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET) in I2C_WaitOnBTFFlagUntilTimeout()
7362 if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) in I2C_WaitOnBTFFlagUntilTimeout()
7372 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET)) in I2C_WaitOnBTFFlagUntilTimeout()
7374 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnBTFFlagUntilTimeout()
7375 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnBTFFlagUntilTimeout()
7376 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnBTFFlagUntilTimeout()
7377 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnBTFFlagUntilTimeout()
7380 __HAL_UNLOCK(hi2c); in I2C_WaitOnBTFFlagUntilTimeout()
7398 static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, … in I2C_WaitOnSTOPFlagUntilTimeout() argument
7400 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) in I2C_WaitOnSTOPFlagUntilTimeout()
7403 if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) in I2C_WaitOnSTOPFlagUntilTimeout()
7411 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)) in I2C_WaitOnSTOPFlagUntilTimeout()
7413 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnSTOPFlagUntilTimeout()
7414 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnSTOPFlagUntilTimeout()
7415 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnSTOPFlagUntilTimeout()
7416 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnSTOPFlagUntilTimeout()
7419 __HAL_UNLOCK(hi2c); in I2C_WaitOnSTOPFlagUntilTimeout()
7434 static HAL_StatusTypeDef I2C_WaitOnSTOPRequestThroughIT(I2C_HandleTypeDef *hi2c) in I2C_WaitOnSTOPRequestThroughIT() argument
7445 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnSTOPRequestThroughIT()
7450 while (READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP); in I2C_WaitOnSTOPRequestThroughIT()
7463 static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, … in I2C_WaitOnRXNEFlagUntilTimeout() argument
7466 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) in I2C_WaitOnRXNEFlagUntilTimeout()
7469 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) in I2C_WaitOnRXNEFlagUntilTimeout()
7472 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); in I2C_WaitOnRXNEFlagUntilTimeout()
7474 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7475 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnRXNEFlagUntilTimeout()
7476 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7477 hi2c->ErrorCode |= HAL_I2C_ERROR_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7480 __HAL_UNLOCK(hi2c); in I2C_WaitOnRXNEFlagUntilTimeout()
7488 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)) in I2C_WaitOnRXNEFlagUntilTimeout()
7490 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7491 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnRXNEFlagUntilTimeout()
7492 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7493 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnRXNEFlagUntilTimeout()
7496 __HAL_UNLOCK(hi2c); in I2C_WaitOnRXNEFlagUntilTimeout()
7511 static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c) in I2C_IsAcknowledgeFailed() argument
7513 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) in I2C_IsAcknowledgeFailed()
7516 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_IsAcknowledgeFailed()
7518 hi2c->PreviousState = I2C_STATE_NONE; in I2C_IsAcknowledgeFailed()
7519 hi2c->State = HAL_I2C_STATE_READY; in I2C_IsAcknowledgeFailed()
7520 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_IsAcknowledgeFailed()
7521 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_IsAcknowledgeFailed()
7524 __HAL_UNLOCK(hi2c); in I2C_IsAcknowledgeFailed()
7536 static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) in I2C_ConvertOtherXferOptions() argument
7541 if (hi2c->XferOptions == I2C_OTHER_FRAME) in I2C_ConvertOtherXferOptions()
7543 hi2c->XferOptions = I2C_FIRST_FRAME; in I2C_ConvertOtherXferOptions()
7549 else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) in I2C_ConvertOtherXferOptions()
7551 hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; in I2C_ConvertOtherXferOptions()