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()
474hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback */ in HAL_I2C_Init()
475hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback */ in HAL_I2C_Init()
476hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback */ in HAL_I2C_Init()
477hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback */ in HAL_I2C_Init()
478hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback */ in HAL_I2C_Init()
479hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback */ in HAL_I2C_Init()
480hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback */ in HAL_I2C_Init()
481hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_I2C_Init()
482hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ in HAL_I2C_Init()
483hi2c->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()
793hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback */ in HAL_I2C_UnRegisterCallback()
797hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback */ in HAL_I2C_UnRegisterCallback()
801hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback */ in HAL_I2C_UnRegisterCallback()
805hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback */ in HAL_I2C_UnRegisterCallback()
809hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback */ in HAL_I2C_UnRegisterCallback()
813hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback */ in HAL_I2C_UnRegisterCallback()
817hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback */ in HAL_I2C_UnRegisterCallback()
821hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_I2C_UnRegisterCallback()
825hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ in HAL_I2C_UnRegisterCallback()
829hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ in HAL_I2C_UnRegisterCallback()
833hi2c->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()
850hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ in HAL_I2C_UnRegisterCallback()
854hi2c->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->XferAbortCallback = NULL; in HAL_I2C_Master_Transmit_DMA()
2025 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Master_Transmit_DMA()
2030 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Transmit_DMA()
2031 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Transmit_DMA()
2034 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Master_Transmit_DMA()
2037 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
2045 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
2052 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Master_Transmit_DMA()
2055 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Master_Transmit_DMA()
2058 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Transmit_DMA()
2061 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Transmit_DMA()
2066 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Transmit_DMA()
2067 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Transmit_DMA()
2070 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Master_Transmit_DMA()
2073 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
2081 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Transmit_DMA()
2084 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Transmit_DMA()
2087 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Transmit_DMA()
2094 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Transmit_DMA()
2115 HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t … in HAL_I2C_Master_Receive_DMA() argument
2120 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Receive_DMA()
2129 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Receive_DMA()
2130 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive_DMA()
2131 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive_DMA()
2132 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Receive_DMA()
2137 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Receive_DMA()
2140 __HAL_LOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2143 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Receive_DMA()
2146 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Receive_DMA()
2150 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Receive_DMA()
2152 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Master_Receive_DMA()
2153 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Receive_DMA()
2154 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Receive_DMA()
2157 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Receive_DMA()
2158 hi2c->XferCount = Size; in HAL_I2C_Master_Receive_DMA()
2159 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Receive_DMA()
2160 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Master_Receive_DMA()
2161 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Receive_DMA()
2163 if (hi2c->XferSize > 0U) in HAL_I2C_Master_Receive_DMA()
2165 if (hi2c->hdmarx != NULL) in HAL_I2C_Master_Receive_DMA()
2168 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Master_Receive_DMA()
2171 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Master_Receive_DMA()
2174 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Master_Receive_DMA()
2175 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Master_Receive_DMA()
2178 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Master_Receive_DMA()
2183 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive_DMA()
2184 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive_DMA()
2187 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Master_Receive_DMA()
2190 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2198 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive_DMA()
2201 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Receive_DMA()
2204 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2211 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Master_Receive_DMA()
2214 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Master_Receive_DMA()
2219 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Receive_DMA()
2220 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Receive_DMA()
2223 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Master_Receive_DMA()
2226 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2234 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Receive_DMA()
2241 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Receive_DMA()
2244 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Receive_DMA()
2247 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Receive_DMA()
2266 HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) in HAL_I2C_Slave_Transmit_DMA() argument
2270 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Transmit_DMA()
2278 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2281 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Transmit_DMA()
2284 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2288 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Transmit_DMA()
2290 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Slave_Transmit_DMA()
2291 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Transmit_DMA()
2292 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Transmit_DMA()
2295 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Transmit_DMA()
2296 hi2c->XferCount = Size; in HAL_I2C_Slave_Transmit_DMA()
2297 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Transmit_DMA()
2298 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Transmit_DMA()
2300 if (hi2c->hdmatx != NULL) in HAL_I2C_Slave_Transmit_DMA()
2303 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Slave_Transmit_DMA()
2306 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Slave_Transmit_DMA()
2309 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Slave_Transmit_DMA()
2310 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Slave_Transmit_DMA()
2313 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Slave_Transmit_DMA()
2318 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_Slave_Transmit_DMA()
2319 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Transmit_DMA()
2322 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Slave_Transmit_DMA()
2325 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2333 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Transmit_DMA()
2336 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2342 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Transmit_DMA()
2345 hi2c->Instance->CR2 |= I2C_CR2_DMAEN; in HAL_I2C_Slave_Transmit_DMA()
2352 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Transmit_DMA()
2353 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Transmit_DMA()
2356 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Slave_Transmit_DMA()
2359 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Transmit_DMA()
2378 HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) in HAL_I2C_Slave_Receive_DMA() argument
2382 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Slave_Receive_DMA()
2390 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Receive_DMA()
2393 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Receive_DMA()
2396 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Receive_DMA()
2400 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Receive_DMA()
2402 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Slave_Receive_DMA()
2403 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Receive_DMA()
2404 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Receive_DMA()
2407 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Receive_DMA()
2408 hi2c->XferCount = Size; in HAL_I2C_Slave_Receive_DMA()
2409 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Receive_DMA()
2410 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Slave_Receive_DMA()
2412 if (hi2c->hdmarx != NULL) in HAL_I2C_Slave_Receive_DMA()
2415 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Slave_Receive_DMA()
2418 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Slave_Receive_DMA()
2421 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Slave_Receive_DMA()
2422 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Slave_Receive_DMA()
2425 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Slave_Receive_DMA()
2430 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_Slave_Receive_DMA()
2431 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Receive_DMA()
2434 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Slave_Receive_DMA()
2437 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Receive_DMA()
2445 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Receive_DMA()
2448 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Receive_DMA()
2454 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Receive_DMA()
2457 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Receive_DMA()
2464 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Receive_DMA()
2465 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Receive_DMA()
2468 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Slave_Receive_DMA()
2471 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Receive_DMA()
2495 HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre… in HAL_I2C_Mem_Write() argument
2503 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Write()
2506 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_Mem_Write()
2512 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Write()
2515 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Write()
2518 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Write()
2522 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Write()
2524 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Mem_Write()
2525 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Write()
2526 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Write()
2529 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Write()
2530 hi2c->XferCount = Size; in HAL_I2C_Mem_Write()
2531 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Write()
2532 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Write()
2535 …if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Write()
2540 while (hi2c->XferSize > 0U) in HAL_I2C_Mem_Write()
2543 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Write()
2545 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in HAL_I2C_Mem_Write()
2548 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Write()
2554 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Mem_Write()
2557 hi2c->pBuffPtr++; in HAL_I2C_Mem_Write()
2560 hi2c->XferSize--; in HAL_I2C_Mem_Write()
2561 hi2c->XferCount--; in HAL_I2C_Mem_Write()
2563 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) && (hi2c->XferSize != 0U)) in HAL_I2C_Mem_Write()
2566 hi2c->Instance->DR = *hi2c->pBuffPtr; in HAL_I2C_Mem_Write()
2569 hi2c->pBuffPtr++; in HAL_I2C_Mem_Write()
2572 hi2c->XferSize--; in HAL_I2C_Mem_Write()
2573 hi2c->XferCount--; in HAL_I2C_Mem_Write()
2578 if (I2C_WaitOnBTFFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Write()
2580 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in HAL_I2C_Mem_Write()
2583 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Write()
2589 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Write()
2591 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write()
2592 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write()
2595 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write()
2618 HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres… in HAL_I2C_Mem_Read() argument
2626 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Read()
2629 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_Mem_Read()
2635 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Read()
2638 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Read()
2641 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Read()
2645 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Read()
2647 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Mem_Read()
2648 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Read()
2649 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Read()
2652 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Read()
2653 hi2c->XferCount = Size; in HAL_I2C_Mem_Read()
2654 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Read()
2655 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Read()
2658 … if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2663 if (hi2c->XferSize == 0U) in HAL_I2C_Mem_Read()
2666 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read()
2669 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read()
2671 else if (hi2c->XferSize == 1U) in HAL_I2C_Mem_Read()
2674 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read()
2677 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read()
2680 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read()
2682 else if (hi2c->XferSize == 2U) in HAL_I2C_Mem_Read()
2685 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read()
2688 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Read()
2691 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read()
2696 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read()
2699 while (hi2c->XferSize > 0U) in HAL_I2C_Mem_Read()
2701 if (hi2c->XferSize <= 3U) in HAL_I2C_Mem_Read()
2704 if (hi2c->XferSize == 1U) in HAL_I2C_Mem_Read()
2707 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2713 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2716 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2719 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2720 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2723 else if (hi2c->XferSize == 2U) in HAL_I2C_Mem_Read()
2726 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2732 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read()
2735 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2738 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2741 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2742 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2745 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2748 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2751 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2752 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2758 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2764 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read()
2767 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2770 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2773 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2774 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2777 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BTF, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2783 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read()
2786 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2789 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2792 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2793 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2796 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2799 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2802 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2803 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2809 if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) in HAL_I2C_Mem_Read()
2815 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2818 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2821 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2822 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2824 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) in HAL_I2C_Mem_Read()
2827 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in HAL_I2C_Mem_Read()
2830 hi2c->pBuffPtr++; in HAL_I2C_Mem_Read()
2833 hi2c->XferSize--; in HAL_I2C_Mem_Read()
2834 hi2c->XferCount--; in HAL_I2C_Mem_Read()
2839 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read()
2840 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read()
2843 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read()
2865 HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd… in HAL_I2C_Mem_Write_IT() argument
2872 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Write_IT()
2881 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Mem_Write_IT()
2882 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_IT()
2883 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_IT()
2884 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Mem_Write_IT()
2889 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Mem_Write_IT()
2892 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Write_IT()
2895 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Write_IT()
2898 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Write_IT()
2902 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Write_IT()
2904 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Mem_Write_IT()
2905 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Write_IT()
2906 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Write_IT()
2909 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Write_IT()
2910 hi2c->XferCount = Size; in HAL_I2C_Mem_Write_IT()
2911 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Write_IT()
2912 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Write_IT()
2913 hi2c->Devaddress = DevAddress; in HAL_I2C_Mem_Write_IT()
2914 hi2c->Memaddress = MemAddress; in HAL_I2C_Mem_Write_IT()
2915 hi2c->MemaddSize = MemAddSize; in HAL_I2C_Mem_Write_IT()
2916 hi2c->EventCount = 0U; in HAL_I2C_Mem_Write_IT()
2919 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Mem_Write_IT()
2922 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_IT()
2929 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Mem_Write_IT()
2950 HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd… in HAL_I2C_Mem_Read_IT() argument
2957 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Read_IT()
2966 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Mem_Read_IT()
2967 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_IT()
2968 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read_IT()
2969 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Mem_Read_IT()
2974 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Mem_Read_IT()
2977 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Read_IT()
2980 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Read_IT()
2983 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Read_IT()
2987 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Read_IT()
2989 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Mem_Read_IT()
2990 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Read_IT()
2991 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Read_IT()
2994 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Read_IT()
2995 hi2c->XferCount = Size; in HAL_I2C_Mem_Read_IT()
2996 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Read_IT()
2997 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Read_IT()
2998 hi2c->Devaddress = DevAddress; in HAL_I2C_Mem_Read_IT()
2999 hi2c->Memaddress = MemAddress; in HAL_I2C_Mem_Read_IT()
3000 hi2c->MemaddSize = MemAddSize; in HAL_I2C_Mem_Read_IT()
3001 hi2c->EventCount = 0U; in HAL_I2C_Mem_Read_IT()
3004 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read_IT()
3007 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Mem_Read_IT()
3010 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_IT()
3012 if (hi2c->XferSize > 0U) in HAL_I2C_Mem_Read_IT()
3019 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Mem_Read_IT()
3041 HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA… in HAL_I2C_Mem_Write_DMA() argument
3052 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Write_DMA()
3061 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Mem_Write_DMA()
3062 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_DMA()
3063 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_DMA()
3064 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Mem_Write_DMA()
3069 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Mem_Write_DMA()
3072 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3075 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Write_DMA()
3078 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Write_DMA()
3082 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Write_DMA()
3084 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Mem_Write_DMA()
3085 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Write_DMA()
3086 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Write_DMA()
3089 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Write_DMA()
3090 hi2c->XferCount = Size; in HAL_I2C_Mem_Write_DMA()
3091 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Write_DMA()
3092 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Write_DMA()
3093 hi2c->Devaddress = DevAddress; in HAL_I2C_Mem_Write_DMA()
3094 hi2c->Memaddress = MemAddress; in HAL_I2C_Mem_Write_DMA()
3095 hi2c->MemaddSize = MemAddSize; in HAL_I2C_Mem_Write_DMA()
3096 hi2c->EventCount = 0U; in HAL_I2C_Mem_Write_DMA()
3098 if (hi2c->XferSize > 0U) in HAL_I2C_Mem_Write_DMA()
3100 if (hi2c->hdmatx != NULL) in HAL_I2C_Mem_Write_DMA()
3103 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Mem_Write_DMA()
3106 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Mem_Write_DMA()
3109 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Mem_Write_DMA()
3110 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Mem_Write_DMA()
3113 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Mem_Write_DMA()
3118 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_DMA()
3119 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_DMA()
3122 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Mem_Write_DMA()
3125 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3133 …if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) … in HAL_I2C_Mem_Write_DMA()
3136 dmaxferstatus = HAL_DMA_Abort_IT(hi2c->hdmatx); in HAL_I2C_Mem_Write_DMA()
3142 hi2c->hdmatx->XferCpltCallback = NULL; in HAL_I2C_Mem_Write_DMA()
3145 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Write_DMA()
3147 hi2c->XferSize = 0U; in HAL_I2C_Mem_Write_DMA()
3148 hi2c->XferCount = 0U; in HAL_I2C_Mem_Write_DMA()
3151 __HAL_I2C_DISABLE(hi2c); in HAL_I2C_Mem_Write_DMA()
3157 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Write_DMA()
3160 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3166 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_ERR); in HAL_I2C_Mem_Write_DMA()
3169 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Mem_Write_DMA()
3176 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Write_DMA()
3177 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Write_DMA()
3180 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Mem_Write_DMA()
3183 __HAL_UNLOCK(hi2c); 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_SIZE; in HAL_I2C_Mem_Write_DMA()
3198 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Write_DMA()
3221 HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd… in HAL_I2C_Mem_Read_DMA() argument
3231 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Mem_Read_DMA()
3240 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Mem_Read_DMA()
3241 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_DMA()
3242 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read_DMA()
3243 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Mem_Read_DMA()
3248 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Mem_Read_DMA()
3251 __HAL_LOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3254 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Mem_Read_DMA()
3257 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Mem_Read_DMA()
3261 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Mem_Read_DMA()
3263 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Mem_Read_DMA()
3264 hi2c->Mode = HAL_I2C_MODE_MEM; in HAL_I2C_Mem_Read_DMA()
3265 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Mem_Read_DMA()
3268 hi2c->pBuffPtr = pData; in HAL_I2C_Mem_Read_DMA()
3269 hi2c->XferCount = Size; in HAL_I2C_Mem_Read_DMA()
3270 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Mem_Read_DMA()
3271 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_Mem_Read_DMA()
3272 hi2c->Devaddress = DevAddress; in HAL_I2C_Mem_Read_DMA()
3273 hi2c->Memaddress = MemAddress; in HAL_I2C_Mem_Read_DMA()
3274 hi2c->MemaddSize = MemAddSize; in HAL_I2C_Mem_Read_DMA()
3275 hi2c->EventCount = 0U; in HAL_I2C_Mem_Read_DMA()
3277 if (hi2c->XferSize > 0U) in HAL_I2C_Mem_Read_DMA()
3279 if (hi2c->hdmarx != NULL) in HAL_I2C_Mem_Read_DMA()
3282 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Mem_Read_DMA()
3285 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Mem_Read_DMA()
3288 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Mem_Read_DMA()
3289 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Mem_Read_DMA()
3292 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Mem_Read_DMA()
3297 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_DMA()
3298 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read_DMA()
3301 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Mem_Read_DMA()
3304 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3312 …if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) !… in HAL_I2C_Mem_Read_DMA()
3315 dmaxferstatus = HAL_DMA_Abort_IT(hi2c->hdmarx); in HAL_I2C_Mem_Read_DMA()
3321 hi2c->hdmarx->XferCpltCallback = NULL; in HAL_I2C_Mem_Read_DMA()
3324 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read_DMA()
3326 hi2c->XferSize = 0U; in HAL_I2C_Mem_Read_DMA()
3327 hi2c->XferCount = 0U; in HAL_I2C_Mem_Read_DMA()
3330 __HAL_I2C_DISABLE(hi2c); in HAL_I2C_Mem_Read_DMA()
3335 if (hi2c->XferSize == 1U) in HAL_I2C_Mem_Read_DMA()
3338 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Mem_Read_DMA()
3343 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in HAL_I2C_Mem_Read_DMA()
3347 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read_DMA()
3350 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3356 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_ERR); in HAL_I2C_Mem_Read_DMA()
3359 hi2c->Instance->CR2 |= I2C_CR2_DMAEN; in HAL_I2C_Mem_Read_DMA()
3364 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_DMA()
3365 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Mem_Read_DMA()
3368 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Mem_Read_DMA()
3371 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3379 …if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, I2C_TIMEOUT_FLAG, tickstart) !… in HAL_I2C_Mem_Read_DMA()
3385 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Mem_Read_DMA()
3388 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Mem_Read_DMA()
3390 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Mem_Read_DMA()
3393 __HAL_UNLOCK(hi2c); in HAL_I2C_Mem_Read_DMA()
3415 HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria… in HAL_I2C_IsDeviceReady() argument
3423 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_IsDeviceReady()
3426 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_IsDeviceReady()
3432 __HAL_LOCK(hi2c); in HAL_I2C_IsDeviceReady()
3435 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_IsDeviceReady()
3438 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_IsDeviceReady()
3442 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_IsDeviceReady()
3444 hi2c->State = HAL_I2C_STATE_BUSY; in HAL_I2C_IsDeviceReady()
3445 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_IsDeviceReady()
3446 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in HAL_I2C_IsDeviceReady()
3451 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_IsDeviceReady()
3454 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, tickstart) != HAL_OK) in HAL_I2C_IsDeviceReady()
3456 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in HAL_I2C_IsDeviceReady()
3458 hi2c->ErrorCode = HAL_I2C_WRONG_START; in HAL_I2C_IsDeviceReady()
3464 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); in HAL_I2C_IsDeviceReady()
3470 tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); in HAL_I2C_IsDeviceReady()
3471 tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_IsDeviceReady()
3472 while ((hi2c->State != HAL_I2C_STATE_TIMEOUT) && (tmp1 == RESET) && (tmp2 == RESET)) in HAL_I2C_IsDeviceReady()
3476 hi2c->State = HAL_I2C_STATE_TIMEOUT; in HAL_I2C_IsDeviceReady()
3478 tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); in HAL_I2C_IsDeviceReady()
3479 tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_IsDeviceReady()
3482 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_IsDeviceReady()
3485 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR) == SET) in HAL_I2C_IsDeviceReady()
3488 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_IsDeviceReady()
3491 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_IsDeviceReady()
3494 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_IsDeviceReady()
3499 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_IsDeviceReady()
3502 __HAL_UNLOCK(hi2c); in HAL_I2C_IsDeviceReady()
3509 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_IsDeviceReady()
3512 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_IsDeviceReady()
3515 …if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY_FLAG, tickstart) != HAL_… in HAL_I2C_IsDeviceReady()
3526 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_IsDeviceReady()
3529 __HAL_UNLOCK(hi2c); in HAL_I2C_IsDeviceReady()
3551 HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint… in HAL_I2C_Master_Seq_Transmit_IT() argument
3559 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Seq_Transmit_IT()
3562 …if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND… in HAL_I2C_Master_Seq_Transmit_IT()
3571 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Seq_Transmit_IT()
3572 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Transmit_IT()
3573 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Transmit_IT()
3574 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Seq_Transmit_IT()
3579 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Seq_Transmit_IT()
3583 __HAL_LOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_IT()
3586 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Seq_Transmit_IT()
3589 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Seq_Transmit_IT()
3593 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Transmit_IT()
3595 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Master_Seq_Transmit_IT()
3596 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Seq_Transmit_IT()
3597 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Seq_Transmit_IT()
3600 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Seq_Transmit_IT()
3601 hi2c->XferCount = Size; in HAL_I2C_Master_Seq_Transmit_IT()
3602 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Seq_Transmit_IT()
3603 hi2c->XferOptions = XferOptions; in HAL_I2C_Master_Seq_Transmit_IT()
3604 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Seq_Transmit_IT()
3606 Prev_State = hi2c->PreviousState; in HAL_I2C_Master_Seq_Transmit_IT()
3613 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Transmit_IT()
3617 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_IT()
3624 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Seq_Transmit_IT()
3646 HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin… in HAL_I2C_Master_Seq_Transmit_DMA() argument
3655 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Seq_Transmit_DMA()
3658 …if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND… in HAL_I2C_Master_Seq_Transmit_DMA()
3667 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3668 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Transmit_DMA()
3669 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3670 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Seq_Transmit_DMA()
3675 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Seq_Transmit_DMA()
3679 __HAL_LOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3682 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Seq_Transmit_DMA()
3685 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3689 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Transmit_DMA()
3691 hi2c->State = HAL_I2C_STATE_BUSY_TX; in HAL_I2C_Master_Seq_Transmit_DMA()
3692 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Seq_Transmit_DMA()
3693 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3696 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Seq_Transmit_DMA()
3697 hi2c->XferCount = Size; in HAL_I2C_Master_Seq_Transmit_DMA()
3698 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Seq_Transmit_DMA()
3699 hi2c->XferOptions = XferOptions; in HAL_I2C_Master_Seq_Transmit_DMA()
3700 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Seq_Transmit_DMA()
3702 Prev_State = hi2c->PreviousState; in HAL_I2C_Master_Seq_Transmit_DMA()
3704 if (hi2c->XferSize > 0U) in HAL_I2C_Master_Seq_Transmit_DMA()
3706 if (hi2c->hdmatx != NULL) in HAL_I2C_Master_Seq_Transmit_DMA()
3709 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Master_Seq_Transmit_DMA()
3712 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Master_Seq_Transmit_DMA()
3715 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Master_Seq_Transmit_DMA()
3716 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Master_Seq_Transmit_DMA()
3719 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Master_Seq_Transmit_DMA()
3724 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Transmit_DMA()
3725 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3728 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Master_Seq_Transmit_DMA()
3731 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3739 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Transmit_DMA()
3746 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Transmit_DMA()
3750 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3761 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Master_Seq_Transmit_DMA()
3765 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Master_Seq_Transmit_DMA()
3770 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Transmit_DMA()
3771 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Transmit_DMA()
3774 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Master_Seq_Transmit_DMA()
3777 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3785 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Transmit_DMA()
3792 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Transmit_DMA()
3796 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Transmit_DMA()
3803 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Seq_Transmit_DMA()
3826 HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8… in HAL_I2C_Master_Seq_Receive_IT() argument
3835 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Seq_Receive_IT()
3838 …if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND… in HAL_I2C_Master_Seq_Receive_IT()
3847 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Seq_Receive_IT()
3848 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Receive_IT()
3849 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Receive_IT()
3850 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Seq_Receive_IT()
3855 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Seq_Receive_IT()
3859 __HAL_LOCK(hi2c); in HAL_I2C_Master_Seq_Receive_IT()
3862 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Seq_Receive_IT()
3865 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Seq_Receive_IT()
3869 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Receive_IT()
3871 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Master_Seq_Receive_IT()
3872 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Seq_Receive_IT()
3873 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Seq_Receive_IT()
3876 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Seq_Receive_IT()
3877 hi2c->XferCount = Size; in HAL_I2C_Master_Seq_Receive_IT()
3878 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Seq_Receive_IT()
3879 hi2c->XferOptions = XferOptions; in HAL_I2C_Master_Seq_Receive_IT()
3880 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Seq_Receive_IT()
3882 Prev_State = hi2c->PreviousState; in HAL_I2C_Master_Seq_Receive_IT()
3884 …if ((hi2c->XferCount == 2U) && ((XferOptions == I2C_LAST_FRAME) || (XferOptions == I2C_LAST_FRAME_… in HAL_I2C_Master_Seq_Receive_IT()
3889 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_IT()
3892 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Receive_IT()
3900 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_IT()
3906 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_IT()
3914 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Receive_IT()
3918 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_IT()
3925 __HAL_I2C_ENABLE_IT(hi2c, enableIT); in HAL_I2C_Master_Seq_Receive_IT()
3947 HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint… in HAL_I2C_Master_Seq_Receive_DMA() argument
3957 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_Master_Seq_Receive_DMA()
3960 …if ((READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP) || (XferOptions == I2C_FIRST_AND… in HAL_I2C_Master_Seq_Receive_DMA()
3969 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
3970 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Receive_DMA()
3971 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
3972 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in HAL_I2C_Master_Seq_Receive_DMA()
3977 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); in HAL_I2C_Master_Seq_Receive_DMA()
3981 __HAL_LOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
3984 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Master_Seq_Receive_DMA()
3987 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
3991 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Receive_DMA()
3994 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in HAL_I2C_Master_Seq_Receive_DMA()
3996 hi2c->State = HAL_I2C_STATE_BUSY_RX; in HAL_I2C_Master_Seq_Receive_DMA()
3997 hi2c->Mode = HAL_I2C_MODE_MASTER; in HAL_I2C_Master_Seq_Receive_DMA()
3998 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
4001 hi2c->pBuffPtr = pData; in HAL_I2C_Master_Seq_Receive_DMA()
4002 hi2c->XferCount = Size; in HAL_I2C_Master_Seq_Receive_DMA()
4003 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Master_Seq_Receive_DMA()
4004 hi2c->XferOptions = XferOptions; in HAL_I2C_Master_Seq_Receive_DMA()
4005 hi2c->Devaddress = DevAddress; in HAL_I2C_Master_Seq_Receive_DMA()
4007 Prev_State = hi2c->PreviousState; in HAL_I2C_Master_Seq_Receive_DMA()
4009 if (hi2c->XferSize > 0U) in HAL_I2C_Master_Seq_Receive_DMA()
4011 …if ((hi2c->XferCount == 2U) && ((XferOptions == I2C_LAST_FRAME) || (XferOptions == I2C_LAST_FRAME_… in HAL_I2C_Master_Seq_Receive_DMA()
4016 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_DMA()
4019 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Master_Seq_Receive_DMA()
4022 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in HAL_I2C_Master_Seq_Receive_DMA()
4027 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_DMA()
4033 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_DMA()
4038 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in HAL_I2C_Master_Seq_Receive_DMA()
4041 if (hi2c->hdmarx != NULL) in HAL_I2C_Master_Seq_Receive_DMA()
4044 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Master_Seq_Receive_DMA()
4047 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Master_Seq_Receive_DMA()
4050 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Master_Seq_Receive_DMA()
4051 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Master_Seq_Receive_DMA()
4054 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Master_Seq_Receive_DMA()
4059 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Receive_DMA()
4060 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
4063 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Master_Seq_Receive_DMA()
4066 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4077 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Receive_DMA()
4089 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4100 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Master_Seq_Receive_DMA()
4104 __HAL_I2C_ENABLE_IT(hi2c, enableIT); in HAL_I2C_Master_Seq_Receive_DMA()
4109 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Master_Seq_Receive_DMA()
4110 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Master_Seq_Receive_DMA()
4113 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Master_Seq_Receive_DMA()
4116 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4124 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Seq_Receive_DMA()
4131 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in HAL_I2C_Master_Seq_Receive_DMA()
4135 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Seq_Receive_DMA()
4142 __HAL_I2C_ENABLE_IT(hi2c, enableIT); in HAL_I2C_Master_Seq_Receive_DMA()
4162 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
4167 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in HAL_I2C_Slave_Seq_Transmit_IT()
4175 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_IT()
4178 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Seq_Transmit_IT()
4181 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Seq_Transmit_IT()
4185 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Seq_Transmit_IT()
4187 hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; in HAL_I2C_Slave_Seq_Transmit_IT()
4188 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Seq_Transmit_IT()
4189 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Seq_Transmit_IT()
4192 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Seq_Transmit_IT()
4193 hi2c->XferCount = Size; in HAL_I2C_Slave_Seq_Transmit_IT()
4194 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Seq_Transmit_IT()
4195 hi2c->XferOptions = XferOptions; in HAL_I2C_Slave_Seq_Transmit_IT()
4198 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Seq_Transmit_IT()
4201 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_IT()
4208 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Transmit_IT()
4228 HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t … in HAL_I2C_Slave_Seq_Transmit_DMA() argument
4235 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4243 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4246 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Transmit_DMA()
4250 if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4252 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4255 if (hi2c->hdmarx != NULL) in HAL_I2C_Slave_Seq_Transmit_DMA()
4257 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Transmit_DMA()
4261 hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; in HAL_I2C_Slave_Seq_Transmit_DMA()
4264 if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) in HAL_I2C_Slave_Seq_Transmit_DMA()
4267 hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); in HAL_I2C_Slave_Seq_Transmit_DMA()
4272 else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4274 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in HAL_I2C_Slave_Seq_Transmit_DMA()
4276 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Transmit_DMA()
4279 if (hi2c->hdmatx != NULL) in HAL_I2C_Slave_Seq_Transmit_DMA()
4283 hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; in HAL_I2C_Slave_Seq_Transmit_DMA()
4286 if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) in HAL_I2C_Slave_Seq_Transmit_DMA()
4289 hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); in HAL_I2C_Slave_Seq_Transmit_DMA()
4300 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Seq_Transmit_DMA()
4303 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4307 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Seq_Transmit_DMA()
4309 hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; in HAL_I2C_Slave_Seq_Transmit_DMA()
4310 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Seq_Transmit_DMA()
4311 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Seq_Transmit_DMA()
4314 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Seq_Transmit_DMA()
4315 hi2c->XferCount = Size; in HAL_I2C_Slave_Seq_Transmit_DMA()
4316 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Seq_Transmit_DMA()
4317 hi2c->XferOptions = XferOptions; in HAL_I2C_Slave_Seq_Transmit_DMA()
4319 if (hi2c->hdmatx != NULL) in HAL_I2C_Slave_Seq_Transmit_DMA()
4322 hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Slave_Seq_Transmit_DMA()
4325 hi2c->hdmatx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Slave_Seq_Transmit_DMA()
4328 hi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_I2C_Slave_Seq_Transmit_DMA()
4329 hi2c->hdmatx->XferAbortCallback = NULL; in HAL_I2C_Slave_Seq_Transmit_DMA()
4332 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance… in HAL_I2C_Slave_Seq_Transmit_DMA()
4337 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_Slave_Seq_Transmit_DMA()
4338 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Seq_Transmit_DMA()
4341 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Slave_Seq_Transmit_DMA()
4344 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4352 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Seq_Transmit_DMA()
4355 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4358 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4364 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Transmit_DMA()
4367 hi2c->Instance->CR2 |= I2C_CR2_DMAEN; in HAL_I2C_Slave_Seq_Transmit_DMA()
4374 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Seq_Transmit_DMA()
4375 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Seq_Transmit_DMA()
4378 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Slave_Seq_Transmit_DMA()
4381 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Transmit_DMA()
4402 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
4407 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in HAL_I2C_Slave_Seq_Receive_IT()
4415 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_IT()
4418 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Seq_Receive_IT()
4421 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Seq_Receive_IT()
4425 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Seq_Receive_IT()
4427 hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; in HAL_I2C_Slave_Seq_Receive_IT()
4428 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Seq_Receive_IT()
4429 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Seq_Receive_IT()
4432 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Seq_Receive_IT()
4433 hi2c->XferCount = Size; in HAL_I2C_Slave_Seq_Receive_IT()
4434 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Seq_Receive_IT()
4435 hi2c->XferOptions = XferOptions; in HAL_I2C_Slave_Seq_Receive_IT()
4438 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Seq_Receive_IT()
4441 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_IT()
4448 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Receive_IT()
4468 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
4475 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4483 __HAL_LOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4486 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Receive_DMA()
4490 if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4492 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4495 if (hi2c->hdmarx != NULL) in HAL_I2C_Slave_Seq_Receive_DMA()
4497 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Receive_DMA()
4501 hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; in HAL_I2C_Slave_Seq_Receive_DMA()
4504 if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) in HAL_I2C_Slave_Seq_Receive_DMA()
4507 hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); in HAL_I2C_Slave_Seq_Receive_DMA()
4512 else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4514 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in HAL_I2C_Slave_Seq_Receive_DMA()
4516 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Receive_DMA()
4519 if (hi2c->hdmatx != NULL) in HAL_I2C_Slave_Seq_Receive_DMA()
4523 hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; in HAL_I2C_Slave_Seq_Receive_DMA()
4526 if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) in HAL_I2C_Slave_Seq_Receive_DMA()
4529 hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); in HAL_I2C_Slave_Seq_Receive_DMA()
4540 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_Slave_Seq_Receive_DMA()
4543 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4547 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in HAL_I2C_Slave_Seq_Receive_DMA()
4549 hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; in HAL_I2C_Slave_Seq_Receive_DMA()
4550 hi2c->Mode = HAL_I2C_MODE_SLAVE; in HAL_I2C_Slave_Seq_Receive_DMA()
4551 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in HAL_I2C_Slave_Seq_Receive_DMA()
4554 hi2c->pBuffPtr = pData; in HAL_I2C_Slave_Seq_Receive_DMA()
4555 hi2c->XferCount = Size; in HAL_I2C_Slave_Seq_Receive_DMA()
4556 hi2c->XferSize = hi2c->XferCount; in HAL_I2C_Slave_Seq_Receive_DMA()
4557 hi2c->XferOptions = XferOptions; in HAL_I2C_Slave_Seq_Receive_DMA()
4559 if (hi2c->hdmarx != NULL) in HAL_I2C_Slave_Seq_Receive_DMA()
4562 hi2c->hdmarx->XferCpltCallback = I2C_DMAXferCplt; in HAL_I2C_Slave_Seq_Receive_DMA()
4565 hi2c->hdmarx->XferErrorCallback = I2C_DMAError; in HAL_I2C_Slave_Seq_Receive_DMA()
4568 hi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_I2C_Slave_Seq_Receive_DMA()
4569 hi2c->hdmarx->XferAbortCallback = NULL; in HAL_I2C_Slave_Seq_Receive_DMA()
4572 …dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->DR, (uint32_t)hi2c->pBuf… in HAL_I2C_Slave_Seq_Receive_DMA()
4577 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_Slave_Seq_Receive_DMA()
4578 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Seq_Receive_DMA()
4581 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; in HAL_I2C_Slave_Seq_Receive_DMA()
4584 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4592 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Slave_Seq_Receive_DMA()
4595 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4598 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4601 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in HAL_I2C_Slave_Seq_Receive_DMA()
4607 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_Slave_Seq_Receive_DMA()
4614 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_Slave_Seq_Receive_DMA()
4615 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_Slave_Seq_Receive_DMA()
4618 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in HAL_I2C_Slave_Seq_Receive_DMA()
4621 __HAL_UNLOCK(hi2c); in HAL_I2C_Slave_Seq_Receive_DMA()
4638 HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) in HAL_I2C_EnableListen_IT() argument
4640 if (hi2c->State == HAL_I2C_STATE_READY) in HAL_I2C_EnableListen_IT()
4642 hi2c->State = HAL_I2C_STATE_LISTEN; in HAL_I2C_EnableListen_IT()
4645 if ((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) in HAL_I2C_EnableListen_IT()
4648 __HAL_I2C_ENABLE(hi2c); in HAL_I2C_EnableListen_IT()
4652 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_EnableListen_IT()
4655 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_EnableListen_IT()
4671 HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) in HAL_I2C_DisableListen_IT() argument
4677 if (hi2c->State == HAL_I2C_STATE_LISTEN) in HAL_I2C_DisableListen_IT()
4679 tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; in HAL_I2C_DisableListen_IT()
4680 hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); in HAL_I2C_DisableListen_IT()
4681 hi2c->State = HAL_I2C_STATE_READY; in HAL_I2C_DisableListen_IT()
4682 hi2c->Mode = HAL_I2C_MODE_NONE; in HAL_I2C_DisableListen_IT()
4685 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_DisableListen_IT()
4688 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in HAL_I2C_DisableListen_IT()
4706 HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) in HAL_I2C_Master_Abort_IT() argument
4709 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in HAL_I2C_Master_Abort_IT()
4715 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && (CurrentMode == HAL_I2C_MODE_MASTER)) in HAL_I2C_Master_Abort_IT()
4718 __HAL_LOCK(hi2c); in HAL_I2C_Master_Abort_IT()
4720 hi2c->PreviousState = I2C_STATE_NONE; in HAL_I2C_Master_Abort_IT()
4721 hi2c->State = HAL_I2C_STATE_ABORT; in HAL_I2C_Master_Abort_IT()
4724 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in HAL_I2C_Master_Abort_IT()
4727 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_Master_Abort_IT()
4729 hi2c->XferCount = 0U; in HAL_I2C_Master_Abort_IT()
4732 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in HAL_I2C_Master_Abort_IT()
4735 __HAL_UNLOCK(hi2c); in HAL_I2C_Master_Abort_IT()
4738 I2C_ITError(hi2c); in HAL_I2C_Master_Abort_IT()
4765 void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) in HAL_I2C_EV_IRQHandler() argument
4769 uint32_t itsources = READ_REG(hi2c->Instance->CR2); in HAL_I2C_EV_IRQHandler()
4770 uint32_t CurrentXferOptions = hi2c->XferOptions; in HAL_I2C_EV_IRQHandler()
4771 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in HAL_I2C_EV_IRQHandler()
4772 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in HAL_I2C_EV_IRQHandler()
4777 sr2itflags = READ_REG(hi2c->Instance->SR2); in HAL_I2C_EV_IRQHandler()
4778 sr1itflags = READ_REG(hi2c->Instance->SR1); in HAL_I2C_EV_IRQHandler()
4790 I2C_ConvertOtherXferOptions(hi2c); in HAL_I2C_EV_IRQHandler()
4792 I2C_Master_SB(hi2c); in HAL_I2C_EV_IRQHandler()
4797 I2C_Master_ADD10(hi2c); in HAL_I2C_EV_IRQHandler()
4802 I2C_Master_ADDR(hi2c); in HAL_I2C_EV_IRQHandler()
4808 if (READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) != I2C_CR2_DMAEN) in HAL_I2C_EV_IRQHandler()
4813 I2C_MasterTransmit_TXE(hi2c); in HAL_I2C_EV_IRQHandler()
4820 I2C_MasterTransmit_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
4826 I2C_MemoryTransmit_TXE_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
4840 if (READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) != I2C_CR2_DMAEN) in HAL_I2C_EV_IRQHandler()
4845 I2C_MasterReceive_RXNE(hi2c); in HAL_I2C_EV_IRQHandler()
4850 I2C_MasterReceive_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
4864 if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) in HAL_I2C_EV_IRQHandler()
4866 sr1itflags = READ_REG(hi2c->Instance->SR1); in HAL_I2C_EV_IRQHandler()
4870 sr2itflags = READ_REG(hi2c->Instance->SR2); in HAL_I2C_EV_IRQHandler()
4871 sr1itflags = READ_REG(hi2c->Instance->SR1); in HAL_I2C_EV_IRQHandler()
4878 if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) in HAL_I2C_EV_IRQHandler()
4880 sr2itflags = READ_REG(hi2c->Instance->SR2); in HAL_I2C_EV_IRQHandler()
4882 I2C_Slave_ADDR(hi2c, sr2itflags); in HAL_I2C_EV_IRQHandler()
4887 I2C_Slave_STOPF(hi2c); in HAL_I2C_EV_IRQHandler()
4895 I2C_SlaveTransmit_TXE(hi2c); in HAL_I2C_EV_IRQHandler()
4900 I2C_SlaveTransmit_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
4913 I2C_SlaveReceive_RXNE(hi2c); in HAL_I2C_EV_IRQHandler()
4918 I2C_SlaveReceive_BTF(hi2c); in HAL_I2C_EV_IRQHandler()
4934 void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) in HAL_I2C_ER_IRQHandler() argument
4940 uint32_t sr1itflags = READ_REG(hi2c->Instance->SR1); in HAL_I2C_ER_IRQHandler()
4941 uint32_t itsources = READ_REG(hi2c->Instance->CR2); in HAL_I2C_ER_IRQHandler()
4943 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in HAL_I2C_ER_IRQHandler()
4951 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); in HAL_I2C_ER_IRQHandler()
4960 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); in HAL_I2C_ER_IRQHandler()
4967 tmp2 = hi2c->XferCount; in HAL_I2C_ER_IRQHandler()
4968 tmp3 = hi2c->State; in HAL_I2C_ER_IRQHandler()
4969 tmp4 = hi2c->PreviousState; in HAL_I2C_ER_IRQHandler()
4974 I2C_Slave_AF(hi2c); in HAL_I2C_ER_IRQHandler()
4979 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in HAL_I2C_ER_IRQHandler()
4987 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in HAL_I2C_ER_IRQHandler()
4997 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); in HAL_I2C_ER_IRQHandler()
5003 hi2c->ErrorCode |= error; in HAL_I2C_ER_IRQHandler()
5004 I2C_ITError(hi2c); in HAL_I2C_ER_IRQHandler()
5014 __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_MasterTxCpltCallback() argument
5017 UNUSED(hi2c); in HAL_I2C_MasterTxCpltCallback()
5030 __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_MasterRxCpltCallback() argument
5033 UNUSED(hi2c); in HAL_I2C_MasterRxCpltCallback()
5045 __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_SlaveTxCpltCallback() argument
5048 UNUSED(hi2c); in HAL_I2C_SlaveTxCpltCallback()
5061 __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_SlaveRxCpltCallback() argument
5064 UNUSED(hi2c); in HAL_I2C_SlaveRxCpltCallback()
5079 __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM… in HAL_I2C_AddrCallback() argument
5082 UNUSED(hi2c); in HAL_I2C_AddrCallback()
5097 __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_ListenCpltCallback() argument
5100 UNUSED(hi2c); in HAL_I2C_ListenCpltCallback()
5113 __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_MemTxCpltCallback() argument
5116 UNUSED(hi2c); in HAL_I2C_MemTxCpltCallback()
5129 __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_MemRxCpltCallback() argument
5132 UNUSED(hi2c); in HAL_I2C_MemRxCpltCallback()
5145 __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_ErrorCallback() argument
5148 UNUSED(hi2c); in HAL_I2C_ErrorCallback()
5161 __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) in HAL_I2C_AbortCpltCallback() argument
5164 UNUSED(hi2c); in HAL_I2C_AbortCpltCallback()
5196 HAL_I2C_StateTypeDef HAL_I2C_GetState(I2C_HandleTypeDef *hi2c) in HAL_I2C_GetState() argument
5199 return hi2c->State; in HAL_I2C_GetState()
5208 HAL_I2C_ModeTypeDef HAL_I2C_GetMode(I2C_HandleTypeDef *hi2c) in HAL_I2C_GetMode() argument
5210 return hi2c->Mode; in HAL_I2C_GetMode()
5219 uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c) in HAL_I2C_GetError() argument
5221 return hi2c->ErrorCode; in HAL_I2C_GetError()
5242 static void I2C_MasterTransmit_TXE(I2C_HandleTypeDef *hi2c) in I2C_MasterTransmit_TXE() argument
5245 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_MasterTransmit_TXE()
5246 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in I2C_MasterTransmit_TXE()
5247 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterTransmit_TXE()
5249 if ((hi2c->XferSize == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX)) in I2C_MasterTransmit_TXE()
5254 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterTransmit_TXE()
5256 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; in I2C_MasterTransmit_TXE()
5257 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_TXE()
5258 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterTransmit_TXE()
5261 hi2c->MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5263 HAL_I2C_MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5269 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterTransmit_TXE()
5272 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_MasterTransmit_TXE()
5274 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterTransmit_TXE()
5275 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterTransmit_TXE()
5277 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterTransmit_TXE()
5279 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_TXE()
5281 hi2c->MemTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5283 HAL_I2C_MemTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5288 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_TXE()
5290 hi2c->MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5292 HAL_I2C_MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_TXE()
5300 if (hi2c->XferCount == 0U) in I2C_MasterTransmit_TXE()
5303 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterTransmit_TXE()
5307 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterTransmit_TXE()
5309 I2C_MemoryTransmit_TXE_BTF(hi2c); in I2C_MasterTransmit_TXE()
5314 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_MasterTransmit_TXE()
5317 hi2c->pBuffPtr++; in I2C_MasterTransmit_TXE()
5320 hi2c->XferCount--; in I2C_MasterTransmit_TXE()
5336 static void I2C_MasterTransmit_BTF(I2C_HandleTypeDef *hi2c) in I2C_MasterTransmit_BTF() argument
5339 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterTransmit_BTF()
5341 if (hi2c->State == HAL_I2C_STATE_BUSY_TX) in I2C_MasterTransmit_BTF()
5343 if (hi2c->XferCount != 0U) in I2C_MasterTransmit_BTF()
5346 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_MasterTransmit_BTF()
5349 hi2c->pBuffPtr++; in I2C_MasterTransmit_BTF()
5352 hi2c->XferCount--; in I2C_MasterTransmit_BTF()
5359 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterTransmit_BTF()
5361 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; in I2C_MasterTransmit_BTF()
5362 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_BTF()
5363 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterTransmit_BTF()
5366 hi2c->MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5368 HAL_I2C_MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5374 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterTransmit_BTF()
5377 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_MasterTransmit_BTF()
5379 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterTransmit_BTF()
5380 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterTransmit_BTF()
5381 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterTransmit_BTF()
5383 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_BTF()
5385 hi2c->MemTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5387 HAL_I2C_MemTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5392 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterTransmit_BTF()
5395 hi2c->MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5397 HAL_I2C_MasterTxCpltCallback(hi2c); in I2C_MasterTransmit_BTF()
5415 static void I2C_MemoryTransmit_TXE_BTF(I2C_HandleTypeDef *hi2c) in I2C_MemoryTransmit_TXE_BTF() argument
5418 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_MemoryTransmit_TXE_BTF()
5420 if (hi2c->EventCount == 0U) in I2C_MemoryTransmit_TXE_BTF()
5423 if (hi2c->MemaddSize == I2C_MEMADD_SIZE_8BIT) in I2C_MemoryTransmit_TXE_BTF()
5426 hi2c->Instance->DR = I2C_MEM_ADD_LSB(hi2c->Memaddress); in I2C_MemoryTransmit_TXE_BTF()
5428 hi2c->EventCount += 2U; in I2C_MemoryTransmit_TXE_BTF()
5434 hi2c->Instance->DR = I2C_MEM_ADD_MSB(hi2c->Memaddress); in I2C_MemoryTransmit_TXE_BTF()
5436 hi2c->EventCount++; in I2C_MemoryTransmit_TXE_BTF()
5439 else if (hi2c->EventCount == 1U) in I2C_MemoryTransmit_TXE_BTF()
5442 hi2c->Instance->DR = I2C_MEM_ADD_LSB(hi2c->Memaddress); in I2C_MemoryTransmit_TXE_BTF()
5444 hi2c->EventCount++; in I2C_MemoryTransmit_TXE_BTF()
5446 else if (hi2c->EventCount == 2U) in I2C_MemoryTransmit_TXE_BTF()
5451 hi2c->Instance->CR1 |= I2C_CR1_START; in I2C_MemoryTransmit_TXE_BTF()
5453 hi2c->EventCount++; in I2C_MemoryTransmit_TXE_BTF()
5455 else if ((hi2c->XferCount > 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX)) in I2C_MemoryTransmit_TXE_BTF()
5458 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_MemoryTransmit_TXE_BTF()
5461 hi2c->pBuffPtr++; in I2C_MemoryTransmit_TXE_BTF()
5464 hi2c->XferCount--; in I2C_MemoryTransmit_TXE_BTF()
5466 else if ((hi2c->XferCount == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX)) in I2C_MemoryTransmit_TXE_BTF()
5470 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MemoryTransmit_TXE_BTF()
5473 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_MemoryTransmit_TXE_BTF()
5475 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MemoryTransmit_TXE_BTF()
5476 hi2c->State = HAL_I2C_STATE_READY; in I2C_MemoryTransmit_TXE_BTF()
5477 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MemoryTransmit_TXE_BTF()
5479 hi2c->MemTxCpltCallback(hi2c); in I2C_MemoryTransmit_TXE_BTF()
5481 HAL_I2C_MemTxCpltCallback(hi2c); in I2C_MemoryTransmit_TXE_BTF()
5492 I2C_Flush_DR(hi2c); in I2C_MemoryTransmit_TXE_BTF()
5502 static void I2C_MasterReceive_RXNE(I2C_HandleTypeDef *hi2c) in I2C_MasterReceive_RXNE() argument
5504 if (hi2c->State == HAL_I2C_STATE_BUSY_RX) in I2C_MasterReceive_RXNE()
5508 tmp = hi2c->XferCount; in I2C_MasterReceive_RXNE()
5512 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_RXNE()
5515 hi2c->pBuffPtr++; in I2C_MasterReceive_RXNE()
5518 hi2c->XferCount--; in I2C_MasterReceive_RXNE()
5520 if (hi2c->XferCount == (uint16_t)3) in I2C_MasterReceive_RXNE()
5525 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterReceive_RXNE()
5528 else if ((hi2c->XferOptions != I2C_FIRST_AND_NEXT_FRAME) && ((tmp == 1U) || (tmp == 0U))) in I2C_MasterReceive_RXNE()
5530 if (I2C_WaitOnSTOPRequestThroughIT(hi2c) == HAL_OK) in I2C_MasterReceive_RXNE()
5533 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterReceive_RXNE()
5536 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterReceive_RXNE()
5539 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_RXNE()
5542 hi2c->pBuffPtr++; in I2C_MasterReceive_RXNE()
5545 hi2c->XferCount--; in I2C_MasterReceive_RXNE()
5547 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterReceive_RXNE()
5549 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterReceive_RXNE()
5551 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_RXNE()
5552 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterReceive_RXNE()
5555 hi2c->MemRxCpltCallback(hi2c); in I2C_MasterReceive_RXNE()
5557 HAL_I2C_MemRxCpltCallback(hi2c); in I2C_MasterReceive_RXNE()
5562 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_RXNE()
5563 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; in I2C_MasterReceive_RXNE()
5566 hi2c->MasterRxCpltCallback(hi2c); in I2C_MasterReceive_RXNE()
5568 HAL_I2C_MasterRxCpltCallback(hi2c); in I2C_MasterReceive_RXNE()
5575 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_MasterReceive_RXNE()
5578 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_RXNE()
5581 hi2c->pBuffPtr++; in I2C_MasterReceive_RXNE()
5584 hi2c->XferCount--; in I2C_MasterReceive_RXNE()
5586 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterReceive_RXNE()
5587 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_RXNE()
5591 hi2c->ErrorCallback(hi2c); in I2C_MasterReceive_RXNE()
5593 HAL_I2C_ErrorCallback(hi2c); in I2C_MasterReceive_RXNE()
5601 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterReceive_RXNE()
5612 static void I2C_MasterReceive_BTF(I2C_HandleTypeDef *hi2c) in I2C_MasterReceive_BTF() argument
5615 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterReceive_BTF()
5617 if (hi2c->XferCount == 4U) in I2C_MasterReceive_BTF()
5621 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterReceive_BTF()
5624 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5627 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5630 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5632 else if (hi2c->XferCount == 3U) in I2C_MasterReceive_BTF()
5636 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_MasterReceive_BTF()
5641 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterReceive_BTF()
5645 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5648 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5651 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5653 else if (hi2c->XferCount == 2U) in I2C_MasterReceive_BTF()
5659 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterReceive_BTF()
5664 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterReceive_BTF()
5669 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_MasterReceive_BTF()
5677 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5680 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5683 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5686 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5689 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5692 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5695 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in I2C_MasterReceive_BTF()
5697 hi2c->State = HAL_I2C_STATE_READY; in I2C_MasterReceive_BTF()
5698 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_MasterReceive_BTF()
5700 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_BTF()
5701 hi2c->PreviousState = I2C_STATE_NONE; in I2C_MasterReceive_BTF()
5703 hi2c->MemRxCpltCallback(hi2c); in I2C_MasterReceive_BTF()
5705 HAL_I2C_MemRxCpltCallback(hi2c); in I2C_MasterReceive_BTF()
5710 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_MasterReceive_BTF()
5711 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; in I2C_MasterReceive_BTF()
5713 hi2c->MasterRxCpltCallback(hi2c); in I2C_MasterReceive_BTF()
5715 HAL_I2C_MasterRxCpltCallback(hi2c); in I2C_MasterReceive_BTF()
5722 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_MasterReceive_BTF()
5725 hi2c->pBuffPtr++; in I2C_MasterReceive_BTF()
5728 hi2c->XferCount--; in I2C_MasterReceive_BTF()
5738 static void I2C_Master_SB(I2C_HandleTypeDef *hi2c) in I2C_Master_SB() argument
5740 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_Master_SB()
5742 if (hi2c->EventCount == 0U) in I2C_Master_SB()
5745 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(hi2c->Devaddress); in I2C_Master_SB()
5749 hi2c->Instance->DR = I2C_7BIT_ADD_READ(hi2c->Devaddress); in I2C_Master_SB()
5754 if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) in I2C_Master_SB()
5757 if (hi2c->State == HAL_I2C_STATE_BUSY_TX) in I2C_Master_SB()
5759 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(hi2c->Devaddress); in I2C_Master_SB()
5763 hi2c->Instance->DR = I2C_7BIT_ADD_READ(hi2c->Devaddress); in I2C_Master_SB()
5766 if (((hi2c->hdmatx != NULL) && (hi2c->hdmatx->XferCpltCallback != NULL)) in I2C_Master_SB()
5767 || ((hi2c->hdmarx != NULL) && (hi2c->hdmarx->XferCpltCallback != NULL))) in I2C_Master_SB()
5770 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_Master_SB()
5775 if (hi2c->EventCount == 0U) in I2C_Master_SB()
5778 hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(hi2c->Devaddress); in I2C_Master_SB()
5780 else if (hi2c->EventCount == 1U) in I2C_Master_SB()
5783 hi2c->Instance->DR = I2C_10BIT_HEADER_READ(hi2c->Devaddress); in I2C_Master_SB()
5799 static void I2C_Master_ADD10(I2C_HandleTypeDef *hi2c) in I2C_Master_ADD10() argument
5802 hi2c->Instance->DR = I2C_10BIT_ADDRESS(hi2c->Devaddress); in I2C_Master_ADD10()
5804 if (((hi2c->hdmatx != NULL) && (hi2c->hdmatx->XferCpltCallback != NULL)) in I2C_Master_ADD10()
5805 || ((hi2c->hdmarx != NULL) && (hi2c->hdmarx->XferCpltCallback != NULL))) in I2C_Master_ADD10()
5808 SET_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_Master_ADD10()
5818 static void I2C_Master_ADDR(I2C_HandleTypeDef *hi2c) in I2C_Master_ADDR() argument
5821 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in I2C_Master_ADDR()
5822 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_Master_ADDR()
5823 uint32_t Prev_State = hi2c->PreviousState; in I2C_Master_ADDR()
5825 if (hi2c->State == HAL_I2C_STATE_BUSY_RX) in I2C_Master_ADDR()
5827 if ((hi2c->EventCount == 0U) && (CurrentMode == HAL_I2C_MODE_MEM)) in I2C_Master_ADDR()
5830 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5832 else if ((hi2c->EventCount == 0U) && (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)) in I2C_Master_ADDR()
5835 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5838 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_Master_ADDR()
5840 hi2c->EventCount++; in I2C_Master_ADDR()
5844 if (hi2c->XferCount == 0U) in I2C_Master_ADDR()
5847 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5850 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_Master_ADDR()
5852 else if (hi2c->XferCount == 1U) in I2C_Master_ADDR()
5857 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5859 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in I2C_Master_ADDR()
5862 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5865 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5870 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5873 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_Master_ADDR()
5883 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5888 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5892 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5897 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5900 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5903 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_Master_ADDR()
5906 else if (hi2c->XferCount == 2U) in I2C_Master_ADDR()
5911 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5914 SET_BIT(hi2c->Instance->CR1, I2C_CR1_POS); in I2C_Master_ADDR()
5919 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5922 …if (((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) && ((CurrentXferOptions == I2C_NO_OPT… in I2C_Master_ADDR()
5925 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in I2C_Master_ADDR()
5929 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5934 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Master_ADDR()
5936 …if (((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) && ((CurrentXferOptions == I2C_NO_OPT… in I2C_Master_ADDR()
5939 SET_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in I2C_Master_ADDR()
5943 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5947 hi2c->EventCount = 0U; in I2C_Master_ADDR()
5953 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Master_ADDR()
5963 static void I2C_SlaveTransmit_TXE(I2C_HandleTypeDef *hi2c) in I2C_SlaveTransmit_TXE() argument
5966 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_SlaveTransmit_TXE()
5968 if (hi2c->XferCount != 0U) in I2C_SlaveTransmit_TXE()
5971 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_SlaveTransmit_TXE()
5974 hi2c->pBuffPtr++; in I2C_SlaveTransmit_TXE()
5977 hi2c->XferCount--; in I2C_SlaveTransmit_TXE()
5979 if ((hi2c->XferCount == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_TX_LISTEN)) in I2C_SlaveTransmit_TXE()
5982 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_SlaveTransmit_TXE()
5985 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; in I2C_SlaveTransmit_TXE()
5986 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_SlaveTransmit_TXE()
5990 hi2c->SlaveTxCpltCallback(hi2c); in I2C_SlaveTransmit_TXE()
5992 HAL_I2C_SlaveTxCpltCallback(hi2c); in I2C_SlaveTransmit_TXE()
6004 static void I2C_SlaveTransmit_BTF(I2C_HandleTypeDef *hi2c) in I2C_SlaveTransmit_BTF() argument
6006 if (hi2c->XferCount != 0U) in I2C_SlaveTransmit_BTF()
6009 hi2c->Instance->DR = *hi2c->pBuffPtr; in I2C_SlaveTransmit_BTF()
6012 hi2c->pBuffPtr++; in I2C_SlaveTransmit_BTF()
6015 hi2c->XferCount--; in I2C_SlaveTransmit_BTF()
6025 static void I2C_SlaveReceive_RXNE(I2C_HandleTypeDef *hi2c) in I2C_SlaveReceive_RXNE() argument
6028 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_SlaveReceive_RXNE()
6030 if (hi2c->XferCount != 0U) in I2C_SlaveReceive_RXNE()
6033 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_SlaveReceive_RXNE()
6036 hi2c->pBuffPtr++; in I2C_SlaveReceive_RXNE()
6039 hi2c->XferCount--; in I2C_SlaveReceive_RXNE()
6041 if ((hi2c->XferCount == 0U) && (CurrentState == HAL_I2C_STATE_BUSY_RX_LISTEN)) in I2C_SlaveReceive_RXNE()
6044 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); in I2C_SlaveReceive_RXNE()
6047 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; in I2C_SlaveReceive_RXNE()
6048 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_SlaveReceive_RXNE()
6052 hi2c->SlaveRxCpltCallback(hi2c); in I2C_SlaveReceive_RXNE()
6054 HAL_I2C_SlaveRxCpltCallback(hi2c); in I2C_SlaveReceive_RXNE()
6066 static void I2C_SlaveReceive_BTF(I2C_HandleTypeDef *hi2c) in I2C_SlaveReceive_BTF() argument
6068 if (hi2c->XferCount != 0U) in I2C_SlaveReceive_BTF()
6071 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_SlaveReceive_BTF()
6074 hi2c->pBuffPtr++; in I2C_SlaveReceive_BTF()
6077 hi2c->XferCount--; in I2C_SlaveReceive_BTF()
6088 static void I2C_Slave_ADDR(I2C_HandleTypeDef *hi2c, uint32_t IT2Flags) in I2C_Slave_ADDR() argument
6093 if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) in I2C_Slave_ADDR()
6096 __HAL_I2C_DISABLE_IT(hi2c, (I2C_IT_BUF)); in I2C_Slave_ADDR()
6106 SlaveAddrCode = (uint16_t)hi2c->Init.OwnAddress1; in I2C_Slave_ADDR()
6110 SlaveAddrCode = (uint16_t)hi2c->Init.OwnAddress2; in I2C_Slave_ADDR()
6114 __HAL_UNLOCK(hi2c); in I2C_Slave_ADDR()
6118 hi2c->AddrCallback(hi2c, TransferDirection, SlaveAddrCode); in I2C_Slave_ADDR()
6120 HAL_I2C_AddrCallback(hi2c, TransferDirection, SlaveAddrCode); in I2C_Slave_ADDR()
6126 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_Slave_ADDR()
6129 __HAL_UNLOCK(hi2c); in I2C_Slave_ADDR()
6139 static void I2C_Slave_STOPF(I2C_HandleTypeDef *hi2c) in I2C_Slave_STOPF() argument
6142 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_Slave_STOPF()
6145 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_Slave_STOPF()
6148 __HAL_I2C_CLEAR_STOPFLAG(hi2c); in I2C_Slave_STOPF()
6151 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Slave_STOPF()
6154 if ((hi2c->Instance->CR2 & I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in I2C_Slave_STOPF()
6158 hi2c->XferCount = (uint16_t)(I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx)); in I2C_Slave_STOPF()
6160 if (hi2c->XferCount != 0U) in I2C_Slave_STOPF()
6163 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_Slave_STOPF()
6167 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_Slave_STOPF()
6170 if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) in I2C_Slave_STOPF()
6174 hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; in I2C_Slave_STOPF()
6177 if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) in I2C_Slave_STOPF()
6180 hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); in I2C_Slave_STOPF()
6186 hi2c->XferCount = (uint16_t)(I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx)); in I2C_Slave_STOPF()
6188 if (hi2c->XferCount != 0U) in I2C_Slave_STOPF()
6191 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_Slave_STOPF()
6195 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_Slave_STOPF()
6198 if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) in I2C_Slave_STOPF()
6202 hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; in I2C_Slave_STOPF()
6205 if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) in I2C_Slave_STOPF()
6208 hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); in I2C_Slave_STOPF()
6215 if (hi2c->XferCount != 0U) in I2C_Slave_STOPF()
6218 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == SET) in I2C_Slave_STOPF()
6221 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_Slave_STOPF()
6224 hi2c->pBuffPtr++; in I2C_Slave_STOPF()
6227 hi2c->XferCount--; in I2C_Slave_STOPF()
6231 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) in I2C_Slave_STOPF()
6234 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_Slave_STOPF()
6237 hi2c->pBuffPtr++; in I2C_Slave_STOPF()
6240 hi2c->XferCount--; in I2C_Slave_STOPF()
6243 if (hi2c->XferCount != 0U) in I2C_Slave_STOPF()
6246 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_Slave_STOPF()
6250 if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) in I2C_Slave_STOPF()
6253 I2C_ITError(hi2c); in I2C_Slave_STOPF()
6260 hi2c->PreviousState = I2C_STATE_NONE; in I2C_Slave_STOPF()
6261 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_Slave_STOPF()
6265 hi2c->SlaveRxCpltCallback(hi2c); in I2C_Slave_STOPF()
6267 HAL_I2C_SlaveRxCpltCallback(hi2c); in I2C_Slave_STOPF()
6271 if (hi2c->State == HAL_I2C_STATE_LISTEN) in I2C_Slave_STOPF()
6273 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in I2C_Slave_STOPF()
6274 hi2c->PreviousState = I2C_STATE_NONE; in I2C_Slave_STOPF()
6275 hi2c->State = HAL_I2C_STATE_READY; in I2C_Slave_STOPF()
6276 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_Slave_STOPF()
6280 hi2c->ListenCpltCallback(hi2c); in I2C_Slave_STOPF()
6282 HAL_I2C_ListenCpltCallback(hi2c); in I2C_Slave_STOPF()
6287 … if ((hi2c->PreviousState == I2C_STATE_SLAVE_BUSY_RX) || (CurrentState == HAL_I2C_STATE_BUSY_RX)) in I2C_Slave_STOPF()
6289 hi2c->PreviousState = I2C_STATE_NONE; in I2C_Slave_STOPF()
6290 hi2c->State = HAL_I2C_STATE_READY; in I2C_Slave_STOPF()
6291 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_Slave_STOPF()
6294 hi2c->SlaveRxCpltCallback(hi2c); in I2C_Slave_STOPF()
6296 HAL_I2C_SlaveRxCpltCallback(hi2c); in I2C_Slave_STOPF()
6308 static void I2C_Slave_AF(I2C_HandleTypeDef *hi2c) in I2C_Slave_AF() argument
6311 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_Slave_AF()
6312 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_Slave_AF()
6317 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in I2C_Slave_AF()
6320 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_Slave_AF()
6323 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_Slave_AF()
6326 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Slave_AF()
6328 hi2c->PreviousState = I2C_STATE_NONE; in I2C_Slave_AF()
6329 hi2c->State = HAL_I2C_STATE_READY; in I2C_Slave_AF()
6330 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_Slave_AF()
6334 hi2c->ListenCpltCallback(hi2c); in I2C_Slave_AF()
6336 HAL_I2C_ListenCpltCallback(hi2c); in I2C_Slave_AF()
6341 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in I2C_Slave_AF()
6342 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; in I2C_Slave_AF()
6343 hi2c->State = HAL_I2C_STATE_READY; in I2C_Slave_AF()
6344 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_Slave_AF()
6347 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_Slave_AF()
6350 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_Slave_AF()
6353 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_Slave_AF()
6356 I2C_Flush_DR(hi2c); in I2C_Slave_AF()
6359 hi2c->SlaveTxCpltCallback(hi2c); in I2C_Slave_AF()
6361 HAL_I2C_SlaveTxCpltCallback(hi2c); in I2C_Slave_AF()
6368 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_Slave_AF()
6377 static void I2C_ITError(I2C_HandleTypeDef *hi2c) in I2C_ITError() argument
6380 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_ITError()
6381 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in I2C_ITError()
6387 hi2c->Instance->CR1 &= ~I2C_CR1_POS; in I2C_ITError()
6393 hi2c->PreviousState = I2C_STATE_NONE; in I2C_ITError()
6394 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_ITError()
6400 …if ((READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) != I2C_CR2_DMAEN) && (CurrentState != HAL_I2C_ST… in I2C_ITError()
6402 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6403 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_ITError()
6405 hi2c->PreviousState = I2C_STATE_NONE; in I2C_ITError()
6409 if (READ_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN) == I2C_CR2_DMAEN) in I2C_ITError()
6411 hi2c->Instance->CR2 &= ~I2C_CR2_DMAEN; in I2C_ITError()
6413 if (hi2c->hdmatx->State != HAL_DMA_STATE_READY) in I2C_ITError()
6417 hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; in I2C_ITError()
6419 if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) in I2C_ITError()
6422 __HAL_I2C_DISABLE(hi2c); in I2C_ITError()
6424 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6427 hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); in I2C_ITError()
6434 hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; in I2C_ITError()
6436 if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) in I2C_ITError()
6439 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) in I2C_ITError()
6442 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_ITError()
6445 hi2c->pBuffPtr++; in I2C_ITError()
6449 __HAL_I2C_DISABLE(hi2c); in I2C_ITError()
6451 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6454 hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); in I2C_ITError()
6458 else if (hi2c->State == HAL_I2C_STATE_ABORT) in I2C_ITError()
6460 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6461 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in I2C_ITError()
6464 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) in I2C_ITError()
6467 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_ITError()
6470 hi2c->pBuffPtr++; in I2C_ITError()
6474 __HAL_I2C_DISABLE(hi2c); in I2C_ITError()
6478 hi2c->AbortCpltCallback(hi2c); in I2C_ITError()
6480 HAL_I2C_AbortCpltCallback(hi2c); in I2C_ITError()
6486 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) in I2C_ITError()
6489 *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->DR; in I2C_ITError()
6492 hi2c->pBuffPtr++; in I2C_ITError()
6497 hi2c->ErrorCallback(hi2c); in I2C_ITError()
6499 HAL_I2C_ErrorCallback(hi2c); in I2C_ITError()
6504 CurrentError = hi2c->ErrorCode; in I2C_ITError()
6512 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); in I2C_ITError()
6517 CurrentState = hi2c->State; in I2C_ITError()
6518 …if (((hi2c->ErrorCode & HAL_I2C_ERROR_AF) == HAL_I2C_ERROR_AF) && (CurrentState == HAL_I2C_STATE_L… in I2C_ITError()
6520 hi2c->XferOptions = I2C_NO_OPTION_FRAME; in I2C_ITError()
6521 hi2c->PreviousState = I2C_STATE_NONE; in I2C_ITError()
6522 hi2c->State = HAL_I2C_STATE_READY; in I2C_ITError()
6523 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_ITError()
6527 hi2c->ListenCpltCallback(hi2c); in I2C_ITError()
6529 HAL_I2C_ListenCpltCallback(hi2c); in I2C_ITError()
6543 static HAL_StatusTypeDef I2C_MasterRequestWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint3… in I2C_MasterRequestWrite() argument
6546 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterRequestWrite()
6552 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestWrite()
6554 else if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) in I2C_MasterRequestWrite()
6557 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestWrite()
6565 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestWrite()
6567 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_MasterRequestWrite()
6569 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_MasterRequestWrite()
6574 if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) in I2C_MasterRequestWrite()
6577 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); in I2C_MasterRequestWrite()
6582 hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(DevAddress); in I2C_MasterRequestWrite()
6585 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADD10, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestWrite()
6591 hi2c->Instance->DR = I2C_10BIT_ADDRESS(DevAddress); in I2C_MasterRequestWrite()
6595 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestWrite()
6613 static HAL_StatusTypeDef I2C_MasterRequestRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32… in I2C_MasterRequestRead() argument
6616 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_MasterRequestRead()
6619 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_MasterRequestRead()
6625 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestRead()
6627 else if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) in I2C_MasterRequestRead()
6630 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestRead()
6638 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6640 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_MasterRequestRead()
6642 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_MasterRequestRead()
6647 if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) in I2C_MasterRequestRead()
6650 hi2c->Instance->DR = I2C_7BIT_ADD_READ(DevAddress); in I2C_MasterRequestRead()
6655 hi2c->Instance->DR = I2C_10BIT_HEADER_WRITE(DevAddress); in I2C_MasterRequestRead()
6658 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADD10, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6664 hi2c->Instance->DR = I2C_10BIT_ADDRESS(DevAddress); in I2C_MasterRequestRead()
6667 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6673 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_MasterRequestRead()
6676 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_MasterRequestRead()
6679 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6681 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_MasterRequestRead()
6683 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_MasterRequestRead()
6689 hi2c->Instance->DR = I2C_10BIT_HEADER_READ(DevAddress); in I2C_MasterRequestRead()
6693 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_MasterRequestRead()
6713 static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint1… in I2C_RequestMemoryWrite() argument
6716 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_RequestMemoryWrite()
6719 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryWrite()
6721 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_RequestMemoryWrite()
6723 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_RequestMemoryWrite()
6729 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); in I2C_RequestMemoryWrite()
6732 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryWrite()
6738 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_RequestMemoryWrite()
6741 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryWrite()
6743 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryWrite()
6746 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryWrite()
6755 hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); in I2C_RequestMemoryWrite()
6761 hi2c->Instance->DR = I2C_MEM_ADD_MSB(MemAddress); in I2C_RequestMemoryWrite()
6764 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryWrite()
6766 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryWrite()
6769 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryWrite()
6775 hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); in I2C_RequestMemoryWrite()
6793 static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16… in I2C_RequestMemoryRead() argument
6796 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_RequestMemoryRead()
6799 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_RequestMemoryRead()
6802 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6804 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_RequestMemoryRead()
6806 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_RequestMemoryRead()
6812 hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(DevAddress); in I2C_RequestMemoryRead()
6815 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6821 __HAL_I2C_CLEAR_ADDRFLAG(hi2c); in I2C_RequestMemoryRead()
6824 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6826 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryRead()
6829 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryRead()
6838 hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); in I2C_RequestMemoryRead()
6844 hi2c->Instance->DR = I2C_MEM_ADD_MSB(MemAddress); in I2C_RequestMemoryRead()
6847 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6849 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryRead()
6852 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryRead()
6858 hi2c->Instance->DR = I2C_MEM_ADD_LSB(MemAddress); in I2C_RequestMemoryRead()
6862 if (I2C_WaitOnTXEFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6864 if (hi2c->ErrorCode == HAL_I2C_ERROR_AF) in I2C_RequestMemoryRead()
6867 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_RequestMemoryRead()
6873 SET_BIT(hi2c->Instance->CR1, I2C_CR1_START); in I2C_RequestMemoryRead()
6876 if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_SB, RESET, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6878 if (READ_BIT(hi2c->Instance->CR1, I2C_CR1_START) == I2C_CR1_START) in I2C_RequestMemoryRead()
6880 hi2c->ErrorCode = HAL_I2C_WRONG_START; in I2C_RequestMemoryRead()
6886 hi2c->Instance->DR = I2C_7BIT_ADD_READ(DevAddress); in I2C_RequestMemoryRead()
6889 if (I2C_WaitOnMasterAddressFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, Timeout, Tickstart) != HAL_OK) in I2C_RequestMemoryRead()
6904 …I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2C_DMAXferCplt() local
6907 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_DMAXferCplt()
6908 HAL_I2C_ModeTypeDef CurrentMode = hi2c->Mode; in I2C_DMAXferCplt()
6909 uint32_t CurrentXferOptions = hi2c->XferOptions; in I2C_DMAXferCplt()
6912 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in I2C_DMAXferCplt()
6915 if (hi2c->hdmatx != NULL) in I2C_DMAXferCplt()
6917 hi2c->hdmatx->XferCpltCallback = NULL; in I2C_DMAXferCplt()
6919 if (hi2c->hdmarx != NULL) in I2C_DMAXferCplt()
6921 hi2c->hdmarx->XferCpltCallback = NULL; in I2C_DMAXferCplt()
6927 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_DMAXferCplt()
6929 hi2c->XferCount = 0U; in I2C_DMAXferCplt()
6934 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; in I2C_DMAXferCplt()
6935 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_DMAXferCplt()
6939 hi2c->SlaveTxCpltCallback(hi2c); in I2C_DMAXferCplt()
6941 HAL_I2C_SlaveTxCpltCallback(hi2c); in I2C_DMAXferCplt()
6947 hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; in I2C_DMAXferCplt()
6948 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_DMAXferCplt()
6952 hi2c->SlaveRxCpltCallback(hi2c); in I2C_DMAXferCplt()
6954 HAL_I2C_SlaveRxCpltCallback(hi2c); in I2C_DMAXferCplt()
6963 __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in I2C_DMAXferCplt()
6966 else if (hi2c->Mode != HAL_I2C_MODE_NONE) in I2C_DMAXferCplt()
6968 if (hi2c->XferCount == (uint16_t)1) in I2C_DMAXferCplt()
6971 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_DMAXferCplt()
6975 __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); in I2C_DMAXferCplt()
6981 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_DMAXferCplt()
6985 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_LAST); in I2C_DMAXferCplt()
6988 CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_DMAEN); in I2C_DMAXferCplt()
6990 hi2c->XferCount = 0U; in I2C_DMAXferCplt()
6993 if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) in I2C_DMAXferCplt()
6996 hi2c->ErrorCallback(hi2c); in I2C_DMAXferCplt()
6998 HAL_I2C_ErrorCallback(hi2c); in I2C_DMAXferCplt()
7003 hi2c->State = HAL_I2C_STATE_READY; in I2C_DMAXferCplt()
7005 if (hi2c->Mode == HAL_I2C_MODE_MEM) in I2C_DMAXferCplt()
7007 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAXferCplt()
7008 hi2c->PreviousState = I2C_STATE_NONE; in I2C_DMAXferCplt()
7011 hi2c->MemRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7013 HAL_I2C_MemRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7018 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAXferCplt()
7019 hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; in I2C_DMAXferCplt()
7022 hi2c->MasterRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7024 HAL_I2C_MasterRxCpltCallback(hi2c); in I2C_DMAXferCplt()
7042 …I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2C_DMAError() local
7045 if (hi2c->hdmatx != NULL) in I2C_DMAError()
7047 hi2c->hdmatx->XferCpltCallback = NULL; in I2C_DMAError()
7049 if (hi2c->hdmarx != NULL) in I2C_DMAError()
7051 hi2c->hdmarx->XferCpltCallback = NULL; in I2C_DMAError()
7055 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_DMAError()
7057 hi2c->XferCount = 0U; in I2C_DMAError()
7058 hi2c->State = HAL_I2C_STATE_READY; in I2C_DMAError()
7059 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAError()
7060 hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; in I2C_DMAError()
7063 hi2c->ErrorCallback(hi2c); in I2C_DMAError()
7065 HAL_I2C_ErrorCallback(hi2c); in I2C_DMAError()
7078 …I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; /* Derogation … in I2C_DMAAbort() local
7081 HAL_I2C_StateTypeDef CurrentState = hi2c->State; in I2C_DMAAbort()
7090 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_DMAAbort()
7095 while (READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP); in I2C_DMAAbort()
7098 if (hi2c->hdmatx != NULL) in I2C_DMAAbort()
7100 hi2c->hdmatx->XferCpltCallback = NULL; in I2C_DMAAbort()
7102 if (hi2c->hdmarx != NULL) in I2C_DMAAbort()
7104 hi2c->hdmarx->XferCpltCallback = NULL; in I2C_DMAAbort()
7108 CLEAR_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_DMAAbort()
7110 hi2c->XferCount = 0U; in I2C_DMAAbort()
7113 if (hi2c->hdmatx != NULL) in I2C_DMAAbort()
7115 hi2c->hdmatx->XferAbortCallback = NULL; in I2C_DMAAbort()
7117 if (hi2c->hdmarx != NULL) in I2C_DMAAbort()
7119 hi2c->hdmarx->XferAbortCallback = NULL; in I2C_DMAAbort()
7123 __HAL_I2C_DISABLE(hi2c); in I2C_DMAAbort()
7126 if (hi2c->State == HAL_I2C_STATE_ABORT) in I2C_DMAAbort()
7128 hi2c->State = HAL_I2C_STATE_READY; in I2C_DMAAbort()
7129 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAAbort()
7130 hi2c->ErrorCode = HAL_I2C_ERROR_NONE; in I2C_DMAAbort()
7134 hi2c->AbortCpltCallback(hi2c); in I2C_DMAAbort()
7136 HAL_I2C_AbortCpltCallback(hi2c); in I2C_DMAAbort()
7144 __HAL_I2C_ENABLE(hi2c); in I2C_DMAAbort()
7147 SET_BIT(hi2c->Instance->CR1, I2C_CR1_ACK); in I2C_DMAAbort()
7150 hi2c->PreviousState = I2C_STATE_NONE; in I2C_DMAAbort()
7151 hi2c->State = HAL_I2C_STATE_LISTEN; in I2C_DMAAbort()
7155 hi2c->State = HAL_I2C_STATE_READY; in I2C_DMAAbort()
7156 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_DMAAbort()
7161 hi2c->ErrorCallback(hi2c); in I2C_DMAAbort()
7163 HAL_I2C_ErrorCallback(hi2c); in I2C_DMAAbort()
7178 static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta… in I2C_WaitOnFlagUntilTimeout() argument
7181 while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) in I2C_WaitOnFlagUntilTimeout()
7188 if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) in I2C_WaitOnFlagUntilTimeout()
7190 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnFlagUntilTimeout()
7191 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnFlagUntilTimeout()
7192 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnFlagUntilTimeout()
7193 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnFlagUntilTimeout()
7196 __HAL_UNLOCK(hi2c); in I2C_WaitOnFlagUntilTimeout()
7215 static HAL_StatusTypeDef I2C_WaitOnMasterAddressFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t … in I2C_WaitOnMasterAddressFlagUntilTimeout() argument
7217 while (__HAL_I2C_GET_FLAG(hi2c, Flag) == RESET) in I2C_WaitOnMasterAddressFlagUntilTimeout()
7219 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) in I2C_WaitOnMasterAddressFlagUntilTimeout()
7222 SET_BIT(hi2c->Instance->CR1, I2C_CR1_STOP); in I2C_WaitOnMasterAddressFlagUntilTimeout()
7225 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_WaitOnMasterAddressFlagUntilTimeout()
7227 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7228 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7229 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7230 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7233 __HAL_UNLOCK(hi2c); in I2C_WaitOnMasterAddressFlagUntilTimeout()
7243 if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == RESET)) in I2C_WaitOnMasterAddressFlagUntilTimeout()
7245 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7246 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7247 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7248 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnMasterAddressFlagUntilTimeout()
7251 __HAL_UNLOCK(hi2c); in I2C_WaitOnMasterAddressFlagUntilTimeout()
7269 static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, u… in I2C_WaitOnTXEFlagUntilTimeout() argument
7271 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) in I2C_WaitOnTXEFlagUntilTimeout()
7274 if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) in I2C_WaitOnTXEFlagUntilTimeout()
7284 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET)) in I2C_WaitOnTXEFlagUntilTimeout()
7286 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnTXEFlagUntilTimeout()
7287 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnTXEFlagUntilTimeout()
7288 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnTXEFlagUntilTimeout()
7289 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnTXEFlagUntilTimeout()
7292 __HAL_UNLOCK(hi2c); in I2C_WaitOnTXEFlagUntilTimeout()
7310 static HAL_StatusTypeDef I2C_WaitOnBTFFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, u… in I2C_WaitOnBTFFlagUntilTimeout() argument
7312 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET) in I2C_WaitOnBTFFlagUntilTimeout()
7315 if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) in I2C_WaitOnBTFFlagUntilTimeout()
7325 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET)) in I2C_WaitOnBTFFlagUntilTimeout()
7327 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnBTFFlagUntilTimeout()
7328 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnBTFFlagUntilTimeout()
7329 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnBTFFlagUntilTimeout()
7330 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnBTFFlagUntilTimeout()
7333 __HAL_UNLOCK(hi2c); in I2C_WaitOnBTFFlagUntilTimeout()
7351 static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, … in I2C_WaitOnSTOPFlagUntilTimeout() argument
7353 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) in I2C_WaitOnSTOPFlagUntilTimeout()
7356 if (I2C_IsAcknowledgeFailed(hi2c) != HAL_OK) in I2C_WaitOnSTOPFlagUntilTimeout()
7364 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)) in I2C_WaitOnSTOPFlagUntilTimeout()
7366 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnSTOPFlagUntilTimeout()
7367 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnSTOPFlagUntilTimeout()
7368 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnSTOPFlagUntilTimeout()
7369 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnSTOPFlagUntilTimeout()
7372 __HAL_UNLOCK(hi2c); in I2C_WaitOnSTOPFlagUntilTimeout()
7387 static HAL_StatusTypeDef I2C_WaitOnSTOPRequestThroughIT(I2C_HandleTypeDef *hi2c) in I2C_WaitOnSTOPRequestThroughIT() argument
7398 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnSTOPRequestThroughIT()
7403 while (READ_BIT(hi2c->Instance->CR1, I2C_CR1_STOP) == I2C_CR1_STOP); in I2C_WaitOnSTOPRequestThroughIT()
7416 static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, … in I2C_WaitOnRXNEFlagUntilTimeout() argument
7419 while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) in I2C_WaitOnRXNEFlagUntilTimeout()
7422 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) in I2C_WaitOnRXNEFlagUntilTimeout()
7425 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); in I2C_WaitOnRXNEFlagUntilTimeout()
7427 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7428 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnRXNEFlagUntilTimeout()
7429 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7430 hi2c->ErrorCode |= HAL_I2C_ERROR_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7433 __HAL_UNLOCK(hi2c); in I2C_WaitOnRXNEFlagUntilTimeout()
7441 if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)) in I2C_WaitOnRXNEFlagUntilTimeout()
7443 hi2c->PreviousState = I2C_STATE_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7444 hi2c->State = HAL_I2C_STATE_READY; in I2C_WaitOnRXNEFlagUntilTimeout()
7445 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_WaitOnRXNEFlagUntilTimeout()
7446 hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; in I2C_WaitOnRXNEFlagUntilTimeout()
7449 __HAL_UNLOCK(hi2c); in I2C_WaitOnRXNEFlagUntilTimeout()
7464 static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c) in I2C_IsAcknowledgeFailed() argument
7466 if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) in I2C_IsAcknowledgeFailed()
7469 __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); in I2C_IsAcknowledgeFailed()
7471 hi2c->PreviousState = I2C_STATE_NONE; in I2C_IsAcknowledgeFailed()
7472 hi2c->State = HAL_I2C_STATE_READY; in I2C_IsAcknowledgeFailed()
7473 hi2c->Mode = HAL_I2C_MODE_NONE; in I2C_IsAcknowledgeFailed()
7474 hi2c->ErrorCode |= HAL_I2C_ERROR_AF; in I2C_IsAcknowledgeFailed()
7477 __HAL_UNLOCK(hi2c); in I2C_IsAcknowledgeFailed()
7489 static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) in I2C_ConvertOtherXferOptions() argument
7494 if (hi2c->XferOptions == I2C_OTHER_FRAME) in I2C_ConvertOtherXferOptions()
7496 hi2c->XferOptions = I2C_FIRST_FRAME; in I2C_ConvertOtherXferOptions()
7502 else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) in I2C_ConvertOtherXferOptions()
7504 hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; in I2C_ConvertOtherXferOptions()