Lines Matching refs:hfmpi2c
430 static void FMPI2C_ITAddrCplt(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags);
431 static void FMPI2C_ITMasterSeqCplt(FMPI2C_HandleTypeDef *hfmpi2c);
432 static void FMPI2C_ITSlaveSeqCplt(FMPI2C_HandleTypeDef *hfmpi2c);
433 static void FMPI2C_ITMasterCplt(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags);
434 static void FMPI2C_ITSlaveCplt(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags);
435 static void FMPI2C_ITListenCplt(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags);
436 static void FMPI2C_ITError(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ErrorCode);
439 static HAL_StatusTypeDef FMPI2C_RequestMemoryWrite(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddre…
442 static HAL_StatusTypeDef FMPI2C_RequestMemoryRead(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddres…
447 static HAL_StatusTypeDef FMPI2C_Master_ISR_IT(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFl…
449 static HAL_StatusTypeDef FMPI2C_Mem_ISR_IT(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags,
451 static HAL_StatusTypeDef FMPI2C_Slave_ISR_IT(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFla…
453 static HAL_StatusTypeDef FMPI2C_Master_ISR_DMA(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITF…
455 static HAL_StatusTypeDef FMPI2C_Mem_ISR_DMA(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlag…
457 static HAL_StatusTypeDef FMPI2C_Slave_ISR_DMA(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFl…
461 static HAL_StatusTypeDef FMPI2C_WaitOnFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Flag…
463 static HAL_StatusTypeDef FMPI2C_WaitOnTXISFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t …
465 static HAL_StatusTypeDef FMPI2C_WaitOnRXNEFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t …
467 static HAL_StatusTypeDef FMPI2C_WaitOnSTOPFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t …
469 static HAL_StatusTypeDef FMPI2C_IsErrorOccurred(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Timeout,
473 static void FMPI2C_Enable_IRQ(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t InterruptRequest);
474 static void FMPI2C_Disable_IRQ(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t InterruptRequest);
477 static void FMPI2C_TreatErrorCallback(FMPI2C_HandleTypeDef *hfmpi2c);
480 static void FMPI2C_Flush_TXDR(FMPI2C_HandleTypeDef *hfmpi2c);
483 static void FMPI2C_TransferConfig(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint8_t Size,…
487 static void FMPI2C_ConvertOtherXferOptions(FMPI2C_HandleTypeDef *hfmpi2c);
536 HAL_StatusTypeDef HAL_FMPI2C_Init(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_Init() argument
539 if (hfmpi2c == NULL) in HAL_FMPI2C_Init()
545 assert_param(IS_FMPI2C_ALL_INSTANCE(hfmpi2c->Instance)); in HAL_FMPI2C_Init()
546 assert_param(IS_FMPI2C_OWN_ADDRESS1(hfmpi2c->Init.OwnAddress1)); in HAL_FMPI2C_Init()
547 assert_param(IS_FMPI2C_ADDRESSING_MODE(hfmpi2c->Init.AddressingMode)); in HAL_FMPI2C_Init()
548 assert_param(IS_FMPI2C_DUAL_ADDRESS(hfmpi2c->Init.DualAddressMode)); in HAL_FMPI2C_Init()
549 assert_param(IS_FMPI2C_OWN_ADDRESS2(hfmpi2c->Init.OwnAddress2)); in HAL_FMPI2C_Init()
550 assert_param(IS_FMPI2C_OWN_ADDRESS2_MASK(hfmpi2c->Init.OwnAddress2Masks)); in HAL_FMPI2C_Init()
551 assert_param(IS_FMPI2C_GENERAL_CALL(hfmpi2c->Init.GeneralCallMode)); in HAL_FMPI2C_Init()
552 assert_param(IS_FMPI2C_NO_STRETCH(hfmpi2c->Init.NoStretchMode)); in HAL_FMPI2C_Init()
554 if (hfmpi2c->State == HAL_FMPI2C_STATE_RESET) in HAL_FMPI2C_Init()
557 hfmpi2c->Lock = HAL_UNLOCKED; in HAL_FMPI2C_Init()
561 …hfmpi2c->MasterTxCpltCallback = HAL_FMPI2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallba… in HAL_FMPI2C_Init()
562 …hfmpi2c->MasterRxCpltCallback = HAL_FMPI2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallba… in HAL_FMPI2C_Init()
563 …hfmpi2c->SlaveTxCpltCallback = HAL_FMPI2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallbac… in HAL_FMPI2C_Init()
564 …hfmpi2c->SlaveRxCpltCallback = HAL_FMPI2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallbac… in HAL_FMPI2C_Init()
565 …hfmpi2c->ListenCpltCallback = HAL_FMPI2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback… in HAL_FMPI2C_Init()
566 …hfmpi2c->MemTxCpltCallback = HAL_FMPI2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback … in HAL_FMPI2C_Init()
567 …hfmpi2c->MemRxCpltCallback = HAL_FMPI2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback … in HAL_FMPI2C_Init()
568 …hfmpi2c->ErrorCallback = HAL_FMPI2C_ErrorCallback; /* Legacy weak ErrorCallback … in HAL_FMPI2C_Init()
569 …hfmpi2c->AbortCpltCallback = HAL_FMPI2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback … in HAL_FMPI2C_Init()
570 …hfmpi2c->AddrCallback = HAL_FMPI2C_AddrCallback; /* Legacy weak AddrCallback … in HAL_FMPI2C_Init()
572 if (hfmpi2c->MspInitCallback == NULL) in HAL_FMPI2C_Init()
574 hfmpi2c->MspInitCallback = HAL_FMPI2C_MspInit; /* Legacy weak MspInit */ in HAL_FMPI2C_Init()
578 hfmpi2c->MspInitCallback(hfmpi2c); in HAL_FMPI2C_Init()
581 HAL_FMPI2C_MspInit(hfmpi2c); in HAL_FMPI2C_Init()
585 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY; in HAL_FMPI2C_Init()
588 __HAL_FMPI2C_DISABLE(hfmpi2c); in HAL_FMPI2C_Init()
592 hfmpi2c->Instance->TIMINGR = hfmpi2c->Init.Timing & TIMING_CLEAR_MASK; in HAL_FMPI2C_Init()
596 hfmpi2c->Instance->OAR1 &= ~FMPI2C_OAR1_OA1EN; in HAL_FMPI2C_Init()
599 if (hfmpi2c->Init.AddressingMode == FMPI2C_ADDRESSINGMODE_7BIT) in HAL_FMPI2C_Init()
601 hfmpi2c->Instance->OAR1 = (FMPI2C_OAR1_OA1EN | hfmpi2c->Init.OwnAddress1); in HAL_FMPI2C_Init()
605 hfmpi2c->Instance->OAR1 = (FMPI2C_OAR1_OA1EN | FMPI2C_OAR1_OA1MODE | hfmpi2c->Init.OwnAddress1); in HAL_FMPI2C_Init()
610 if (hfmpi2c->Init.AddressingMode == FMPI2C_ADDRESSINGMODE_10BIT) in HAL_FMPI2C_Init()
612 SET_BIT(hfmpi2c->Instance->CR2, FMPI2C_CR2_ADD10); in HAL_FMPI2C_Init()
617 CLEAR_BIT(hfmpi2c->Instance->CR2, FMPI2C_CR2_ADD10); in HAL_FMPI2C_Init()
620 hfmpi2c->Instance->CR2 |= (FMPI2C_CR2_AUTOEND | FMPI2C_CR2_NACK); in HAL_FMPI2C_Init()
624 hfmpi2c->Instance->OAR2 &= ~FMPI2C_DUALADDRESS_ENABLE; in HAL_FMPI2C_Init()
627 hfmpi2c->Instance->OAR2 = (hfmpi2c->Init.DualAddressMode | hfmpi2c->Init.OwnAddress2 | \ in HAL_FMPI2C_Init()
628 (hfmpi2c->Init.OwnAddress2Masks << 8)); in HAL_FMPI2C_Init()
632 hfmpi2c->Instance->CR1 = (hfmpi2c->Init.GeneralCallMode | hfmpi2c->Init.NoStretchMode); in HAL_FMPI2C_Init()
635 __HAL_FMPI2C_ENABLE(hfmpi2c); in HAL_FMPI2C_Init()
637 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Init()
638 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Init()
639 hfmpi2c->PreviousState = FMPI2C_STATE_NONE; in HAL_FMPI2C_Init()
640 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Init()
651 HAL_StatusTypeDef HAL_FMPI2C_DeInit(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_DeInit() argument
654 if (hfmpi2c == NULL) in HAL_FMPI2C_DeInit()
660 assert_param(IS_FMPI2C_ALL_INSTANCE(hfmpi2c->Instance)); in HAL_FMPI2C_DeInit()
662 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY; in HAL_FMPI2C_DeInit()
665 __HAL_FMPI2C_DISABLE(hfmpi2c); in HAL_FMPI2C_DeInit()
668 if (hfmpi2c->MspDeInitCallback == NULL) in HAL_FMPI2C_DeInit()
670 hfmpi2c->MspDeInitCallback = HAL_FMPI2C_MspDeInit; /* Legacy weak MspDeInit */ in HAL_FMPI2C_DeInit()
674 hfmpi2c->MspDeInitCallback(hfmpi2c); in HAL_FMPI2C_DeInit()
677 HAL_FMPI2C_MspDeInit(hfmpi2c); in HAL_FMPI2C_DeInit()
680 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_DeInit()
681 hfmpi2c->State = HAL_FMPI2C_STATE_RESET; in HAL_FMPI2C_DeInit()
682 hfmpi2c->PreviousState = FMPI2C_STATE_NONE; in HAL_FMPI2C_DeInit()
683 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_DeInit()
686 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_DeInit()
697 __weak void HAL_FMPI2C_MspInit(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_MspInit() argument
700 UNUSED(hfmpi2c); in HAL_FMPI2C_MspInit()
713 __weak void HAL_FMPI2C_MspDeInit(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_MspDeInit() argument
716 UNUSED(hfmpi2c); in HAL_FMPI2C_MspDeInit()
747 HAL_StatusTypeDef HAL_FMPI2C_RegisterCallback(FMPI2C_HandleTypeDef *hfmpi2c, HAL_FMPI2C_CallbackIDT… in HAL_FMPI2C_RegisterCallback() argument
755 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_INVALID_CALLBACK; in HAL_FMPI2C_RegisterCallback()
760 if (HAL_FMPI2C_STATE_READY == hfmpi2c->State) in HAL_FMPI2C_RegisterCallback()
765 hfmpi2c->MasterTxCpltCallback = pCallback; in HAL_FMPI2C_RegisterCallback()
769 hfmpi2c->MasterRxCpltCallback = pCallback; in HAL_FMPI2C_RegisterCallback()
773 hfmpi2c->SlaveTxCpltCallback = pCallback; in HAL_FMPI2C_RegisterCallback()
777 hfmpi2c->SlaveRxCpltCallback = pCallback; in HAL_FMPI2C_RegisterCallback()
781 hfmpi2c->ListenCpltCallback = pCallback; in HAL_FMPI2C_RegisterCallback()
785 hfmpi2c->MemTxCpltCallback = pCallback; in HAL_FMPI2C_RegisterCallback()
789 hfmpi2c->MemRxCpltCallback = pCallback; in HAL_FMPI2C_RegisterCallback()
793 hfmpi2c->ErrorCallback = pCallback; in HAL_FMPI2C_RegisterCallback()
797 hfmpi2c->AbortCpltCallback = pCallback; in HAL_FMPI2C_RegisterCallback()
801 hfmpi2c->MspInitCallback = pCallback; in HAL_FMPI2C_RegisterCallback()
805 hfmpi2c->MspDeInitCallback = pCallback; in HAL_FMPI2C_RegisterCallback()
810 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_INVALID_CALLBACK; in HAL_FMPI2C_RegisterCallback()
817 else if (HAL_FMPI2C_STATE_RESET == hfmpi2c->State) in HAL_FMPI2C_RegisterCallback()
822 hfmpi2c->MspInitCallback = pCallback; in HAL_FMPI2C_RegisterCallback()
826 hfmpi2c->MspDeInitCallback = pCallback; in HAL_FMPI2C_RegisterCallback()
831 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_INVALID_CALLBACK; in HAL_FMPI2C_RegisterCallback()
841 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_INVALID_CALLBACK; in HAL_FMPI2C_RegisterCallback()
873 HAL_StatusTypeDef HAL_FMPI2C_UnRegisterCallback(FMPI2C_HandleTypeDef *hfmpi2c, HAL_FMPI2C_CallbackI… in HAL_FMPI2C_UnRegisterCallback() argument
877 if (HAL_FMPI2C_STATE_READY == hfmpi2c->State) in HAL_FMPI2C_UnRegisterCallback()
882 …hfmpi2c->MasterTxCpltCallback = HAL_FMPI2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallba… in HAL_FMPI2C_UnRegisterCallback()
886 …hfmpi2c->MasterRxCpltCallback = HAL_FMPI2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallba… in HAL_FMPI2C_UnRegisterCallback()
890 …hfmpi2c->SlaveTxCpltCallback = HAL_FMPI2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallbac… in HAL_FMPI2C_UnRegisterCallback()
894 …hfmpi2c->SlaveRxCpltCallback = HAL_FMPI2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallbac… in HAL_FMPI2C_UnRegisterCallback()
898 …hfmpi2c->ListenCpltCallback = HAL_FMPI2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback… in HAL_FMPI2C_UnRegisterCallback()
902 …hfmpi2c->MemTxCpltCallback = HAL_FMPI2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback … in HAL_FMPI2C_UnRegisterCallback()
906 …hfmpi2c->MemRxCpltCallback = HAL_FMPI2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback … in HAL_FMPI2C_UnRegisterCallback()
910 …hfmpi2c->ErrorCallback = HAL_FMPI2C_ErrorCallback; /* Legacy weak ErrorCallback … in HAL_FMPI2C_UnRegisterCallback()
914 …hfmpi2c->AbortCpltCallback = HAL_FMPI2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback … in HAL_FMPI2C_UnRegisterCallback()
918 …hfmpi2c->MspInitCallback = HAL_FMPI2C_MspInit; /* Legacy weak MspInit … in HAL_FMPI2C_UnRegisterCallback()
922 …hfmpi2c->MspDeInitCallback = HAL_FMPI2C_MspDeInit; /* Legacy weak MspDeInit … in HAL_FMPI2C_UnRegisterCallback()
927 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_INVALID_CALLBACK; in HAL_FMPI2C_UnRegisterCallback()
934 else if (HAL_FMPI2C_STATE_RESET == hfmpi2c->State) in HAL_FMPI2C_UnRegisterCallback()
939 …hfmpi2c->MspInitCallback = HAL_FMPI2C_MspInit; /* Legacy weak MspInit … in HAL_FMPI2C_UnRegisterCallback()
943 …hfmpi2c->MspDeInitCallback = HAL_FMPI2C_MspDeInit; /* Legacy weak MspDeInit … in HAL_FMPI2C_UnRegisterCallback()
948 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_INVALID_CALLBACK; in HAL_FMPI2C_UnRegisterCallback()
958 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_INVALID_CALLBACK; in HAL_FMPI2C_UnRegisterCallback()
975 HAL_StatusTypeDef HAL_FMPI2C_RegisterAddrCallback(FMPI2C_HandleTypeDef *hfmpi2c, pFMPI2C_AddrCallba… in HAL_FMPI2C_RegisterAddrCallback() argument
982 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_INVALID_CALLBACK; in HAL_FMPI2C_RegisterAddrCallback()
987 if (HAL_FMPI2C_STATE_READY == hfmpi2c->State) in HAL_FMPI2C_RegisterAddrCallback()
989 hfmpi2c->AddrCallback = pCallback; in HAL_FMPI2C_RegisterAddrCallback()
994 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_INVALID_CALLBACK; in HAL_FMPI2C_RegisterAddrCallback()
1010 HAL_StatusTypeDef HAL_FMPI2C_UnRegisterAddrCallback(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_UnRegisterAddrCallback() argument
1014 if (HAL_FMPI2C_STATE_READY == hfmpi2c->State) in HAL_FMPI2C_UnRegisterAddrCallback()
1016 hfmpi2c->AddrCallback = HAL_FMPI2C_AddrCallback; /* Legacy weak AddrCallback */ in HAL_FMPI2C_UnRegisterAddrCallback()
1021 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_INVALID_CALLBACK; in HAL_FMPI2C_UnRegisterAddrCallback()
1120 HAL_StatusTypeDef HAL_FMPI2C_Master_Transmit(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, ui… in HAL_FMPI2C_Master_Transmit() argument
1126 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Master_Transmit()
1129 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Master_Transmit()
1134 …if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_BUSY, SET, FMPI2C_TIMEOUT_BUSY, tickstart) … in HAL_FMPI2C_Master_Transmit()
1139 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_TX; in HAL_FMPI2C_Master_Transmit()
1140 hfmpi2c->Mode = HAL_FMPI2C_MODE_MASTER; in HAL_FMPI2C_Master_Transmit()
1141 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Master_Transmit()
1144 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Master_Transmit()
1145 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Master_Transmit()
1146 hfmpi2c->XferISR = NULL; in HAL_FMPI2C_Master_Transmit()
1148 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Transmit()
1150 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in HAL_FMPI2C_Master_Transmit()
1155 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Master_Transmit()
1159 if (hfmpi2c->XferSize > 0U) in HAL_FMPI2C_Master_Transmit()
1163 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in HAL_FMPI2C_Master_Transmit()
1166 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Master_Transmit()
1168 hfmpi2c->XferCount--; in HAL_FMPI2C_Master_Transmit()
1169 hfmpi2c->XferSize--; in HAL_FMPI2C_Master_Transmit()
1173 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)(hfmpi2c->XferSize + 1U), xfermode, in HAL_FMPI2C_Master_Transmit()
1180 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, xfermode, in HAL_FMPI2C_Master_Transmit()
1184 while (hfmpi2c->XferCount > 0U) in HAL_FMPI2C_Master_Transmit()
1187 if (FMPI2C_WaitOnTXISFlagUntilTimeout(hfmpi2c, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Master_Transmit()
1192 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in HAL_FMPI2C_Master_Transmit()
1195 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Master_Transmit()
1197 hfmpi2c->XferCount--; in HAL_FMPI2C_Master_Transmit()
1198 hfmpi2c->XferSize--; in HAL_FMPI2C_Master_Transmit()
1200 if ((hfmpi2c->XferCount != 0U) && (hfmpi2c->XferSize == 0U)) in HAL_FMPI2C_Master_Transmit()
1203 … if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Master_Transmit()
1208 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Transmit()
1210 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in HAL_FMPI2C_Master_Transmit()
1211 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_RELOAD_MODE, in HAL_FMPI2C_Master_Transmit()
1216 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Master_Transmit()
1217 … FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE, in HAL_FMPI2C_Master_Transmit()
1225 if (FMPI2C_WaitOnSTOPFlagUntilTimeout(hfmpi2c, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Master_Transmit()
1231 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in HAL_FMPI2C_Master_Transmit()
1234 FMPI2C_RESET_CR2(hfmpi2c); in HAL_FMPI2C_Master_Transmit()
1236 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Master_Transmit()
1237 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Master_Transmit()
1240 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Transmit()
1261 HAL_StatusTypeDef HAL_FMPI2C_Master_Receive(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uin… in HAL_FMPI2C_Master_Receive() argument
1266 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Master_Receive()
1269 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Master_Receive()
1274 …if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_BUSY, SET, FMPI2C_TIMEOUT_BUSY, tickstart) … in HAL_FMPI2C_Master_Receive()
1279 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_RX; in HAL_FMPI2C_Master_Receive()
1280 hfmpi2c->Mode = HAL_FMPI2C_MODE_MASTER; in HAL_FMPI2C_Master_Receive()
1281 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Master_Receive()
1284 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Master_Receive()
1285 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Master_Receive()
1286 hfmpi2c->XferISR = NULL; in HAL_FMPI2C_Master_Receive()
1290 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Receive()
1292 hfmpi2c->XferSize = 1U; in HAL_FMPI2C_Master_Receive()
1293 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_RELOAD_MODE, in HAL_FMPI2C_Master_Receive()
1298 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Master_Receive()
1299 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE, in HAL_FMPI2C_Master_Receive()
1303 while (hfmpi2c->XferCount > 0U) in HAL_FMPI2C_Master_Receive()
1306 if (FMPI2C_WaitOnRXNEFlagUntilTimeout(hfmpi2c, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Master_Receive()
1312 *hfmpi2c->pBuffPtr = (uint8_t)hfmpi2c->Instance->RXDR; in HAL_FMPI2C_Master_Receive()
1315 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Master_Receive()
1317 hfmpi2c->XferSize--; in HAL_FMPI2C_Master_Receive()
1318 hfmpi2c->XferCount--; in HAL_FMPI2C_Master_Receive()
1320 if ((hfmpi2c->XferCount != 0U) && (hfmpi2c->XferSize == 0U)) in HAL_FMPI2C_Master_Receive()
1323 … if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Master_Receive()
1328 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Receive()
1330 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in HAL_FMPI2C_Master_Receive()
1331 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_RELOAD_MODE, in HAL_FMPI2C_Master_Receive()
1336 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Master_Receive()
1337 … FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE, in HAL_FMPI2C_Master_Receive()
1345 if (FMPI2C_WaitOnSTOPFlagUntilTimeout(hfmpi2c, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Master_Receive()
1351 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in HAL_FMPI2C_Master_Receive()
1354 FMPI2C_RESET_CR2(hfmpi2c); in HAL_FMPI2C_Master_Receive()
1356 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Master_Receive()
1357 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Master_Receive()
1360 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Receive()
1379 HAL_StatusTypeDef HAL_FMPI2C_Slave_Transmit(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, uint16_t… in HAL_FMPI2C_Slave_Transmit() argument
1386 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Slave_Transmit()
1390 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Slave_Transmit()
1394 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Slave_Transmit()
1399 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_TX; in HAL_FMPI2C_Slave_Transmit()
1400 hfmpi2c->Mode = HAL_FMPI2C_MODE_SLAVE; in HAL_FMPI2C_Slave_Transmit()
1401 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Slave_Transmit()
1404 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Slave_Transmit()
1405 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Slave_Transmit()
1406 hfmpi2c->XferISR = NULL; in HAL_FMPI2C_Slave_Transmit()
1409 hfmpi2c->Instance->CR2 &= ~FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Transmit()
1412 … if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Slave_Transmit()
1415 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Transmit()
1420 if (hfmpi2c->Init.NoStretchMode == FMPI2C_NOSTRETCH_ENABLE) in HAL_FMPI2C_Slave_Transmit()
1424 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in HAL_FMPI2C_Slave_Transmit()
1427 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Slave_Transmit()
1429 hfmpi2c->XferCount--; in HAL_FMPI2C_Slave_Transmit()
1433 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_ADDR); in HAL_FMPI2C_Slave_Transmit()
1436 if (hfmpi2c->Init.AddressingMode == FMPI2C_ADDRESSINGMODE_10BIT) in HAL_FMPI2C_Slave_Transmit()
1439 … if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Slave_Transmit()
1442 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Transmit()
1447 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_ADDR); in HAL_FMPI2C_Slave_Transmit()
1451 … if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Slave_Transmit()
1454 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Transmit()
1458 while (hfmpi2c->XferCount > 0U) in HAL_FMPI2C_Slave_Transmit()
1461 if (FMPI2C_WaitOnTXISFlagUntilTimeout(hfmpi2c, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Slave_Transmit()
1464 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Transmit()
1469 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in HAL_FMPI2C_Slave_Transmit()
1472 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Slave_Transmit()
1474 hfmpi2c->XferCount--; in HAL_FMPI2C_Slave_Transmit()
1478 error = FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_AF, RESET, Timeout, tickstart); in HAL_FMPI2C_Slave_Transmit()
1486 tmpXferCount = hfmpi2c->XferCount; in HAL_FMPI2C_Slave_Transmit()
1487 if ((hfmpi2c->ErrorCode == HAL_FMPI2C_ERROR_AF) && (tmpXferCount == 0U)) in HAL_FMPI2C_Slave_Transmit()
1490 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Slave_Transmit()
1495 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Transmit()
1502 FMPI2C_Flush_TXDR(hfmpi2c); in HAL_FMPI2C_Slave_Transmit()
1505 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in HAL_FMPI2C_Slave_Transmit()
1508 if (FMPI2C_WaitOnSTOPFlagUntilTimeout(hfmpi2c, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Slave_Transmit()
1511 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Transmit()
1517 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in HAL_FMPI2C_Slave_Transmit()
1521 if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Slave_Transmit()
1524 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Transmit()
1529 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Transmit()
1531 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Slave_Transmit()
1532 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Slave_Transmit()
1535 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Transmit()
1554 HAL_StatusTypeDef HAL_FMPI2C_Slave_Receive(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, uint16_t … in HAL_FMPI2C_Slave_Receive() argument
1559 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Slave_Receive()
1563 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Slave_Receive()
1567 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Slave_Receive()
1572 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_RX; in HAL_FMPI2C_Slave_Receive()
1573 hfmpi2c->Mode = HAL_FMPI2C_MODE_SLAVE; in HAL_FMPI2C_Slave_Receive()
1574 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Slave_Receive()
1577 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Slave_Receive()
1578 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Slave_Receive()
1579 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Slave_Receive()
1580 hfmpi2c->XferISR = NULL; in HAL_FMPI2C_Slave_Receive()
1583 hfmpi2c->Instance->CR2 &= ~FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Receive()
1586 … if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Slave_Receive()
1589 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Receive()
1594 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_ADDR); in HAL_FMPI2C_Slave_Receive()
1597 if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Slave_Receive()
1600 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Receive()
1604 while (hfmpi2c->XferCount > 0U) in HAL_FMPI2C_Slave_Receive()
1607 if (FMPI2C_WaitOnRXNEFlagUntilTimeout(hfmpi2c, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Slave_Receive()
1610 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Receive()
1613 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_RXNE) == SET) in HAL_FMPI2C_Slave_Receive()
1616 *hfmpi2c->pBuffPtr = (uint8_t)hfmpi2c->Instance->RXDR; in HAL_FMPI2C_Slave_Receive()
1619 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Slave_Receive()
1621 hfmpi2c->XferCount--; in HAL_FMPI2C_Slave_Receive()
1622 hfmpi2c->XferSize--; in HAL_FMPI2C_Slave_Receive()
1629 *hfmpi2c->pBuffPtr = (uint8_t)hfmpi2c->Instance->RXDR; in HAL_FMPI2C_Slave_Receive()
1632 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Slave_Receive()
1634 hfmpi2c->XferCount--; in HAL_FMPI2C_Slave_Receive()
1635 hfmpi2c->XferSize--; in HAL_FMPI2C_Slave_Receive()
1639 if (FMPI2C_WaitOnSTOPFlagUntilTimeout(hfmpi2c, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Slave_Receive()
1642 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Receive()
1647 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in HAL_FMPI2C_Slave_Receive()
1650 if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Slave_Receive()
1653 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Receive()
1658 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Receive()
1660 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Slave_Receive()
1661 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Slave_Receive()
1664 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Receive()
1684 HAL_StatusTypeDef HAL_FMPI2C_Master_Transmit_IT(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress,… in HAL_FMPI2C_Master_Transmit_IT() argument
1689 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Master_Transmit_IT()
1691 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_BUSY) == SET) in HAL_FMPI2C_Master_Transmit_IT()
1697 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Master_Transmit_IT()
1699 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_TX; in HAL_FMPI2C_Master_Transmit_IT()
1700 hfmpi2c->Mode = HAL_FMPI2C_MODE_MASTER; in HAL_FMPI2C_Master_Transmit_IT()
1701 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Master_Transmit_IT()
1704 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Master_Transmit_IT()
1705 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Master_Transmit_IT()
1706 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in HAL_FMPI2C_Master_Transmit_IT()
1707 hfmpi2c->XferISR = FMPI2C_Master_ISR_IT; in HAL_FMPI2C_Master_Transmit_IT()
1709 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Transmit_IT()
1711 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in HAL_FMPI2C_Master_Transmit_IT()
1716 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Master_Transmit_IT()
1722 if (hfmpi2c->XferSize > 0U) in HAL_FMPI2C_Master_Transmit_IT()
1726 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in HAL_FMPI2C_Master_Transmit_IT()
1729 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Master_Transmit_IT()
1731 hfmpi2c->XferCount--; in HAL_FMPI2C_Master_Transmit_IT()
1732 hfmpi2c->XferSize--; in HAL_FMPI2C_Master_Transmit_IT()
1734 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)(hfmpi2c->XferSize + 1U), xfermode, in HAL_FMPI2C_Master_Transmit_IT()
1739 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, xfermode, in HAL_FMPI2C_Master_Transmit_IT()
1744 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Transmit_IT()
1754 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in HAL_FMPI2C_Master_Transmit_IT()
1774 HAL_StatusTypeDef HAL_FMPI2C_Master_Receive_IT(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, … in HAL_FMPI2C_Master_Receive_IT() argument
1779 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Master_Receive_IT()
1781 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_BUSY) == SET) in HAL_FMPI2C_Master_Receive_IT()
1787 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Master_Receive_IT()
1789 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_RX; in HAL_FMPI2C_Master_Receive_IT()
1790 hfmpi2c->Mode = HAL_FMPI2C_MODE_MASTER; in HAL_FMPI2C_Master_Receive_IT()
1791 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Master_Receive_IT()
1794 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Master_Receive_IT()
1795 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Master_Receive_IT()
1796 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in HAL_FMPI2C_Master_Receive_IT()
1797 hfmpi2c->XferISR = FMPI2C_Master_ISR_IT; in HAL_FMPI2C_Master_Receive_IT()
1799 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Receive_IT()
1801 hfmpi2c->XferSize = 1U; in HAL_FMPI2C_Master_Receive_IT()
1806 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Master_Receive_IT()
1812 …FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, xfermode, FMPI2C_GENERATE_S… in HAL_FMPI2C_Master_Receive_IT()
1815 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Receive_IT()
1825 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT); in HAL_FMPI2C_Master_Receive_IT()
1843 HAL_StatusTypeDef HAL_FMPI2C_Slave_Transmit_IT(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, uint1… in HAL_FMPI2C_Slave_Transmit_IT() argument
1845 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Slave_Transmit_IT()
1848 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Slave_Transmit_IT()
1850 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_TX; in HAL_FMPI2C_Slave_Transmit_IT()
1851 hfmpi2c->Mode = HAL_FMPI2C_MODE_SLAVE; in HAL_FMPI2C_Slave_Transmit_IT()
1852 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Slave_Transmit_IT()
1855 hfmpi2c->Instance->CR2 &= ~FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Transmit_IT()
1858 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Slave_Transmit_IT()
1859 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Slave_Transmit_IT()
1860 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Slave_Transmit_IT()
1861 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in HAL_FMPI2C_Slave_Transmit_IT()
1862 hfmpi2c->XferISR = FMPI2C_Slave_ISR_IT; in HAL_FMPI2C_Slave_Transmit_IT()
1865 if (hfmpi2c->Init.NoStretchMode == FMPI2C_NOSTRETCH_ENABLE) in HAL_FMPI2C_Slave_Transmit_IT()
1869 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in HAL_FMPI2C_Slave_Transmit_IT()
1872 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Slave_Transmit_IT()
1874 hfmpi2c->XferCount--; in HAL_FMPI2C_Slave_Transmit_IT()
1875 hfmpi2c->XferSize--; in HAL_FMPI2C_Slave_Transmit_IT()
1879 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Transmit_IT()
1889 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT | FMPI2C_XFER_LISTEN_IT); in HAL_FMPI2C_Slave_Transmit_IT()
1907 HAL_StatusTypeDef HAL_FMPI2C_Slave_Receive_IT(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, uint16… in HAL_FMPI2C_Slave_Receive_IT() argument
1909 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Slave_Receive_IT()
1912 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Slave_Receive_IT()
1914 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_RX; in HAL_FMPI2C_Slave_Receive_IT()
1915 hfmpi2c->Mode = HAL_FMPI2C_MODE_SLAVE; in HAL_FMPI2C_Slave_Receive_IT()
1916 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Slave_Receive_IT()
1919 hfmpi2c->Instance->CR2 &= ~FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Receive_IT()
1922 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Slave_Receive_IT()
1923 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Slave_Receive_IT()
1924 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Slave_Receive_IT()
1925 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in HAL_FMPI2C_Slave_Receive_IT()
1926 hfmpi2c->XferISR = FMPI2C_Slave_ISR_IT; in HAL_FMPI2C_Slave_Receive_IT()
1929 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Receive_IT()
1939 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT | FMPI2C_XFER_LISTEN_IT); in HAL_FMPI2C_Slave_Receive_IT()
1959 HAL_StatusTypeDef HAL_FMPI2C_Master_Transmit_DMA(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress… in HAL_FMPI2C_Master_Transmit_DMA() argument
1966 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Master_Transmit_DMA()
1968 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_BUSY) == SET) in HAL_FMPI2C_Master_Transmit_DMA()
1974 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Master_Transmit_DMA()
1976 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_TX; in HAL_FMPI2C_Master_Transmit_DMA()
1977 hfmpi2c->Mode = HAL_FMPI2C_MODE_MASTER; in HAL_FMPI2C_Master_Transmit_DMA()
1978 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Master_Transmit_DMA()
1981 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Master_Transmit_DMA()
1982 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Master_Transmit_DMA()
1983 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in HAL_FMPI2C_Master_Transmit_DMA()
1984 hfmpi2c->XferISR = FMPI2C_Master_ISR_DMA; in HAL_FMPI2C_Master_Transmit_DMA()
1986 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Transmit_DMA()
1988 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in HAL_FMPI2C_Master_Transmit_DMA()
1993 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Master_Transmit_DMA()
1997 if (hfmpi2c->XferSize > 0U) in HAL_FMPI2C_Master_Transmit_DMA()
2001 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in HAL_FMPI2C_Master_Transmit_DMA()
2004 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Master_Transmit_DMA()
2006 sizetoxfer = hfmpi2c->XferSize; in HAL_FMPI2C_Master_Transmit_DMA()
2007 hfmpi2c->XferCount--; in HAL_FMPI2C_Master_Transmit_DMA()
2008 hfmpi2c->XferSize--; in HAL_FMPI2C_Master_Transmit_DMA()
2011 if (hfmpi2c->XferSize > 0U) in HAL_FMPI2C_Master_Transmit_DMA()
2013 if (hfmpi2c->hdmatx != NULL) in HAL_FMPI2C_Master_Transmit_DMA()
2016 hfmpi2c->hdmatx->XferCpltCallback = FMPI2C_DMAMasterTransmitCplt; in HAL_FMPI2C_Master_Transmit_DMA()
2019 hfmpi2c->hdmatx->XferErrorCallback = FMPI2C_DMAError; in HAL_FMPI2C_Master_Transmit_DMA()
2022 hfmpi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_FMPI2C_Master_Transmit_DMA()
2023 hfmpi2c->hdmatx->XferAbortCallback = NULL; in HAL_FMPI2C_Master_Transmit_DMA()
2026 dmaxferstatus = HAL_DMA_Start_IT(hfmpi2c->hdmatx, (uint32_t)hfmpi2c->pBuffPtr, in HAL_FMPI2C_Master_Transmit_DMA()
2027 (uint32_t)&hfmpi2c->Instance->TXDR, hfmpi2c->XferSize); in HAL_FMPI2C_Master_Transmit_DMA()
2032 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Master_Transmit_DMA()
2033 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Master_Transmit_DMA()
2036 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA_PARAM; in HAL_FMPI2C_Master_Transmit_DMA()
2039 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Transmit_DMA()
2048 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)(hfmpi2c->XferSize + 1U), in HAL_FMPI2C_Master_Transmit_DMA()
2052 hfmpi2c->XferCount -= hfmpi2c->XferSize; in HAL_FMPI2C_Master_Transmit_DMA()
2055 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Transmit_DMA()
2061 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_ERROR_IT); in HAL_FMPI2C_Master_Transmit_DMA()
2064 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_TXDMAEN; in HAL_FMPI2C_Master_Transmit_DMA()
2069 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Master_Transmit_DMA()
2070 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Master_Transmit_DMA()
2073 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA; in HAL_FMPI2C_Master_Transmit_DMA()
2076 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Transmit_DMA()
2084 hfmpi2c->XferISR = FMPI2C_Master_ISR_IT; in HAL_FMPI2C_Master_Transmit_DMA()
2088 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)sizetoxfer, FMPI2C_AUTOEND_MODE, in HAL_FMPI2C_Master_Transmit_DMA()
2092 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Transmit_DMA()
2101 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in HAL_FMPI2C_Master_Transmit_DMA()
2122 HAL_StatusTypeDef HAL_FMPI2C_Master_Receive_DMA(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress,… in HAL_FMPI2C_Master_Receive_DMA() argument
2128 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Master_Receive_DMA()
2130 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_BUSY) == SET) in HAL_FMPI2C_Master_Receive_DMA()
2136 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Master_Receive_DMA()
2138 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_RX; in HAL_FMPI2C_Master_Receive_DMA()
2139 hfmpi2c->Mode = HAL_FMPI2C_MODE_MASTER; in HAL_FMPI2C_Master_Receive_DMA()
2140 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Master_Receive_DMA()
2143 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Master_Receive_DMA()
2144 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Master_Receive_DMA()
2145 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in HAL_FMPI2C_Master_Receive_DMA()
2146 hfmpi2c->XferISR = FMPI2C_Master_ISR_DMA; in HAL_FMPI2C_Master_Receive_DMA()
2148 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Receive_DMA()
2150 hfmpi2c->XferSize = 1U; in HAL_FMPI2C_Master_Receive_DMA()
2155 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Master_Receive_DMA()
2159 if (hfmpi2c->XferSize > 0U) in HAL_FMPI2C_Master_Receive_DMA()
2161 if (hfmpi2c->hdmarx != NULL) in HAL_FMPI2C_Master_Receive_DMA()
2164 hfmpi2c->hdmarx->XferCpltCallback = FMPI2C_DMAMasterReceiveCplt; in HAL_FMPI2C_Master_Receive_DMA()
2167 hfmpi2c->hdmarx->XferErrorCallback = FMPI2C_DMAError; in HAL_FMPI2C_Master_Receive_DMA()
2170 hfmpi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_FMPI2C_Master_Receive_DMA()
2171 hfmpi2c->hdmarx->XferAbortCallback = NULL; in HAL_FMPI2C_Master_Receive_DMA()
2174 …dmaxferstatus = HAL_DMA_Start_IT(hfmpi2c->hdmarx, (uint32_t)&hfmpi2c->Instance->RXDR, (uint32_t)pD… in HAL_FMPI2C_Master_Receive_DMA()
2175 hfmpi2c->XferSize); in HAL_FMPI2C_Master_Receive_DMA()
2180 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Master_Receive_DMA()
2181 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Master_Receive_DMA()
2184 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA_PARAM; in HAL_FMPI2C_Master_Receive_DMA()
2187 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Receive_DMA()
2196 …FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, xfermode, FMPI2C_GENERATE_S… in HAL_FMPI2C_Master_Receive_DMA()
2199 hfmpi2c->XferCount -= hfmpi2c->XferSize; in HAL_FMPI2C_Master_Receive_DMA()
2202 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Receive_DMA()
2208 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_ERROR_IT); in HAL_FMPI2C_Master_Receive_DMA()
2211 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_RXDMAEN; in HAL_FMPI2C_Master_Receive_DMA()
2216 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Master_Receive_DMA()
2217 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Master_Receive_DMA()
2220 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA; in HAL_FMPI2C_Master_Receive_DMA()
2223 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Receive_DMA()
2231 hfmpi2c->XferISR = FMPI2C_Master_ISR_IT; in HAL_FMPI2C_Master_Receive_DMA()
2235 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE, in HAL_FMPI2C_Master_Receive_DMA()
2239 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Receive_DMA()
2248 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT); in HAL_FMPI2C_Master_Receive_DMA()
2267 HAL_StatusTypeDef HAL_FMPI2C_Slave_Transmit_DMA(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, uint… in HAL_FMPI2C_Slave_Transmit_DMA() argument
2271 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Slave_Transmit_DMA()
2275 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Slave_Transmit_DMA()
2279 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Slave_Transmit_DMA()
2281 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_TX; in HAL_FMPI2C_Slave_Transmit_DMA()
2282 hfmpi2c->Mode = HAL_FMPI2C_MODE_SLAVE; in HAL_FMPI2C_Slave_Transmit_DMA()
2283 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Slave_Transmit_DMA()
2286 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Slave_Transmit_DMA()
2287 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Slave_Transmit_DMA()
2288 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Slave_Transmit_DMA()
2289 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in HAL_FMPI2C_Slave_Transmit_DMA()
2290 hfmpi2c->XferISR = FMPI2C_Slave_ISR_DMA; in HAL_FMPI2C_Slave_Transmit_DMA()
2293 if (hfmpi2c->Init.NoStretchMode == FMPI2C_NOSTRETCH_ENABLE) in HAL_FMPI2C_Slave_Transmit_DMA()
2297 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in HAL_FMPI2C_Slave_Transmit_DMA()
2300 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Slave_Transmit_DMA()
2302 hfmpi2c->XferCount--; in HAL_FMPI2C_Slave_Transmit_DMA()
2303 hfmpi2c->XferSize--; in HAL_FMPI2C_Slave_Transmit_DMA()
2306 if (hfmpi2c->XferCount != 0U) in HAL_FMPI2C_Slave_Transmit_DMA()
2308 if (hfmpi2c->hdmatx != NULL) in HAL_FMPI2C_Slave_Transmit_DMA()
2311 hfmpi2c->hdmatx->XferCpltCallback = FMPI2C_DMASlaveTransmitCplt; in HAL_FMPI2C_Slave_Transmit_DMA()
2314 hfmpi2c->hdmatx->XferErrorCallback = FMPI2C_DMAError; in HAL_FMPI2C_Slave_Transmit_DMA()
2317 hfmpi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_FMPI2C_Slave_Transmit_DMA()
2318 hfmpi2c->hdmatx->XferAbortCallback = NULL; in HAL_FMPI2C_Slave_Transmit_DMA()
2321 dmaxferstatus = HAL_DMA_Start_IT(hfmpi2c->hdmatx, in HAL_FMPI2C_Slave_Transmit_DMA()
2322 … (uint32_t)hfmpi2c->pBuffPtr, (uint32_t)&hfmpi2c->Instance->TXDR, in HAL_FMPI2C_Slave_Transmit_DMA()
2323 hfmpi2c->XferSize); in HAL_FMPI2C_Slave_Transmit_DMA()
2328 hfmpi2c->State = HAL_FMPI2C_STATE_LISTEN; in HAL_FMPI2C_Slave_Transmit_DMA()
2329 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Slave_Transmit_DMA()
2332 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA_PARAM; in HAL_FMPI2C_Slave_Transmit_DMA()
2335 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Transmit_DMA()
2343 hfmpi2c->Instance->CR2 &= ~FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Transmit_DMA()
2346 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Transmit_DMA()
2352 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT); in HAL_FMPI2C_Slave_Transmit_DMA()
2355 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_TXDMAEN; in HAL_FMPI2C_Slave_Transmit_DMA()
2360 hfmpi2c->State = HAL_FMPI2C_STATE_LISTEN; in HAL_FMPI2C_Slave_Transmit_DMA()
2361 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Slave_Transmit_DMA()
2364 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA; in HAL_FMPI2C_Slave_Transmit_DMA()
2367 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Transmit_DMA()
2375 hfmpi2c->Instance->CR2 &= ~FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Transmit_DMA()
2378 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Transmit_DMA()
2384 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT); in HAL_FMPI2C_Slave_Transmit_DMA()
2403 HAL_StatusTypeDef HAL_FMPI2C_Slave_Receive_DMA(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, uint1… in HAL_FMPI2C_Slave_Receive_DMA() argument
2407 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Slave_Receive_DMA()
2411 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Slave_Receive_DMA()
2415 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Slave_Receive_DMA()
2417 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_RX; in HAL_FMPI2C_Slave_Receive_DMA()
2418 hfmpi2c->Mode = HAL_FMPI2C_MODE_SLAVE; in HAL_FMPI2C_Slave_Receive_DMA()
2419 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Slave_Receive_DMA()
2422 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Slave_Receive_DMA()
2423 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Slave_Receive_DMA()
2424 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Slave_Receive_DMA()
2425 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in HAL_FMPI2C_Slave_Receive_DMA()
2426 hfmpi2c->XferISR = FMPI2C_Slave_ISR_DMA; in HAL_FMPI2C_Slave_Receive_DMA()
2428 if (hfmpi2c->hdmarx != NULL) in HAL_FMPI2C_Slave_Receive_DMA()
2431 hfmpi2c->hdmarx->XferCpltCallback = FMPI2C_DMASlaveReceiveCplt; in HAL_FMPI2C_Slave_Receive_DMA()
2434 hfmpi2c->hdmarx->XferErrorCallback = FMPI2C_DMAError; in HAL_FMPI2C_Slave_Receive_DMA()
2437 hfmpi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_FMPI2C_Slave_Receive_DMA()
2438 hfmpi2c->hdmarx->XferAbortCallback = NULL; in HAL_FMPI2C_Slave_Receive_DMA()
2441 …dmaxferstatus = HAL_DMA_Start_IT(hfmpi2c->hdmarx, (uint32_t)&hfmpi2c->Instance->RXDR, (uint32_t)pD… in HAL_FMPI2C_Slave_Receive_DMA()
2442 hfmpi2c->XferSize); in HAL_FMPI2C_Slave_Receive_DMA()
2447 hfmpi2c->State = HAL_FMPI2C_STATE_LISTEN; in HAL_FMPI2C_Slave_Receive_DMA()
2448 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Slave_Receive_DMA()
2451 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA_PARAM; in HAL_FMPI2C_Slave_Receive_DMA()
2454 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Receive_DMA()
2462 hfmpi2c->Instance->CR2 &= ~FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Receive_DMA()
2465 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Receive_DMA()
2471 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT); in HAL_FMPI2C_Slave_Receive_DMA()
2474 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_RXDMAEN; in HAL_FMPI2C_Slave_Receive_DMA()
2479 hfmpi2c->State = HAL_FMPI2C_STATE_LISTEN; in HAL_FMPI2C_Slave_Receive_DMA()
2480 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Slave_Receive_DMA()
2483 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA; in HAL_FMPI2C_Slave_Receive_DMA()
2486 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Receive_DMA()
2512 HAL_StatusTypeDef HAL_FMPI2C_Mem_Write(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint16_t… in HAL_FMPI2C_Mem_Write() argument
2520 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Mem_Write()
2524 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Mem_Write()
2529 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Mem_Write()
2534 …if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_BUSY, SET, FMPI2C_TIMEOUT_BUSY, tickstart) … in HAL_FMPI2C_Mem_Write()
2539 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_TX; in HAL_FMPI2C_Mem_Write()
2540 hfmpi2c->Mode = HAL_FMPI2C_MODE_MEM; in HAL_FMPI2C_Mem_Write()
2541 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Mem_Write()
2544 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Mem_Write()
2545 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Mem_Write()
2546 hfmpi2c->XferISR = NULL; in HAL_FMPI2C_Mem_Write()
2549 …if (FMPI2C_RequestMemoryWrite(hfmpi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != … in HAL_FMPI2C_Mem_Write()
2552 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Mem_Write()
2557 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Mem_Write()
2559 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in HAL_FMPI2C_Mem_Write()
2560 …FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_RELOAD_MODE, FMPI2C_… in HAL_FMPI2C_Mem_Write()
2564 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Mem_Write()
2565 …FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE, FMPI2C… in HAL_FMPI2C_Mem_Write()
2571 if (FMPI2C_WaitOnTXISFlagUntilTimeout(hfmpi2c, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Mem_Write()
2577 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in HAL_FMPI2C_Mem_Write()
2580 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Mem_Write()
2582 hfmpi2c->XferCount--; in HAL_FMPI2C_Mem_Write()
2583 hfmpi2c->XferSize--; in HAL_FMPI2C_Mem_Write()
2585 if ((hfmpi2c->XferCount != 0U) && (hfmpi2c->XferSize == 0U)) in HAL_FMPI2C_Mem_Write()
2588 … if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Mem_Write()
2593 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Mem_Write()
2595 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in HAL_FMPI2C_Mem_Write()
2596 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_RELOAD_MODE, in HAL_FMPI2C_Mem_Write()
2601 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Mem_Write()
2602 … FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE, in HAL_FMPI2C_Mem_Write()
2607 } while (hfmpi2c->XferCount > 0U); in HAL_FMPI2C_Mem_Write()
2611 if (FMPI2C_WaitOnSTOPFlagUntilTimeout(hfmpi2c, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Mem_Write()
2617 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in HAL_FMPI2C_Mem_Write()
2620 FMPI2C_RESET_CR2(hfmpi2c); in HAL_FMPI2C_Mem_Write()
2622 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Mem_Write()
2623 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Mem_Write()
2626 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Mem_Write()
2649 HAL_StatusTypeDef HAL_FMPI2C_Mem_Read(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint16_t … in HAL_FMPI2C_Mem_Read() argument
2657 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Mem_Read()
2661 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Mem_Read()
2666 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Mem_Read()
2671 …if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_BUSY, SET, FMPI2C_TIMEOUT_BUSY, tickstart) … in HAL_FMPI2C_Mem_Read()
2676 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_RX; in HAL_FMPI2C_Mem_Read()
2677 hfmpi2c->Mode = HAL_FMPI2C_MODE_MEM; in HAL_FMPI2C_Mem_Read()
2678 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Mem_Read()
2681 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Mem_Read()
2682 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Mem_Read()
2683 hfmpi2c->XferISR = NULL; in HAL_FMPI2C_Mem_Read()
2686 …if (FMPI2C_RequestMemoryRead(hfmpi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != H… in HAL_FMPI2C_Mem_Read()
2689 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Mem_Read()
2695 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Mem_Read()
2697 hfmpi2c->XferSize = 1U; in HAL_FMPI2C_Mem_Read()
2698 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_RELOAD_MODE, in HAL_FMPI2C_Mem_Read()
2703 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Mem_Read()
2704 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE, in HAL_FMPI2C_Mem_Read()
2711 … if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Mem_Read()
2717 *hfmpi2c->pBuffPtr = (uint8_t)hfmpi2c->Instance->RXDR; in HAL_FMPI2C_Mem_Read()
2720 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Mem_Read()
2722 hfmpi2c->XferSize--; in HAL_FMPI2C_Mem_Read()
2723 hfmpi2c->XferCount--; in HAL_FMPI2C_Mem_Read()
2725 if ((hfmpi2c->XferCount != 0U) && (hfmpi2c->XferSize == 0U)) in HAL_FMPI2C_Mem_Read()
2728 … if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Mem_Read()
2733 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Mem_Read()
2735 hfmpi2c->XferSize = 1U; in HAL_FMPI2C_Mem_Read()
2736 … FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t) hfmpi2c->XferSize, FMPI2C_RELOAD_MODE, in HAL_FMPI2C_Mem_Read()
2741 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Mem_Read()
2742 … FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE, in HAL_FMPI2C_Mem_Read()
2746 } while (hfmpi2c->XferCount > 0U); in HAL_FMPI2C_Mem_Read()
2750 if (FMPI2C_WaitOnSTOPFlagUntilTimeout(hfmpi2c, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_Mem_Read()
2756 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in HAL_FMPI2C_Mem_Read()
2759 FMPI2C_RESET_CR2(hfmpi2c); in HAL_FMPI2C_Mem_Read()
2761 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Mem_Read()
2762 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Mem_Read()
2765 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Mem_Read()
2786 HAL_StatusTypeDef HAL_FMPI2C_Mem_Write_IT(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint1… in HAL_FMPI2C_Mem_Write_IT() argument
2792 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Mem_Write_IT()
2796 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Mem_Write_IT()
2800 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_BUSY) == SET) in HAL_FMPI2C_Mem_Write_IT()
2806 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Mem_Write_IT()
2808 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_TX; in HAL_FMPI2C_Mem_Write_IT()
2809 hfmpi2c->Mode = HAL_FMPI2C_MODE_MEM; in HAL_FMPI2C_Mem_Write_IT()
2810 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Mem_Write_IT()
2813 hfmpi2c->XferSize = 0U; in HAL_FMPI2C_Mem_Write_IT()
2814 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Mem_Write_IT()
2815 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Mem_Write_IT()
2816 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in HAL_FMPI2C_Mem_Write_IT()
2817 hfmpi2c->XferISR = FMPI2C_Mem_ISR_IT; in HAL_FMPI2C_Mem_Write_IT()
2818 hfmpi2c->Devaddress = DevAddress; in HAL_FMPI2C_Mem_Write_IT()
2824 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_LSB(MemAddress); in HAL_FMPI2C_Mem_Write_IT()
2827 hfmpi2c->Memaddress = 0xFFFFFFFFU; in HAL_FMPI2C_Mem_Write_IT()
2833 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_MSB(MemAddress); in HAL_FMPI2C_Mem_Write_IT()
2836 hfmpi2c->Memaddress = FMPI2C_MEM_ADD_LSB(MemAddress); in HAL_FMPI2C_Mem_Write_IT()
2839 …FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)MemAddSize, FMPI2C_RELOAD_MODE, FMPI2C_GENERAT… in HAL_FMPI2C_Mem_Write_IT()
2842 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Mem_Write_IT()
2852 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in HAL_FMPI2C_Mem_Write_IT()
2874 HAL_StatusTypeDef HAL_FMPI2C_Mem_Read_IT(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint16… in HAL_FMPI2C_Mem_Read_IT() argument
2880 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Mem_Read_IT()
2884 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Mem_Read_IT()
2888 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_BUSY) == SET) in HAL_FMPI2C_Mem_Read_IT()
2894 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Mem_Read_IT()
2896 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_RX; in HAL_FMPI2C_Mem_Read_IT()
2897 hfmpi2c->Mode = HAL_FMPI2C_MODE_MEM; in HAL_FMPI2C_Mem_Read_IT()
2898 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Mem_Read_IT()
2901 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Mem_Read_IT()
2902 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Mem_Read_IT()
2903 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in HAL_FMPI2C_Mem_Read_IT()
2904 hfmpi2c->XferISR = FMPI2C_Mem_ISR_IT; in HAL_FMPI2C_Mem_Read_IT()
2905 hfmpi2c->Devaddress = DevAddress; in HAL_FMPI2C_Mem_Read_IT()
2911 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_LSB(MemAddress); in HAL_FMPI2C_Mem_Read_IT()
2914 hfmpi2c->Memaddress = 0xFFFFFFFFU; in HAL_FMPI2C_Mem_Read_IT()
2920 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_MSB(MemAddress); in HAL_FMPI2C_Mem_Read_IT()
2923 hfmpi2c->Memaddress = FMPI2C_MEM_ADD_LSB(MemAddress); in HAL_FMPI2C_Mem_Read_IT()
2926 …FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)MemAddSize, FMPI2C_SOFTEND_MODE, FMPI2C_GENERA… in HAL_FMPI2C_Mem_Read_IT()
2929 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Mem_Read_IT()
2939 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in HAL_FMPI2C_Mem_Read_IT()
2961 HAL_StatusTypeDef HAL_FMPI2C_Mem_Write_DMA(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint… in HAL_FMPI2C_Mem_Write_DMA() argument
2969 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Mem_Write_DMA()
2973 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Mem_Write_DMA()
2977 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_BUSY) == SET) in HAL_FMPI2C_Mem_Write_DMA()
2983 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Mem_Write_DMA()
2985 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_TX; in HAL_FMPI2C_Mem_Write_DMA()
2986 hfmpi2c->Mode = HAL_FMPI2C_MODE_MEM; in HAL_FMPI2C_Mem_Write_DMA()
2987 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Mem_Write_DMA()
2990 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Mem_Write_DMA()
2991 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Mem_Write_DMA()
2992 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in HAL_FMPI2C_Mem_Write_DMA()
2993 hfmpi2c->XferISR = FMPI2C_Mem_ISR_DMA; in HAL_FMPI2C_Mem_Write_DMA()
2994 hfmpi2c->Devaddress = DevAddress; in HAL_FMPI2C_Mem_Write_DMA()
2996 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Mem_Write_DMA()
2998 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in HAL_FMPI2C_Mem_Write_DMA()
3002 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Mem_Write_DMA()
3009 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_LSB(MemAddress); in HAL_FMPI2C_Mem_Write_DMA()
3012 hfmpi2c->Memaddress = 0xFFFFFFFFU; in HAL_FMPI2C_Mem_Write_DMA()
3018 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_MSB(MemAddress); in HAL_FMPI2C_Mem_Write_DMA()
3021 hfmpi2c->Memaddress = FMPI2C_MEM_ADD_LSB(MemAddress); in HAL_FMPI2C_Mem_Write_DMA()
3024 if (hfmpi2c->hdmatx != NULL) in HAL_FMPI2C_Mem_Write_DMA()
3027 hfmpi2c->hdmatx->XferCpltCallback = FMPI2C_DMAMasterTransmitCplt; in HAL_FMPI2C_Mem_Write_DMA()
3030 hfmpi2c->hdmatx->XferErrorCallback = FMPI2C_DMAError; in HAL_FMPI2C_Mem_Write_DMA()
3033 hfmpi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_FMPI2C_Mem_Write_DMA()
3034 hfmpi2c->hdmatx->XferAbortCallback = NULL; in HAL_FMPI2C_Mem_Write_DMA()
3037 …dmaxferstatus = HAL_DMA_Start_IT(hfmpi2c->hdmatx, (uint32_t)pData, (uint32_t)&hfmpi2c->Instance->T… in HAL_FMPI2C_Mem_Write_DMA()
3038 hfmpi2c->XferSize); in HAL_FMPI2C_Mem_Write_DMA()
3043 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Mem_Write_DMA()
3044 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Mem_Write_DMA()
3047 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA_PARAM; in HAL_FMPI2C_Mem_Write_DMA()
3050 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Mem_Write_DMA()
3058 …FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)MemAddSize, FMPI2C_RELOAD_MODE, FMPI2C_GENERAT… in HAL_FMPI2C_Mem_Write_DMA()
3061 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Mem_Write_DMA()
3070 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in HAL_FMPI2C_Mem_Write_DMA()
3075 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Mem_Write_DMA()
3076 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Mem_Write_DMA()
3079 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA; in HAL_FMPI2C_Mem_Write_DMA()
3082 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Mem_Write_DMA()
3107 HAL_StatusTypeDef HAL_FMPI2C_Mem_Read_DMA(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint1… in HAL_FMPI2C_Mem_Read_DMA() argument
3115 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Mem_Read_DMA()
3119 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Mem_Read_DMA()
3123 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_BUSY) == SET) in HAL_FMPI2C_Mem_Read_DMA()
3129 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Mem_Read_DMA()
3131 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_RX; in HAL_FMPI2C_Mem_Read_DMA()
3132 hfmpi2c->Mode = HAL_FMPI2C_MODE_MEM; in HAL_FMPI2C_Mem_Read_DMA()
3133 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Mem_Read_DMA()
3136 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Mem_Read_DMA()
3137 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Mem_Read_DMA()
3138 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in HAL_FMPI2C_Mem_Read_DMA()
3139 hfmpi2c->XferISR = FMPI2C_Mem_ISR_DMA; in HAL_FMPI2C_Mem_Read_DMA()
3140 hfmpi2c->Devaddress = DevAddress; in HAL_FMPI2C_Mem_Read_DMA()
3142 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Mem_Read_DMA()
3144 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in HAL_FMPI2C_Mem_Read_DMA()
3148 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Mem_Read_DMA()
3155 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_LSB(MemAddress); in HAL_FMPI2C_Mem_Read_DMA()
3158 hfmpi2c->Memaddress = 0xFFFFFFFFU; in HAL_FMPI2C_Mem_Read_DMA()
3164 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_MSB(MemAddress); in HAL_FMPI2C_Mem_Read_DMA()
3167 hfmpi2c->Memaddress = FMPI2C_MEM_ADD_LSB(MemAddress); in HAL_FMPI2C_Mem_Read_DMA()
3170 if (hfmpi2c->hdmarx != NULL) in HAL_FMPI2C_Mem_Read_DMA()
3173 hfmpi2c->hdmarx->XferCpltCallback = FMPI2C_DMAMasterReceiveCplt; in HAL_FMPI2C_Mem_Read_DMA()
3176 hfmpi2c->hdmarx->XferErrorCallback = FMPI2C_DMAError; in HAL_FMPI2C_Mem_Read_DMA()
3179 hfmpi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_FMPI2C_Mem_Read_DMA()
3180 hfmpi2c->hdmarx->XferAbortCallback = NULL; in HAL_FMPI2C_Mem_Read_DMA()
3183 …dmaxferstatus = HAL_DMA_Start_IT(hfmpi2c->hdmarx, (uint32_t)&hfmpi2c->Instance->RXDR, (uint32_t)pD… in HAL_FMPI2C_Mem_Read_DMA()
3184 hfmpi2c->XferSize); in HAL_FMPI2C_Mem_Read_DMA()
3189 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Mem_Read_DMA()
3190 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Mem_Read_DMA()
3193 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA_PARAM; in HAL_FMPI2C_Mem_Read_DMA()
3196 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Mem_Read_DMA()
3204 …FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)MemAddSize, FMPI2C_SOFTEND_MODE, FMPI2C_GENERA… in HAL_FMPI2C_Mem_Read_DMA()
3207 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Mem_Read_DMA()
3216 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in HAL_FMPI2C_Mem_Read_DMA()
3221 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Mem_Read_DMA()
3222 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Mem_Read_DMA()
3225 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA; in HAL_FMPI2C_Mem_Read_DMA()
3228 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Mem_Read_DMA()
3252 HAL_StatusTypeDef HAL_FMPI2C_IsDeviceReady(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint… in HAL_FMPI2C_IsDeviceReady() argument
3262 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_IsDeviceReady()
3264 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_BUSY) == SET) in HAL_FMPI2C_IsDeviceReady()
3270 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_IsDeviceReady()
3272 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY; in HAL_FMPI2C_IsDeviceReady()
3273 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_IsDeviceReady()
3278 hfmpi2c->Instance->CR2 = FMPI2C_GENERATE_START(hfmpi2c->Init.AddressingMode, DevAddress); in HAL_FMPI2C_IsDeviceReady()
3284 tmp1 = __HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in HAL_FMPI2C_IsDeviceReady()
3285 tmp2 = __HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in HAL_FMPI2C_IsDeviceReady()
3294 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_IsDeviceReady()
3297 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_TIMEOUT; in HAL_FMPI2C_IsDeviceReady()
3300 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_IsDeviceReady()
3306 tmp1 = __HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in HAL_FMPI2C_IsDeviceReady()
3307 tmp2 = __HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in HAL_FMPI2C_IsDeviceReady()
3311 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_AF) == RESET) in HAL_FMPI2C_IsDeviceReady()
3314 …if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_IsDeviceReady()
3320 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in HAL_FMPI2C_IsDeviceReady()
3323 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_IsDeviceReady()
3326 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_IsDeviceReady()
3333 …if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) in HAL_FMPI2C_IsDeviceReady()
3339 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in HAL_FMPI2C_IsDeviceReady()
3342 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in HAL_FMPI2C_IsDeviceReady()
3350 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_IsDeviceReady()
3353 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_TIMEOUT; in HAL_FMPI2C_IsDeviceReady()
3356 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_IsDeviceReady()
3378 HAL_StatusTypeDef HAL_FMPI2C_Master_Seq_Transmit_IT(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddr… in HAL_FMPI2C_Master_Seq_Transmit_IT() argument
3388 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Master_Seq_Transmit_IT()
3391 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Transmit_IT()
3393 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_TX; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3394 hfmpi2c->Mode = HAL_FMPI2C_MODE_MASTER; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3395 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3398 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3399 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3400 hfmpi2c->XferOptions = XferOptions; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3401 hfmpi2c->XferISR = FMPI2C_Master_ISR_IT; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3404 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Seq_Transmit_IT()
3406 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3411 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3412 xfermode = hfmpi2c->XferOptions; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3415 if ((hfmpi2c->XferSize > 0U) && ((XferOptions == FMPI2C_FIRST_FRAME) || \ in HAL_FMPI2C_Master_Seq_Transmit_IT()
3420 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3423 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3425 sizetoxfer = hfmpi2c->XferSize; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3426 hfmpi2c->XferCount--; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3427 hfmpi2c->XferSize--; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3433 if ((hfmpi2c->PreviousState == FMPI2C_STATE_MASTER_BUSY_TX) && \ in HAL_FMPI2C_Master_Seq_Transmit_IT()
3441 FMPI2C_ConvertOtherXferOptions(hfmpi2c); in HAL_FMPI2C_Master_Seq_Transmit_IT()
3444 if (hfmpi2c->XferCount <= MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Seq_Transmit_IT()
3446 xfermode = hfmpi2c->XferOptions; in HAL_FMPI2C_Master_Seq_Transmit_IT()
3453 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); in HAL_FMPI2C_Master_Seq_Transmit_IT()
3457 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, xfermode, xferrequest); in HAL_FMPI2C_Master_Seq_Transmit_IT()
3461 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Transmit_IT()
3470 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in HAL_FMPI2C_Master_Seq_Transmit_IT()
3492 HAL_StatusTypeDef HAL_FMPI2C_Master_Seq_Transmit_DMA(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAdd… in HAL_FMPI2C_Master_Seq_Transmit_DMA() argument
3503 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3506 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3508 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_TX; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3509 hfmpi2c->Mode = HAL_FMPI2C_MODE_MASTER; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3510 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3513 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3514 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3515 hfmpi2c->XferOptions = XferOptions; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3516 hfmpi2c->XferISR = FMPI2C_Master_ISR_DMA; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3519 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3521 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3526 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3527 xfermode = hfmpi2c->XferOptions; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3530 if ((hfmpi2c->XferSize > 0U) && ((XferOptions == FMPI2C_FIRST_FRAME) || \ in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3535 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3538 hfmpi2c->pBuffPtr++; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3540 sizetoxfer = hfmpi2c->XferSize; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3541 hfmpi2c->XferCount--; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3542 hfmpi2c->XferSize--; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3548 if ((hfmpi2c->PreviousState == FMPI2C_STATE_MASTER_BUSY_TX) && \ in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3556 FMPI2C_ConvertOtherXferOptions(hfmpi2c); in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3559 if (hfmpi2c->XferCount <= MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3561 xfermode = hfmpi2c->XferOptions; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3565 if (hfmpi2c->XferSize > 0U) in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3567 if (hfmpi2c->hdmatx != NULL) in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3570 hfmpi2c->hdmatx->XferCpltCallback = FMPI2C_DMAMasterTransmitCplt; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3573 hfmpi2c->hdmatx->XferErrorCallback = FMPI2C_DMAError; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3576 hfmpi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3577 hfmpi2c->hdmatx->XferAbortCallback = NULL; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3580 dmaxferstatus = HAL_DMA_Start_IT(hfmpi2c->hdmatx, (uint32_t)hfmpi2c->pBuffPtr, in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3581 (uint32_t)&hfmpi2c->Instance->TXDR, hfmpi2c->XferSize); in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3586 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3587 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3590 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA_PARAM; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3593 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3603 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3607 … FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, xfermode, xferrequest); in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3611 hfmpi2c->XferCount -= hfmpi2c->XferSize; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3614 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3620 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_ERROR_IT); in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3623 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_TXDMAEN; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3628 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3629 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3632 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3635 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3643 hfmpi2c->XferISR = FMPI2C_Master_ISR_IT; in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3649 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3653 … FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, xfermode, xferrequest); in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3657 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3666 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in HAL_FMPI2C_Master_Seq_Transmit_DMA()
3689 HAL_StatusTypeDef HAL_FMPI2C_Master_Seq_Receive_IT(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddre… in HAL_FMPI2C_Master_Seq_Receive_IT() argument
3698 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Master_Seq_Receive_IT()
3701 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Receive_IT()
3703 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_RX; in HAL_FMPI2C_Master_Seq_Receive_IT()
3704 hfmpi2c->Mode = HAL_FMPI2C_MODE_MASTER; in HAL_FMPI2C_Master_Seq_Receive_IT()
3705 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Master_Seq_Receive_IT()
3708 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Master_Seq_Receive_IT()
3709 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Master_Seq_Receive_IT()
3710 hfmpi2c->XferOptions = XferOptions; in HAL_FMPI2C_Master_Seq_Receive_IT()
3711 hfmpi2c->XferISR = FMPI2C_Master_ISR_IT; in HAL_FMPI2C_Master_Seq_Receive_IT()
3714 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Seq_Receive_IT()
3716 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in HAL_FMPI2C_Master_Seq_Receive_IT()
3721 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Master_Seq_Receive_IT()
3722 xfermode = hfmpi2c->XferOptions; in HAL_FMPI2C_Master_Seq_Receive_IT()
3728 if ((hfmpi2c->PreviousState == FMPI2C_STATE_MASTER_BUSY_RX) && \ in HAL_FMPI2C_Master_Seq_Receive_IT()
3736 FMPI2C_ConvertOtherXferOptions(hfmpi2c); in HAL_FMPI2C_Master_Seq_Receive_IT()
3739 if (hfmpi2c->XferCount <= MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Seq_Receive_IT()
3741 xfermode = hfmpi2c->XferOptions; in HAL_FMPI2C_Master_Seq_Receive_IT()
3746 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, xfermode, xferrequest); in HAL_FMPI2C_Master_Seq_Receive_IT()
3749 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Receive_IT()
3754 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT); in HAL_FMPI2C_Master_Seq_Receive_IT()
3776 HAL_StatusTypeDef HAL_FMPI2C_Master_Seq_Receive_DMA(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddr… in HAL_FMPI2C_Master_Seq_Receive_DMA() argument
3786 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_Master_Seq_Receive_DMA()
3789 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Receive_DMA()
3791 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_RX; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3792 hfmpi2c->Mode = HAL_FMPI2C_MODE_MASTER; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3793 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3796 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3797 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3798 hfmpi2c->XferOptions = XferOptions; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3799 hfmpi2c->XferISR = FMPI2C_Master_ISR_DMA; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3802 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Seq_Receive_DMA()
3804 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3809 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3810 xfermode = hfmpi2c->XferOptions; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3816 if ((hfmpi2c->PreviousState == FMPI2C_STATE_MASTER_BUSY_RX) && \ in HAL_FMPI2C_Master_Seq_Receive_DMA()
3824 FMPI2C_ConvertOtherXferOptions(hfmpi2c); in HAL_FMPI2C_Master_Seq_Receive_DMA()
3827 if (hfmpi2c->XferCount <= MAX_NBYTE_SIZE) in HAL_FMPI2C_Master_Seq_Receive_DMA()
3829 xfermode = hfmpi2c->XferOptions; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3833 if (hfmpi2c->XferSize > 0U) in HAL_FMPI2C_Master_Seq_Receive_DMA()
3835 if (hfmpi2c->hdmarx != NULL) in HAL_FMPI2C_Master_Seq_Receive_DMA()
3838 hfmpi2c->hdmarx->XferCpltCallback = FMPI2C_DMAMasterReceiveCplt; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3841 hfmpi2c->hdmarx->XferErrorCallback = FMPI2C_DMAError; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3844 hfmpi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3845 hfmpi2c->hdmarx->XferAbortCallback = NULL; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3848 …dmaxferstatus = HAL_DMA_Start_IT(hfmpi2c->hdmarx, (uint32_t)&hfmpi2c->Instance->RXDR, (uint32_t)pD… in HAL_FMPI2C_Master_Seq_Receive_DMA()
3849 hfmpi2c->XferSize); in HAL_FMPI2C_Master_Seq_Receive_DMA()
3854 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3855 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3858 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA_PARAM; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3861 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Receive_DMA()
3869 … FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, xfermode, xferrequest); in HAL_FMPI2C_Master_Seq_Receive_DMA()
3872 hfmpi2c->XferCount -= hfmpi2c->XferSize; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3875 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Receive_DMA()
3881 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_ERROR_IT); in HAL_FMPI2C_Master_Seq_Receive_DMA()
3884 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_RXDMAEN; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3889 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3890 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3893 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3896 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Receive_DMA()
3904 hfmpi2c->XferISR = FMPI2C_Master_ISR_IT; in HAL_FMPI2C_Master_Seq_Receive_DMA()
3908 FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_AUTOEND_MODE, in HAL_FMPI2C_Master_Seq_Receive_DMA()
3912 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Seq_Receive_DMA()
3921 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT); in HAL_FMPI2C_Master_Seq_Receive_DMA()
3942 HAL_StatusTypeDef HAL_FMPI2C_Slave_Seq_Transmit_IT(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, u… in HAL_FMPI2C_Slave_Seq_Transmit_IT() argument
3951 …if (((uint32_t)hfmpi2c->State & (uint32_t)HAL_FMPI2C_STATE_LISTEN) == (uint32_t)HAL_FMPI2C_STATE_L… in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3955 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3960 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT | FMPI2C_XFER_TX_IT); in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3963 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3967 if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_RX_LISTEN) in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3970 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT); in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3973 if ((hfmpi2c->Instance->CR1 & FMPI2C_CR1_RXDMAEN) == FMPI2C_CR1_RXDMAEN) in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3975 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_RXDMAEN; in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3977 if (hfmpi2c->hdmarx != NULL) in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3981 hfmpi2c->hdmarx->XferAbortCallback = FMPI2C_DMAAbort; in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3984 if (HAL_DMA_Abort_IT(hfmpi2c->hdmarx) != HAL_OK) in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3987 hfmpi2c->hdmarx->XferAbortCallback(hfmpi2c->hdmarx); in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3993 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_TX_LISTEN; in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3994 hfmpi2c->Mode = HAL_FMPI2C_MODE_SLAVE; in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3995 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Slave_Seq_Transmit_IT()
3998 hfmpi2c->Instance->CR2 &= ~FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Seq_Transmit_IT()
4001 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Slave_Seq_Transmit_IT()
4002 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Slave_Seq_Transmit_IT()
4003 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Slave_Seq_Transmit_IT()
4004 hfmpi2c->XferOptions = XferOptions; in HAL_FMPI2C_Slave_Seq_Transmit_IT()
4005 hfmpi2c->XferISR = FMPI2C_Slave_ISR_IT; in HAL_FMPI2C_Slave_Seq_Transmit_IT()
4007 tmp = __HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_ADDR); in HAL_FMPI2C_Slave_Seq_Transmit_IT()
4008 if ((FMPI2C_GET_DIR(hfmpi2c) == FMPI2C_DIRECTION_RECEIVE) && (tmp != RESET)) in HAL_FMPI2C_Slave_Seq_Transmit_IT()
4012 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_ADDR); in HAL_FMPI2C_Slave_Seq_Transmit_IT()
4016 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Seq_Transmit_IT()
4022 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT | FMPI2C_XFER_LISTEN_IT); in HAL_FMPI2C_Slave_Seq_Transmit_IT()
4042 HAL_StatusTypeDef HAL_FMPI2C_Slave_Seq_Transmit_DMA(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, … in HAL_FMPI2C_Slave_Seq_Transmit_DMA() argument
4052 …if (((uint32_t)hfmpi2c->State & (uint32_t)HAL_FMPI2C_STATE_LISTEN) == (uint32_t)HAL_FMPI2C_STATE_L… in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4056 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4061 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4064 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT | FMPI2C_XFER_TX_IT); in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4068 if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_RX_LISTEN) in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4071 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT); in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4073 if ((hfmpi2c->Instance->CR1 & FMPI2C_CR1_RXDMAEN) == FMPI2C_CR1_RXDMAEN) in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4076 if (hfmpi2c->hdmarx != NULL) in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4078 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_RXDMAEN; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4082 hfmpi2c->hdmarx->XferAbortCallback = FMPI2C_DMAAbort; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4085 if (HAL_DMA_Abort_IT(hfmpi2c->hdmarx) != HAL_OK) in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4088 hfmpi2c->hdmarx->XferAbortCallback(hfmpi2c->hdmarx); in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4093 else if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_TX_LISTEN) in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4095 if ((hfmpi2c->Instance->CR1 & FMPI2C_CR1_TXDMAEN) == FMPI2C_CR1_TXDMAEN) in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4097 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_TXDMAEN; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4100 if (hfmpi2c->hdmatx != NULL) in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4104 hfmpi2c->hdmatx->XferAbortCallback = FMPI2C_DMAAbort; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4107 if (HAL_DMA_Abort_IT(hfmpi2c->hdmatx) != HAL_OK) in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4110 hfmpi2c->hdmatx->XferAbortCallback(hfmpi2c->hdmatx); in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4120 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_TX_LISTEN; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4121 hfmpi2c->Mode = HAL_FMPI2C_MODE_SLAVE; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4122 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4125 hfmpi2c->Instance->CR2 &= ~FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4128 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4129 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4130 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4131 hfmpi2c->XferOptions = XferOptions; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4132 hfmpi2c->XferISR = FMPI2C_Slave_ISR_DMA; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4134 if (hfmpi2c->hdmatx != NULL) in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4137 hfmpi2c->hdmatx->XferCpltCallback = FMPI2C_DMASlaveTransmitCplt; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4140 hfmpi2c->hdmatx->XferErrorCallback = FMPI2C_DMAError; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4143 hfmpi2c->hdmatx->XferHalfCpltCallback = NULL; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4144 hfmpi2c->hdmatx->XferAbortCallback = NULL; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4147 …dmaxferstatus = HAL_DMA_Start_IT(hfmpi2c->hdmatx, (uint32_t)pData, (uint32_t)&hfmpi2c->Instance->T… in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4148 hfmpi2c->XferSize); in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4153 hfmpi2c->State = HAL_FMPI2C_STATE_LISTEN; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4154 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4157 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA_PARAM; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4160 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4168 hfmpi2c->XferCount -= hfmpi2c->XferSize; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4171 hfmpi2c->XferSize = 0; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4176 hfmpi2c->State = HAL_FMPI2C_STATE_LISTEN; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4177 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4180 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4183 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4188 tmp = __HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_ADDR); in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4189 if ((FMPI2C_GET_DIR(hfmpi2c) == FMPI2C_DIRECTION_RECEIVE) && (tmp != RESET)) in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4193 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_ADDR); in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4197 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4200 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_TXDMAEN; in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4206 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT); in HAL_FMPI2C_Slave_Seq_Transmit_DMA()
4226 HAL_StatusTypeDef HAL_FMPI2C_Slave_Seq_Receive_IT(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, ui… in HAL_FMPI2C_Slave_Seq_Receive_IT() argument
4235 …if (((uint32_t)hfmpi2c->State & (uint32_t)HAL_FMPI2C_STATE_LISTEN) == (uint32_t)HAL_FMPI2C_STATE_L… in HAL_FMPI2C_Slave_Seq_Receive_IT()
4239 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Slave_Seq_Receive_IT()
4244 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT | FMPI2C_XFER_RX_IT); in HAL_FMPI2C_Slave_Seq_Receive_IT()
4247 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Slave_Seq_Receive_IT()
4251 if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_TX_LISTEN) in HAL_FMPI2C_Slave_Seq_Receive_IT()
4254 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in HAL_FMPI2C_Slave_Seq_Receive_IT()
4256 if ((hfmpi2c->Instance->CR1 & FMPI2C_CR1_TXDMAEN) == FMPI2C_CR1_TXDMAEN) in HAL_FMPI2C_Slave_Seq_Receive_IT()
4258 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_TXDMAEN; in HAL_FMPI2C_Slave_Seq_Receive_IT()
4261 if (hfmpi2c->hdmatx != NULL) in HAL_FMPI2C_Slave_Seq_Receive_IT()
4265 hfmpi2c->hdmatx->XferAbortCallback = FMPI2C_DMAAbort; in HAL_FMPI2C_Slave_Seq_Receive_IT()
4268 if (HAL_DMA_Abort_IT(hfmpi2c->hdmatx) != HAL_OK) in HAL_FMPI2C_Slave_Seq_Receive_IT()
4271 hfmpi2c->hdmatx->XferAbortCallback(hfmpi2c->hdmatx); in HAL_FMPI2C_Slave_Seq_Receive_IT()
4277 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_RX_LISTEN; in HAL_FMPI2C_Slave_Seq_Receive_IT()
4278 hfmpi2c->Mode = HAL_FMPI2C_MODE_SLAVE; in HAL_FMPI2C_Slave_Seq_Receive_IT()
4279 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Slave_Seq_Receive_IT()
4282 hfmpi2c->Instance->CR2 &= ~FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Seq_Receive_IT()
4285 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Slave_Seq_Receive_IT()
4286 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Slave_Seq_Receive_IT()
4287 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Slave_Seq_Receive_IT()
4288 hfmpi2c->XferOptions = XferOptions; in HAL_FMPI2C_Slave_Seq_Receive_IT()
4289 hfmpi2c->XferISR = FMPI2C_Slave_ISR_IT; in HAL_FMPI2C_Slave_Seq_Receive_IT()
4291 tmp = __HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_ADDR); in HAL_FMPI2C_Slave_Seq_Receive_IT()
4292 if ((FMPI2C_GET_DIR(hfmpi2c) == FMPI2C_DIRECTION_TRANSMIT) && (tmp != RESET)) in HAL_FMPI2C_Slave_Seq_Receive_IT()
4296 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_ADDR); in HAL_FMPI2C_Slave_Seq_Receive_IT()
4300 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Seq_Receive_IT()
4306 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT | FMPI2C_XFER_LISTEN_IT); in HAL_FMPI2C_Slave_Seq_Receive_IT()
4326 HAL_StatusTypeDef HAL_FMPI2C_Slave_Seq_Receive_DMA(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t *pData, u… in HAL_FMPI2C_Slave_Seq_Receive_DMA() argument
4336 …if (((uint32_t)hfmpi2c->State & (uint32_t)HAL_FMPI2C_STATE_LISTEN) == (uint32_t)HAL_FMPI2C_STATE_L… in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4340 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_INVALID_PARAM; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4345 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT | FMPI2C_XFER_RX_IT); in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4348 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4352 if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_TX_LISTEN) in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4355 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4357 if ((hfmpi2c->Instance->CR1 & FMPI2C_CR1_TXDMAEN) == FMPI2C_CR1_TXDMAEN) in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4360 if (hfmpi2c->hdmatx != NULL) in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4362 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_TXDMAEN; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4366 hfmpi2c->hdmatx->XferAbortCallback = FMPI2C_DMAAbort; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4369 if (HAL_DMA_Abort_IT(hfmpi2c->hdmatx) != HAL_OK) in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4372 hfmpi2c->hdmatx->XferAbortCallback(hfmpi2c->hdmatx); in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4377 else if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_RX_LISTEN) in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4379 if ((hfmpi2c->Instance->CR1 & FMPI2C_CR1_RXDMAEN) == FMPI2C_CR1_RXDMAEN) in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4381 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_RXDMAEN; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4384 if (hfmpi2c->hdmarx != NULL) in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4388 hfmpi2c->hdmarx->XferAbortCallback = FMPI2C_DMAAbort; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4391 if (HAL_DMA_Abort_IT(hfmpi2c->hdmarx) != HAL_OK) in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4394 hfmpi2c->hdmarx->XferAbortCallback(hfmpi2c->hdmarx); in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4404 hfmpi2c->State = HAL_FMPI2C_STATE_BUSY_RX_LISTEN; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4405 hfmpi2c->Mode = HAL_FMPI2C_MODE_SLAVE; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4406 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4409 hfmpi2c->Instance->CR2 &= ~FMPI2C_CR2_NACK; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4412 hfmpi2c->pBuffPtr = pData; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4413 hfmpi2c->XferCount = Size; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4414 hfmpi2c->XferSize = hfmpi2c->XferCount; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4415 hfmpi2c->XferOptions = XferOptions; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4416 hfmpi2c->XferISR = FMPI2C_Slave_ISR_DMA; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4418 if (hfmpi2c->hdmarx != NULL) in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4421 hfmpi2c->hdmarx->XferCpltCallback = FMPI2C_DMASlaveReceiveCplt; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4424 hfmpi2c->hdmarx->XferErrorCallback = FMPI2C_DMAError; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4427 hfmpi2c->hdmarx->XferHalfCpltCallback = NULL; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4428 hfmpi2c->hdmarx->XferAbortCallback = NULL; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4431 dmaxferstatus = HAL_DMA_Start_IT(hfmpi2c->hdmarx, (uint32_t)&hfmpi2c->Instance->RXDR, in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4432 (uint32_t)pData, hfmpi2c->XferSize); in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4437 hfmpi2c->State = HAL_FMPI2C_STATE_LISTEN; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4438 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4441 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA_PARAM; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4444 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4452 hfmpi2c->XferCount -= hfmpi2c->XferSize; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4455 hfmpi2c->XferSize = 0; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4460 hfmpi2c->State = HAL_FMPI2C_STATE_LISTEN; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4461 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4464 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_DMA; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4467 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4472 tmp = __HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_ADDR); in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4473 if ((FMPI2C_GET_DIR(hfmpi2c) == FMPI2C_DIRECTION_TRANSMIT) && (tmp != RESET)) in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4477 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_ADDR); in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4481 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4484 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_RXDMAEN; in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4490 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT | FMPI2C_XFER_LISTEN_IT); in HAL_FMPI2C_Slave_Seq_Receive_DMA()
4506 HAL_StatusTypeDef HAL_FMPI2C_EnableListen_IT(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_EnableListen_IT() argument
4508 if (hfmpi2c->State == HAL_FMPI2C_STATE_READY) in HAL_FMPI2C_EnableListen_IT()
4510 hfmpi2c->State = HAL_FMPI2C_STATE_LISTEN; in HAL_FMPI2C_EnableListen_IT()
4511 hfmpi2c->XferISR = FMPI2C_Slave_ISR_IT; in HAL_FMPI2C_EnableListen_IT()
4514 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT); in HAL_FMPI2C_EnableListen_IT()
4530 HAL_StatusTypeDef HAL_FMPI2C_DisableListen_IT(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_DisableListen_IT() argument
4536 if (hfmpi2c->State == HAL_FMPI2C_STATE_LISTEN) in HAL_FMPI2C_DisableListen_IT()
4538 tmp = (uint32_t)(hfmpi2c->State) & FMPI2C_STATE_MSK; in HAL_FMPI2C_DisableListen_IT()
4539 hfmpi2c->PreviousState = tmp | (uint32_t)(hfmpi2c->Mode); in HAL_FMPI2C_DisableListen_IT()
4540 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in HAL_FMPI2C_DisableListen_IT()
4541 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in HAL_FMPI2C_DisableListen_IT()
4542 hfmpi2c->XferISR = NULL; in HAL_FMPI2C_DisableListen_IT()
4545 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT); in HAL_FMPI2C_DisableListen_IT()
4563 HAL_StatusTypeDef HAL_FMPI2C_Master_Abort_IT(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress) in HAL_FMPI2C_Master_Abort_IT() argument
4565 if (hfmpi2c->Mode == HAL_FMPI2C_MODE_MASTER) in HAL_FMPI2C_Master_Abort_IT()
4568 __HAL_LOCK(hfmpi2c); in HAL_FMPI2C_Master_Abort_IT()
4571 if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_TX) in HAL_FMPI2C_Master_Abort_IT()
4573 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in HAL_FMPI2C_Master_Abort_IT()
4574 hfmpi2c->PreviousState = FMPI2C_STATE_MASTER_BUSY_TX; in HAL_FMPI2C_Master_Abort_IT()
4576 else if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_RX) in HAL_FMPI2C_Master_Abort_IT()
4578 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT); in HAL_FMPI2C_Master_Abort_IT()
4579 hfmpi2c->PreviousState = FMPI2C_STATE_MASTER_BUSY_RX; in HAL_FMPI2C_Master_Abort_IT()
4587 hfmpi2c->State = HAL_FMPI2C_STATE_ABORT; in HAL_FMPI2C_Master_Abort_IT()
4591 FMPI2C_TransferConfig(hfmpi2c, DevAddress, 1, FMPI2C_AUTOEND_MODE, FMPI2C_GENERATE_STOP); in HAL_FMPI2C_Master_Abort_IT()
4594 __HAL_UNLOCK(hfmpi2c); in HAL_FMPI2C_Master_Abort_IT()
4599 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_CPLT_IT); in HAL_FMPI2C_Master_Abort_IT()
4625 void HAL_FMPI2C_EV_IRQHandler(FMPI2C_HandleTypeDef *hfmpi2c) /* Derogation MISRAC2012-Rule-8.13 */ in HAL_FMPI2C_EV_IRQHandler() argument
4628 uint32_t itflags = READ_REG(hfmpi2c->Instance->ISR); in HAL_FMPI2C_EV_IRQHandler()
4629 uint32_t itsources = READ_REG(hfmpi2c->Instance->CR1); in HAL_FMPI2C_EV_IRQHandler()
4632 if (hfmpi2c->XferISR != NULL) in HAL_FMPI2C_EV_IRQHandler()
4634 hfmpi2c->XferISR(hfmpi2c, itflags, itsources); in HAL_FMPI2C_EV_IRQHandler()
4644 void HAL_FMPI2C_ER_IRQHandler(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_ER_IRQHandler() argument
4646 uint32_t itflags = READ_REG(hfmpi2c->Instance->ISR); in HAL_FMPI2C_ER_IRQHandler()
4647 uint32_t itsources = READ_REG(hfmpi2c->Instance->CR1); in HAL_FMPI2C_ER_IRQHandler()
4654 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_BERR; in HAL_FMPI2C_ER_IRQHandler()
4657 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_BERR); in HAL_FMPI2C_ER_IRQHandler()
4664 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_OVR; in HAL_FMPI2C_ER_IRQHandler()
4667 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_OVR); in HAL_FMPI2C_ER_IRQHandler()
4674 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_ARLO; in HAL_FMPI2C_ER_IRQHandler()
4677 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_ARLO); in HAL_FMPI2C_ER_IRQHandler()
4681 tmperror = hfmpi2c->ErrorCode; in HAL_FMPI2C_ER_IRQHandler()
4686 FMPI2C_ITError(hfmpi2c, tmperror); in HAL_FMPI2C_ER_IRQHandler()
4696 __weak void HAL_FMPI2C_MasterTxCpltCallback(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_MasterTxCpltCallback() argument
4699 UNUSED(hfmpi2c); in HAL_FMPI2C_MasterTxCpltCallback()
4712 __weak void HAL_FMPI2C_MasterRxCpltCallback(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_MasterRxCpltCallback() argument
4715 UNUSED(hfmpi2c); in HAL_FMPI2C_MasterRxCpltCallback()
4727 __weak void HAL_FMPI2C_SlaveTxCpltCallback(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_SlaveTxCpltCallback() argument
4730 UNUSED(hfmpi2c); in HAL_FMPI2C_SlaveTxCpltCallback()
4743 __weak void HAL_FMPI2C_SlaveRxCpltCallback(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_SlaveRxCpltCallback() argument
4746 UNUSED(hfmpi2c); in HAL_FMPI2C_SlaveRxCpltCallback()
4761 __weak void HAL_FMPI2C_AddrCallback(FMPI2C_HandleTypeDef *hfmpi2c, uint8_t TransferDirection, uint1… in HAL_FMPI2C_AddrCallback() argument
4764 UNUSED(hfmpi2c); in HAL_FMPI2C_AddrCallback()
4779 __weak void HAL_FMPI2C_ListenCpltCallback(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_ListenCpltCallback() argument
4782 UNUSED(hfmpi2c); in HAL_FMPI2C_ListenCpltCallback()
4795 __weak void HAL_FMPI2C_MemTxCpltCallback(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_MemTxCpltCallback() argument
4798 UNUSED(hfmpi2c); in HAL_FMPI2C_MemTxCpltCallback()
4811 __weak void HAL_FMPI2C_MemRxCpltCallback(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_MemRxCpltCallback() argument
4814 UNUSED(hfmpi2c); in HAL_FMPI2C_MemRxCpltCallback()
4827 __weak void HAL_FMPI2C_ErrorCallback(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_ErrorCallback() argument
4830 UNUSED(hfmpi2c); in HAL_FMPI2C_ErrorCallback()
4843 __weak void HAL_FMPI2C_AbortCpltCallback(FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_AbortCpltCallback() argument
4846 UNUSED(hfmpi2c); in HAL_FMPI2C_AbortCpltCallback()
4878 HAL_FMPI2C_StateTypeDef HAL_FMPI2C_GetState(const FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_GetState() argument
4881 return hfmpi2c->State; in HAL_FMPI2C_GetState()
4890 HAL_FMPI2C_ModeTypeDef HAL_FMPI2C_GetMode(const FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_GetMode() argument
4892 return hfmpi2c->Mode; in HAL_FMPI2C_GetMode()
4901 uint32_t HAL_FMPI2C_GetError(const FMPI2C_HandleTypeDef *hfmpi2c) in HAL_FMPI2C_GetError() argument
4903 return hfmpi2c->ErrorCode; in HAL_FMPI2C_GetError()
4926 static HAL_StatusTypeDef FMPI2C_Master_ISR_IT(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFl… in FMPI2C_Master_ISR_IT() argument
4933 __HAL_LOCK(hfmpi2c); in FMPI2C_Master_ISR_IT()
4939 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_Master_ISR_IT()
4944 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_AF; in FMPI2C_Master_ISR_IT()
4947 FMPI2C_Flush_TXDR(hfmpi2c); in FMPI2C_Master_ISR_IT()
4956 *hfmpi2c->pBuffPtr = (uint8_t)hfmpi2c->Instance->RXDR; in FMPI2C_Master_ISR_IT()
4959 hfmpi2c->pBuffPtr++; in FMPI2C_Master_ISR_IT()
4961 hfmpi2c->XferSize--; in FMPI2C_Master_ISR_IT()
4962 hfmpi2c->XferCount--; in FMPI2C_Master_ISR_IT()
4969 if (hfmpi2c->XferCount != 0U) in FMPI2C_Master_ISR_IT()
4972 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in FMPI2C_Master_ISR_IT()
4975 hfmpi2c->pBuffPtr++; in FMPI2C_Master_ISR_IT()
4977 hfmpi2c->XferSize--; in FMPI2C_Master_ISR_IT()
4978 hfmpi2c->XferCount--; in FMPI2C_Master_ISR_IT()
4984 if ((hfmpi2c->XferCount != 0U) && (hfmpi2c->XferSize == 0U)) in FMPI2C_Master_ISR_IT()
4986 devaddress = (uint16_t)(hfmpi2c->Instance->CR2 & FMPI2C_CR2_SADD); in FMPI2C_Master_ISR_IT()
4988 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in FMPI2C_Master_ISR_IT()
4991 if (FMPI2C_GET_DIR(hfmpi2c) == FMPI2C_DIRECTION_RECEIVE) in FMPI2C_Master_ISR_IT()
4993 hfmpi2c->XferSize = 1U; in FMPI2C_Master_ISR_IT()
4997 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in FMPI2C_Master_ISR_IT()
4999 …FMPI2C_TransferConfig(hfmpi2c, devaddress, (uint8_t)hfmpi2c->XferSize, FMPI2C_RELOAD_MODE, FMPI2C_… in FMPI2C_Master_ISR_IT()
5003 hfmpi2c->XferSize = hfmpi2c->XferCount; in FMPI2C_Master_ISR_IT()
5004 if (hfmpi2c->XferOptions != FMPI2C_NO_OPTION_FRAME) in FMPI2C_Master_ISR_IT()
5006 FMPI2C_TransferConfig(hfmpi2c, devaddress, (uint8_t)hfmpi2c->XferSize, in FMPI2C_Master_ISR_IT()
5007 hfmpi2c->XferOptions, FMPI2C_NO_STARTSTOP); in FMPI2C_Master_ISR_IT()
5011 FMPI2C_TransferConfig(hfmpi2c, devaddress, (uint8_t)hfmpi2c->XferSize, in FMPI2C_Master_ISR_IT()
5019 if (FMPI2C_GET_STOP_MODE(hfmpi2c) != FMPI2C_AUTOEND_MODE) in FMPI2C_Master_ISR_IT()
5022 FMPI2C_ITMasterSeqCplt(hfmpi2c); in FMPI2C_Master_ISR_IT()
5028 FMPI2C_ITError(hfmpi2c, HAL_FMPI2C_ERROR_SIZE); in FMPI2C_Master_ISR_IT()
5035 if (hfmpi2c->XferCount == 0U) in FMPI2C_Master_ISR_IT()
5037 if (FMPI2C_GET_STOP_MODE(hfmpi2c) != FMPI2C_AUTOEND_MODE) in FMPI2C_Master_ISR_IT()
5040 if (hfmpi2c->XferOptions == FMPI2C_NO_OPTION_FRAME) in FMPI2C_Master_ISR_IT()
5043 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_STOP; in FMPI2C_Master_ISR_IT()
5048 FMPI2C_ITMasterSeqCplt(hfmpi2c); in FMPI2C_Master_ISR_IT()
5056 FMPI2C_ITError(hfmpi2c, HAL_FMPI2C_ERROR_SIZE); in FMPI2C_Master_ISR_IT()
5068 FMPI2C_ITMasterCplt(hfmpi2c, tmpITFlags); in FMPI2C_Master_ISR_IT()
5072 __HAL_UNLOCK(hfmpi2c); in FMPI2C_Master_ISR_IT()
5085 static HAL_StatusTypeDef FMPI2C_Mem_ISR_IT(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags, in FMPI2C_Mem_ISR_IT() argument
5092 __HAL_LOCK(hfmpi2c); in FMPI2C_Mem_ISR_IT()
5098 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_Mem_ISR_IT()
5103 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_AF; in FMPI2C_Mem_ISR_IT()
5106 FMPI2C_Flush_TXDR(hfmpi2c); in FMPI2C_Mem_ISR_IT()
5115 *hfmpi2c->pBuffPtr = (uint8_t)hfmpi2c->Instance->RXDR; in FMPI2C_Mem_ISR_IT()
5118 hfmpi2c->pBuffPtr++; in FMPI2C_Mem_ISR_IT()
5120 hfmpi2c->XferSize--; in FMPI2C_Mem_ISR_IT()
5121 hfmpi2c->XferCount--; in FMPI2C_Mem_ISR_IT()
5126 if (hfmpi2c->Memaddress == 0xFFFFFFFFU) in FMPI2C_Mem_ISR_IT()
5129 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in FMPI2C_Mem_ISR_IT()
5132 hfmpi2c->pBuffPtr++; in FMPI2C_Mem_ISR_IT()
5134 hfmpi2c->XferSize--; in FMPI2C_Mem_ISR_IT()
5135 hfmpi2c->XferCount--; in FMPI2C_Mem_ISR_IT()
5140 hfmpi2c->Instance->TXDR = hfmpi2c->Memaddress; in FMPI2C_Mem_ISR_IT()
5143 hfmpi2c->Memaddress = 0xFFFFFFFFU; in FMPI2C_Mem_ISR_IT()
5149 if ((hfmpi2c->XferCount != 0U) && (hfmpi2c->XferSize == 0U)) in FMPI2C_Mem_ISR_IT()
5151 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in FMPI2C_Mem_ISR_IT()
5154 if (FMPI2C_GET_DIR(hfmpi2c) == FMPI2C_DIRECTION_RECEIVE) in FMPI2C_Mem_ISR_IT()
5156 hfmpi2c->XferSize = 1U; in FMPI2C_Mem_ISR_IT()
5160 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in FMPI2C_Mem_ISR_IT()
5162 FMPI2C_TransferConfig(hfmpi2c, (uint16_t)hfmpi2c->Devaddress, (uint8_t)hfmpi2c->XferSize, in FMPI2C_Mem_ISR_IT()
5167 hfmpi2c->XferSize = hfmpi2c->XferCount; in FMPI2C_Mem_ISR_IT()
5168 FMPI2C_TransferConfig(hfmpi2c, (uint16_t)hfmpi2c->Devaddress, (uint8_t)hfmpi2c->XferSize, in FMPI2C_Mem_ISR_IT()
5176 FMPI2C_ITError(hfmpi2c, HAL_FMPI2C_ERROR_SIZE); in FMPI2C_Mem_ISR_IT()
5183 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in FMPI2C_Mem_ISR_IT()
5186 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT); in FMPI2C_Mem_ISR_IT()
5188 if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_RX) in FMPI2C_Mem_ISR_IT()
5193 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in FMPI2C_Mem_ISR_IT()
5196 if (FMPI2C_GET_DIR(hfmpi2c) == FMPI2C_DIRECTION_RECEIVE) in FMPI2C_Mem_ISR_IT()
5198 hfmpi2c->XferSize = 1U; in FMPI2C_Mem_ISR_IT()
5202 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in FMPI2C_Mem_ISR_IT()
5206 FMPI2C_TransferConfig(hfmpi2c, (uint16_t)hfmpi2c->Devaddress, (uint8_t)hfmpi2c->XferSize, in FMPI2C_Mem_ISR_IT()
5211 hfmpi2c->XferSize = hfmpi2c->XferCount; in FMPI2C_Mem_ISR_IT()
5214 FMPI2C_TransferConfig(hfmpi2c, (uint16_t)hfmpi2c->Devaddress, (uint8_t)hfmpi2c->XferSize, in FMPI2C_Mem_ISR_IT()
5227 FMPI2C_ITMasterCplt(hfmpi2c, tmpITFlags); in FMPI2C_Mem_ISR_IT()
5231 __HAL_UNLOCK(hfmpi2c); in FMPI2C_Mem_ISR_IT()
5244 static HAL_StatusTypeDef FMPI2C_Slave_ISR_IT(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFla… in FMPI2C_Slave_ISR_IT() argument
5247 uint32_t tmpoptions = hfmpi2c->XferOptions; in FMPI2C_Slave_ISR_IT()
5251 __HAL_LOCK(hfmpi2c); in FMPI2C_Slave_ISR_IT()
5258 FMPI2C_ITSlaveCplt(hfmpi2c, tmpITFlags); in FMPI2C_Slave_ISR_IT()
5267 if (hfmpi2c->XferCount == 0U) in FMPI2C_Slave_ISR_IT()
5269 … if ((hfmpi2c->State == HAL_FMPI2C_STATE_LISTEN) && (tmpoptions == FMPI2C_FIRST_AND_LAST_FRAME)) in FMPI2C_Slave_ISR_IT()
5274 FMPI2C_ITListenCplt(hfmpi2c, tmpITFlags); in FMPI2C_Slave_ISR_IT()
5276 …else if ((hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != FMPI2C_NO_OPTION_FR… in FMPI2C_Slave_ISR_IT()
5279 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_Slave_ISR_IT()
5282 FMPI2C_Flush_TXDR(hfmpi2c); in FMPI2C_Slave_ISR_IT()
5286 FMPI2C_ITSlaveSeqCplt(hfmpi2c); in FMPI2C_Slave_ISR_IT()
5291 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_Slave_ISR_IT()
5298 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_Slave_ISR_IT()
5301 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_AF; in FMPI2C_Slave_ISR_IT()
5306 FMPI2C_ITError(hfmpi2c, hfmpi2c->ErrorCode); in FMPI2C_Slave_ISR_IT()
5313 if (hfmpi2c->XferCount > 0U) in FMPI2C_Slave_ISR_IT()
5316 *hfmpi2c->pBuffPtr = (uint8_t)hfmpi2c->Instance->RXDR; in FMPI2C_Slave_ISR_IT()
5319 hfmpi2c->pBuffPtr++; in FMPI2C_Slave_ISR_IT()
5321 hfmpi2c->XferSize--; in FMPI2C_Slave_ISR_IT()
5322 hfmpi2c->XferCount--; in FMPI2C_Slave_ISR_IT()
5325 if ((hfmpi2c->XferCount == 0U) && \ in FMPI2C_Slave_ISR_IT()
5329 FMPI2C_ITSlaveSeqCplt(hfmpi2c); in FMPI2C_Slave_ISR_IT()
5335 FMPI2C_ITAddrCplt(hfmpi2c, tmpITFlags); in FMPI2C_Slave_ISR_IT()
5344 if (hfmpi2c->XferCount > 0U) in FMPI2C_Slave_ISR_IT()
5347 hfmpi2c->Instance->TXDR = *hfmpi2c->pBuffPtr; in FMPI2C_Slave_ISR_IT()
5350 hfmpi2c->pBuffPtr++; in FMPI2C_Slave_ISR_IT()
5352 hfmpi2c->XferCount--; in FMPI2C_Slave_ISR_IT()
5353 hfmpi2c->XferSize--; in FMPI2C_Slave_ISR_IT()
5361 FMPI2C_ITSlaveSeqCplt(hfmpi2c); in FMPI2C_Slave_ISR_IT()
5371 __HAL_UNLOCK(hfmpi2c); in FMPI2C_Slave_ISR_IT()
5384 static HAL_StatusTypeDef FMPI2C_Master_ISR_DMA(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITF… in FMPI2C_Master_ISR_DMA() argument
5391 __HAL_LOCK(hfmpi2c); in FMPI2C_Master_ISR_DMA()
5397 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_Master_ISR_DMA()
5400 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_AF; in FMPI2C_Master_ISR_DMA()
5405 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_CPLT_IT); in FMPI2C_Master_ISR_DMA()
5408 FMPI2C_Flush_TXDR(hfmpi2c); in FMPI2C_Master_ISR_DMA()
5414 __HAL_FMPI2C_DISABLE_IT(hfmpi2c, FMPI2C_IT_TCI); in FMPI2C_Master_ISR_DMA()
5416 if (hfmpi2c->XferCount != 0U) in FMPI2C_Master_ISR_DMA()
5419 devaddress = (uint16_t)(hfmpi2c->Instance->CR2 & FMPI2C_CR2_SADD); in FMPI2C_Master_ISR_DMA()
5422 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in FMPI2C_Master_ISR_DMA()
5425 if (FMPI2C_GET_DIR(hfmpi2c) == FMPI2C_DIRECTION_RECEIVE) in FMPI2C_Master_ISR_DMA()
5427 hfmpi2c->XferSize = 1U; in FMPI2C_Master_ISR_DMA()
5431 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in FMPI2C_Master_ISR_DMA()
5437 hfmpi2c->XferSize = hfmpi2c->XferCount; in FMPI2C_Master_ISR_DMA()
5438 if (hfmpi2c->XferOptions != FMPI2C_NO_OPTION_FRAME) in FMPI2C_Master_ISR_DMA()
5440 xfermode = hfmpi2c->XferOptions; in FMPI2C_Master_ISR_DMA()
5449 …FMPI2C_TransferConfig(hfmpi2c, devaddress, (uint8_t)hfmpi2c->XferSize, xfermode, FMPI2C_NO_STARTST… in FMPI2C_Master_ISR_DMA()
5452 hfmpi2c->XferCount -= hfmpi2c->XferSize; in FMPI2C_Master_ISR_DMA()
5455 if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_RX) in FMPI2C_Master_ISR_DMA()
5457 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_RXDMAEN; in FMPI2C_Master_ISR_DMA()
5461 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_TXDMAEN; in FMPI2C_Master_ISR_DMA()
5467 if (FMPI2C_GET_STOP_MODE(hfmpi2c) != FMPI2C_AUTOEND_MODE) in FMPI2C_Master_ISR_DMA()
5470 FMPI2C_ITMasterSeqCplt(hfmpi2c); in FMPI2C_Master_ISR_DMA()
5476 FMPI2C_ITError(hfmpi2c, HAL_FMPI2C_ERROR_SIZE); in FMPI2C_Master_ISR_DMA()
5483 if (hfmpi2c->XferCount == 0U) in FMPI2C_Master_ISR_DMA()
5485 if (FMPI2C_GET_STOP_MODE(hfmpi2c) != FMPI2C_AUTOEND_MODE) in FMPI2C_Master_ISR_DMA()
5488 if (hfmpi2c->XferOptions == FMPI2C_NO_OPTION_FRAME) in FMPI2C_Master_ISR_DMA()
5491 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_STOP; in FMPI2C_Master_ISR_DMA()
5496 FMPI2C_ITMasterSeqCplt(hfmpi2c); in FMPI2C_Master_ISR_DMA()
5504 FMPI2C_ITError(hfmpi2c, HAL_FMPI2C_ERROR_SIZE); in FMPI2C_Master_ISR_DMA()
5511 FMPI2C_ITMasterCplt(hfmpi2c, ITFlags); in FMPI2C_Master_ISR_DMA()
5519 __HAL_UNLOCK(hfmpi2c); in FMPI2C_Master_ISR_DMA()
5532 static HAL_StatusTypeDef FMPI2C_Mem_ISR_DMA(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlag… in FMPI2C_Mem_ISR_DMA() argument
5538 __HAL_LOCK(hfmpi2c); in FMPI2C_Mem_ISR_DMA()
5544 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_Mem_ISR_DMA()
5547 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_AF; in FMPI2C_Mem_ISR_DMA()
5552 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_CPLT_IT); in FMPI2C_Mem_ISR_DMA()
5555 FMPI2C_Flush_TXDR(hfmpi2c); in FMPI2C_Mem_ISR_DMA()
5561 hfmpi2c->Instance->TXDR = hfmpi2c->Memaddress; in FMPI2C_Mem_ISR_DMA()
5564 hfmpi2c->Memaddress = 0xFFFFFFFFU; in FMPI2C_Mem_ISR_DMA()
5570 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in FMPI2C_Mem_ISR_DMA()
5573 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_ERROR_IT); in FMPI2C_Mem_ISR_DMA()
5575 if (hfmpi2c->XferCount != 0U) in FMPI2C_Mem_ISR_DMA()
5578 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in FMPI2C_Mem_ISR_DMA()
5581 if (FMPI2C_GET_DIR(hfmpi2c) == FMPI2C_DIRECTION_RECEIVE) in FMPI2C_Mem_ISR_DMA()
5583 hfmpi2c->XferSize = 1U; in FMPI2C_Mem_ISR_DMA()
5587 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in FMPI2C_Mem_ISR_DMA()
5589 FMPI2C_TransferConfig(hfmpi2c, (uint16_t)hfmpi2c->Devaddress, (uint8_t)hfmpi2c->XferSize, in FMPI2C_Mem_ISR_DMA()
5594 hfmpi2c->XferSize = hfmpi2c->XferCount; in FMPI2C_Mem_ISR_DMA()
5595 FMPI2C_TransferConfig(hfmpi2c, (uint16_t)hfmpi2c->Devaddress, (uint8_t)hfmpi2c->XferSize, in FMPI2C_Mem_ISR_DMA()
5600 hfmpi2c->XferCount -= hfmpi2c->XferSize; in FMPI2C_Mem_ISR_DMA()
5603 if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_RX) in FMPI2C_Mem_ISR_DMA()
5605 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_RXDMAEN; in FMPI2C_Mem_ISR_DMA()
5609 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_TXDMAEN; in FMPI2C_Mem_ISR_DMA()
5616 FMPI2C_ITError(hfmpi2c, HAL_FMPI2C_ERROR_SIZE); in FMPI2C_Mem_ISR_DMA()
5623 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in FMPI2C_Mem_ISR_DMA()
5626 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_ERROR_IT); in FMPI2C_Mem_ISR_DMA()
5628 if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_RX) in FMPI2C_Mem_ISR_DMA()
5633 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in FMPI2C_Mem_ISR_DMA()
5636 if (FMPI2C_GET_DIR(hfmpi2c) == FMPI2C_DIRECTION_RECEIVE) in FMPI2C_Mem_ISR_DMA()
5638 hfmpi2c->XferSize = 1U; in FMPI2C_Mem_ISR_DMA()
5642 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in FMPI2C_Mem_ISR_DMA()
5646 FMPI2C_TransferConfig(hfmpi2c, (uint16_t)hfmpi2c->Devaddress, (uint8_t)hfmpi2c->XferSize, in FMPI2C_Mem_ISR_DMA()
5651 hfmpi2c->XferSize = hfmpi2c->XferCount; in FMPI2C_Mem_ISR_DMA()
5654 FMPI2C_TransferConfig(hfmpi2c, (uint16_t)hfmpi2c->Devaddress, (uint8_t)hfmpi2c->XferSize, in FMPI2C_Mem_ISR_DMA()
5659 hfmpi2c->XferCount -= hfmpi2c->XferSize; in FMPI2C_Mem_ISR_DMA()
5662 if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_RX) in FMPI2C_Mem_ISR_DMA()
5664 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_RXDMAEN; in FMPI2C_Mem_ISR_DMA()
5668 hfmpi2c->Instance->CR1 |= FMPI2C_CR1_TXDMAEN; in FMPI2C_Mem_ISR_DMA()
5675 FMPI2C_ITMasterCplt(hfmpi2c, ITFlags); in FMPI2C_Mem_ISR_DMA()
5683 __HAL_UNLOCK(hfmpi2c); in FMPI2C_Mem_ISR_DMA()
5696 static HAL_StatusTypeDef FMPI2C_Slave_ISR_DMA(struct __FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFl… in FMPI2C_Slave_ISR_DMA() argument
5699 uint32_t tmpoptions = hfmpi2c->XferOptions; in FMPI2C_Slave_ISR_DMA()
5704 __HAL_LOCK(hfmpi2c); in FMPI2C_Slave_ISR_DMA()
5711 FMPI2C_ITSlaveCplt(hfmpi2c, ITFlags); in FMPI2C_Slave_ISR_DMA()
5724 if (hfmpi2c->hdmarx != NULL) in FMPI2C_Slave_ISR_DMA()
5728 if (FMPI2C_GET_DMA_REMAIN_DATA(hfmpi2c->hdmarx) == 0U) in FMPI2C_Slave_ISR_DMA()
5736 if (hfmpi2c->hdmatx != NULL) in FMPI2C_Slave_ISR_DMA()
5740 if (FMPI2C_GET_DMA_REMAIN_DATA(hfmpi2c->hdmatx) == 0U) in FMPI2C_Slave_ISR_DMA()
5749 … if ((hfmpi2c->State == HAL_FMPI2C_STATE_LISTEN) && (tmpoptions == FMPI2C_FIRST_AND_LAST_FRAME)) in FMPI2C_Slave_ISR_DMA()
5754 FMPI2C_ITListenCplt(hfmpi2c, ITFlags); in FMPI2C_Slave_ISR_DMA()
5756 …else if ((hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != FMPI2C_NO_OPTION_FR… in FMPI2C_Slave_ISR_DMA()
5759 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_Slave_ISR_DMA()
5762 FMPI2C_Flush_TXDR(hfmpi2c); in FMPI2C_Slave_ISR_DMA()
5766 FMPI2C_ITSlaveSeqCplt(hfmpi2c); in FMPI2C_Slave_ISR_DMA()
5771 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_Slave_ISR_DMA()
5778 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_Slave_ISR_DMA()
5781 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_AF; in FMPI2C_Slave_ISR_DMA()
5784 tmpstate = hfmpi2c->State; in FMPI2C_Slave_ISR_DMA()
5790 hfmpi2c->PreviousState = FMPI2C_STATE_SLAVE_BUSY_TX; in FMPI2C_Slave_ISR_DMA()
5794 hfmpi2c->PreviousState = FMPI2C_STATE_SLAVE_BUSY_RX; in FMPI2C_Slave_ISR_DMA()
5802 FMPI2C_ITError(hfmpi2c, hfmpi2c->ErrorCode); in FMPI2C_Slave_ISR_DMA()
5809 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_Slave_ISR_DMA()
5815 FMPI2C_ITAddrCplt(hfmpi2c, ITFlags); in FMPI2C_Slave_ISR_DMA()
5823 __HAL_UNLOCK(hfmpi2c); in FMPI2C_Slave_ISR_DMA()
5840 static HAL_StatusTypeDef FMPI2C_RequestMemoryWrite(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddre… in FMPI2C_RequestMemoryWrite() argument
5844 …FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)MemAddSize, FMPI2C_RELOAD_MODE, FMPI2C_GENERAT… in FMPI2C_RequestMemoryWrite()
5847 if (FMPI2C_WaitOnTXISFlagUntilTimeout(hfmpi2c, Timeout, Tickstart) != HAL_OK) in FMPI2C_RequestMemoryWrite()
5856 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_LSB(MemAddress); in FMPI2C_RequestMemoryWrite()
5862 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_MSB(MemAddress); in FMPI2C_RequestMemoryWrite()
5865 if (FMPI2C_WaitOnTXISFlagUntilTimeout(hfmpi2c, Timeout, Tickstart) != HAL_OK) in FMPI2C_RequestMemoryWrite()
5871 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_LSB(MemAddress); in FMPI2C_RequestMemoryWrite()
5875 if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) in FMPI2C_RequestMemoryWrite()
5895 static HAL_StatusTypeDef FMPI2C_RequestMemoryRead(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddres… in FMPI2C_RequestMemoryRead() argument
5899 …FMPI2C_TransferConfig(hfmpi2c, DevAddress, (uint8_t)MemAddSize, FMPI2C_SOFTEND_MODE, FMPI2C_GENERA… in FMPI2C_RequestMemoryRead()
5902 if (FMPI2C_WaitOnTXISFlagUntilTimeout(hfmpi2c, Timeout, Tickstart) != HAL_OK) in FMPI2C_RequestMemoryRead()
5911 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_LSB(MemAddress); in FMPI2C_RequestMemoryRead()
5917 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_MSB(MemAddress); in FMPI2C_RequestMemoryRead()
5920 if (FMPI2C_WaitOnTXISFlagUntilTimeout(hfmpi2c, Timeout, Tickstart) != HAL_OK) in FMPI2C_RequestMemoryRead()
5926 hfmpi2c->Instance->TXDR = FMPI2C_MEM_ADD_LSB(MemAddress); in FMPI2C_RequestMemoryRead()
5930 if (FMPI2C_WaitOnFlagUntilTimeout(hfmpi2c, FMPI2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) in FMPI2C_RequestMemoryRead()
5944 static void FMPI2C_ITAddrCplt(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags) in FMPI2C_ITAddrCplt() argument
5955 …if (((uint32_t)hfmpi2c->State & (uint32_t)HAL_FMPI2C_STATE_LISTEN) == (uint32_t)HAL_FMPI2C_STATE_L… in FMPI2C_ITAddrCplt()
5957 transferdirection = FMPI2C_GET_DIR(hfmpi2c); in FMPI2C_ITAddrCplt()
5958 slaveaddrcode = FMPI2C_GET_ADDR_MATCH(hfmpi2c); in FMPI2C_ITAddrCplt()
5959 ownadd1code = FMPI2C_GET_OWN_ADDRESS1(hfmpi2c); in FMPI2C_ITAddrCplt()
5960 ownadd2code = FMPI2C_GET_OWN_ADDRESS2(hfmpi2c); in FMPI2C_ITAddrCplt()
5963 if (hfmpi2c->Init.AddressingMode == FMPI2C_ADDRESSINGMODE_10BIT) in FMPI2C_ITAddrCplt()
5968 hfmpi2c->AddrEventCount++; in FMPI2C_ITAddrCplt()
5969 if (hfmpi2c->AddrEventCount == 2U) in FMPI2C_ITAddrCplt()
5972 hfmpi2c->AddrEventCount = 0U; in FMPI2C_ITAddrCplt()
5975 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_ADDR); in FMPI2C_ITAddrCplt()
5978 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITAddrCplt()
5982 hfmpi2c->AddrCallback(hfmpi2c, transferdirection, slaveaddrcode); in FMPI2C_ITAddrCplt()
5984 HAL_FMPI2C_AddrCallback(hfmpi2c, transferdirection, slaveaddrcode); in FMPI2C_ITAddrCplt()
5993 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT); in FMPI2C_ITAddrCplt()
5996 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITAddrCplt()
6000 hfmpi2c->AddrCallback(hfmpi2c, transferdirection, slaveaddrcode); in FMPI2C_ITAddrCplt()
6002 HAL_FMPI2C_AddrCallback(hfmpi2c, transferdirection, slaveaddrcode); in FMPI2C_ITAddrCplt()
6010 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT); in FMPI2C_ITAddrCplt()
6013 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITAddrCplt()
6017 hfmpi2c->AddrCallback(hfmpi2c, transferdirection, slaveaddrcode); in FMPI2C_ITAddrCplt()
6019 HAL_FMPI2C_AddrCallback(hfmpi2c, transferdirection, slaveaddrcode); in FMPI2C_ITAddrCplt()
6027 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_ADDR); in FMPI2C_ITAddrCplt()
6030 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITAddrCplt()
6039 static void FMPI2C_ITMasterSeqCplt(FMPI2C_HandleTypeDef *hfmpi2c) in FMPI2C_ITMasterSeqCplt() argument
6042 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_ITMasterSeqCplt()
6046 if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_TX) in FMPI2C_ITMasterSeqCplt()
6048 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_ITMasterSeqCplt()
6049 hfmpi2c->PreviousState = FMPI2C_STATE_MASTER_BUSY_TX; in FMPI2C_ITMasterSeqCplt()
6050 hfmpi2c->XferISR = NULL; in FMPI2C_ITMasterSeqCplt()
6053 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in FMPI2C_ITMasterSeqCplt()
6056 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITMasterSeqCplt()
6060 hfmpi2c->MasterTxCpltCallback(hfmpi2c); in FMPI2C_ITMasterSeqCplt()
6062 HAL_FMPI2C_MasterTxCpltCallback(hfmpi2c); in FMPI2C_ITMasterSeqCplt()
6068 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_ITMasterSeqCplt()
6069 hfmpi2c->PreviousState = FMPI2C_STATE_MASTER_BUSY_RX; in FMPI2C_ITMasterSeqCplt()
6070 hfmpi2c->XferISR = NULL; in FMPI2C_ITMasterSeqCplt()
6073 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT); in FMPI2C_ITMasterSeqCplt()
6076 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITMasterSeqCplt()
6080 hfmpi2c->MasterRxCpltCallback(hfmpi2c); in FMPI2C_ITMasterSeqCplt()
6082 HAL_FMPI2C_MasterRxCpltCallback(hfmpi2c); in FMPI2C_ITMasterSeqCplt()
6092 static void FMPI2C_ITSlaveSeqCplt(FMPI2C_HandleTypeDef *hfmpi2c) in FMPI2C_ITSlaveSeqCplt() argument
6094 uint32_t tmpcr1value = READ_REG(hfmpi2c->Instance->CR1); in FMPI2C_ITSlaveSeqCplt()
6097 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_ITSlaveSeqCplt()
6103 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_TXDMAEN; in FMPI2C_ITSlaveSeqCplt()
6108 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_RXDMAEN; in FMPI2C_ITSlaveSeqCplt()
6115 if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_TX_LISTEN) in FMPI2C_ITSlaveSeqCplt()
6118 hfmpi2c->State = HAL_FMPI2C_STATE_LISTEN; in FMPI2C_ITSlaveSeqCplt()
6119 hfmpi2c->PreviousState = FMPI2C_STATE_SLAVE_BUSY_TX; in FMPI2C_ITSlaveSeqCplt()
6122 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in FMPI2C_ITSlaveSeqCplt()
6125 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITSlaveSeqCplt()
6129 hfmpi2c->SlaveTxCpltCallback(hfmpi2c); in FMPI2C_ITSlaveSeqCplt()
6131 HAL_FMPI2C_SlaveTxCpltCallback(hfmpi2c); in FMPI2C_ITSlaveSeqCplt()
6135 else if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_RX_LISTEN) in FMPI2C_ITSlaveSeqCplt()
6138 hfmpi2c->State = HAL_FMPI2C_STATE_LISTEN; in FMPI2C_ITSlaveSeqCplt()
6139 hfmpi2c->PreviousState = FMPI2C_STATE_SLAVE_BUSY_RX; in FMPI2C_ITSlaveSeqCplt()
6142 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT); in FMPI2C_ITSlaveSeqCplt()
6145 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITSlaveSeqCplt()
6149 hfmpi2c->SlaveRxCpltCallback(hfmpi2c); in FMPI2C_ITSlaveSeqCplt()
6151 HAL_FMPI2C_SlaveRxCpltCallback(hfmpi2c); in FMPI2C_ITSlaveSeqCplt()
6166 static void FMPI2C_ITMasterCplt(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags) in FMPI2C_ITMasterCplt() argument
6173 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in FMPI2C_ITMasterCplt()
6176 if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_TX) in FMPI2C_ITMasterCplt()
6178 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_TX_IT); in FMPI2C_ITMasterCplt()
6179 hfmpi2c->PreviousState = FMPI2C_STATE_MASTER_BUSY_TX; in FMPI2C_ITMasterCplt()
6181 else if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_RX) in FMPI2C_ITMasterCplt()
6183 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT); in FMPI2C_ITMasterCplt()
6184 hfmpi2c->PreviousState = FMPI2C_STATE_MASTER_BUSY_RX; in FMPI2C_ITMasterCplt()
6192 FMPI2C_RESET_CR2(hfmpi2c); in FMPI2C_ITMasterCplt()
6195 hfmpi2c->XferISR = NULL; in FMPI2C_ITMasterCplt()
6196 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in FMPI2C_ITMasterCplt()
6201 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_ITMasterCplt()
6204 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_AF; in FMPI2C_ITMasterCplt()
6208 …if ((hfmpi2c->State == HAL_FMPI2C_STATE_ABORT) && (FMPI2C_CHECK_FLAG(tmpITFlags, FMPI2C_FLAG_RXNE)… in FMPI2C_ITMasterCplt()
6211 tmpreg = (uint8_t)hfmpi2c->Instance->RXDR; in FMPI2C_ITMasterCplt()
6216 FMPI2C_Flush_TXDR(hfmpi2c); in FMPI2C_ITMasterCplt()
6219 tmperror = hfmpi2c->ErrorCode; in FMPI2C_ITMasterCplt()
6222 if ((hfmpi2c->State == HAL_FMPI2C_STATE_ABORT) || (tmperror != HAL_FMPI2C_ERROR_NONE)) in FMPI2C_ITMasterCplt()
6225 FMPI2C_ITError(hfmpi2c, hfmpi2c->ErrorCode); in FMPI2C_ITMasterCplt()
6228 else if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_TX) in FMPI2C_ITMasterCplt()
6230 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_ITMasterCplt()
6231 hfmpi2c->PreviousState = FMPI2C_STATE_NONE; in FMPI2C_ITMasterCplt()
6233 if (hfmpi2c->Mode == HAL_FMPI2C_MODE_MEM) in FMPI2C_ITMasterCplt()
6235 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_ITMasterCplt()
6238 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITMasterCplt()
6242 hfmpi2c->MemTxCpltCallback(hfmpi2c); in FMPI2C_ITMasterCplt()
6244 HAL_FMPI2C_MemTxCpltCallback(hfmpi2c); in FMPI2C_ITMasterCplt()
6249 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_ITMasterCplt()
6252 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITMasterCplt()
6256 hfmpi2c->MasterTxCpltCallback(hfmpi2c); in FMPI2C_ITMasterCplt()
6258 HAL_FMPI2C_MasterTxCpltCallback(hfmpi2c); in FMPI2C_ITMasterCplt()
6263 else if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_RX) in FMPI2C_ITMasterCplt()
6265 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_ITMasterCplt()
6266 hfmpi2c->PreviousState = FMPI2C_STATE_NONE; in FMPI2C_ITMasterCplt()
6268 if (hfmpi2c->Mode == HAL_FMPI2C_MODE_MEM) in FMPI2C_ITMasterCplt()
6270 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_ITMasterCplt()
6273 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITMasterCplt()
6277 hfmpi2c->MemRxCpltCallback(hfmpi2c); in FMPI2C_ITMasterCplt()
6279 HAL_FMPI2C_MemRxCpltCallback(hfmpi2c); in FMPI2C_ITMasterCplt()
6284 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_ITMasterCplt()
6287 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITMasterCplt()
6291 hfmpi2c->MasterRxCpltCallback(hfmpi2c); in FMPI2C_ITMasterCplt()
6293 HAL_FMPI2C_MasterRxCpltCallback(hfmpi2c); in FMPI2C_ITMasterCplt()
6309 static void FMPI2C_ITSlaveCplt(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags) in FMPI2C_ITSlaveCplt() argument
6311 uint32_t tmpcr1value = READ_REG(hfmpi2c->Instance->CR1); in FMPI2C_ITSlaveCplt()
6313 uint32_t tmpoptions = hfmpi2c->XferOptions; in FMPI2C_ITSlaveCplt()
6314 HAL_FMPI2C_StateTypeDef tmpstate = hfmpi2c->State; in FMPI2C_ITSlaveCplt()
6317 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in FMPI2C_ITSlaveCplt()
6322 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT | FMPI2C_XFER_TX_IT); in FMPI2C_ITSlaveCplt()
6323 hfmpi2c->PreviousState = FMPI2C_STATE_SLAVE_BUSY_TX; in FMPI2C_ITSlaveCplt()
6327 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT | FMPI2C_XFER_RX_IT); in FMPI2C_ITSlaveCplt()
6328 hfmpi2c->PreviousState = FMPI2C_STATE_SLAVE_BUSY_RX; in FMPI2C_ITSlaveCplt()
6332 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT | FMPI2C_XFER_TX_IT | FMPI2C_XFER_RX_IT); in FMPI2C_ITSlaveCplt()
6333 hfmpi2c->PreviousState = FMPI2C_STATE_NONE; in FMPI2C_ITSlaveCplt()
6341 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in FMPI2C_ITSlaveCplt()
6344 FMPI2C_RESET_CR2(hfmpi2c); in FMPI2C_ITSlaveCplt()
6347 FMPI2C_Flush_TXDR(hfmpi2c); in FMPI2C_ITSlaveCplt()
6353 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_TXDMAEN; in FMPI2C_ITSlaveCplt()
6355 if (hfmpi2c->hdmatx != NULL) in FMPI2C_ITSlaveCplt()
6357 hfmpi2c->XferCount = (uint16_t)FMPI2C_GET_DMA_REMAIN_DATA(hfmpi2c->hdmatx); in FMPI2C_ITSlaveCplt()
6363 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_RXDMAEN; in FMPI2C_ITSlaveCplt()
6365 if (hfmpi2c->hdmarx != NULL) in FMPI2C_ITSlaveCplt()
6367 hfmpi2c->XferCount = (uint16_t)FMPI2C_GET_DMA_REMAIN_DATA(hfmpi2c->hdmarx); in FMPI2C_ITSlaveCplt()
6382 *hfmpi2c->pBuffPtr = (uint8_t)hfmpi2c->Instance->RXDR; in FMPI2C_ITSlaveCplt()
6385 hfmpi2c->pBuffPtr++; in FMPI2C_ITSlaveCplt()
6387 if ((hfmpi2c->XferSize > 0U)) in FMPI2C_ITSlaveCplt()
6389 hfmpi2c->XferSize--; in FMPI2C_ITSlaveCplt()
6390 hfmpi2c->XferCount--; in FMPI2C_ITSlaveCplt()
6395 if (hfmpi2c->XferCount != 0U) in FMPI2C_ITSlaveCplt()
6398 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_AF; in FMPI2C_ITSlaveCplt()
6408 if (hfmpi2c->XferCount == 0U) in FMPI2C_ITSlaveCplt()
6410 … if ((hfmpi2c->State == HAL_FMPI2C_STATE_LISTEN) && (tmpoptions == FMPI2C_FIRST_AND_LAST_FRAME)) in FMPI2C_ITSlaveCplt()
6415 FMPI2C_ITListenCplt(hfmpi2c, tmpITFlags); in FMPI2C_ITSlaveCplt()
6417 …else if ((hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != FMPI2C_NO_OPTION_FR… in FMPI2C_ITSlaveCplt()
6420 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_ITSlaveCplt()
6423 FMPI2C_Flush_TXDR(hfmpi2c); in FMPI2C_ITSlaveCplt()
6427 FMPI2C_ITSlaveSeqCplt(hfmpi2c); in FMPI2C_ITSlaveCplt()
6432 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_ITSlaveCplt()
6439 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_ITSlaveCplt()
6442 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_AF; in FMPI2C_ITSlaveCplt()
6447 FMPI2C_ITError(hfmpi2c, hfmpi2c->ErrorCode); in FMPI2C_ITSlaveCplt()
6452 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_ITSlaveCplt()
6453 hfmpi2c->XferISR = NULL; in FMPI2C_ITSlaveCplt()
6455 if (hfmpi2c->ErrorCode != HAL_FMPI2C_ERROR_NONE) in FMPI2C_ITSlaveCplt()
6458 FMPI2C_ITError(hfmpi2c, hfmpi2c->ErrorCode); in FMPI2C_ITSlaveCplt()
6461 if (hfmpi2c->State == HAL_FMPI2C_STATE_LISTEN) in FMPI2C_ITSlaveCplt()
6464 FMPI2C_ITListenCplt(hfmpi2c, tmpITFlags); in FMPI2C_ITSlaveCplt()
6467 else if (hfmpi2c->XferOptions != FMPI2C_NO_OPTION_FRAME) in FMPI2C_ITSlaveCplt()
6470 FMPI2C_ITSlaveSeqCplt(hfmpi2c); in FMPI2C_ITSlaveCplt()
6472 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in FMPI2C_ITSlaveCplt()
6473 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_ITSlaveCplt()
6474 hfmpi2c->PreviousState = FMPI2C_STATE_NONE; in FMPI2C_ITSlaveCplt()
6477 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITSlaveCplt()
6481 hfmpi2c->ListenCpltCallback(hfmpi2c); in FMPI2C_ITSlaveCplt()
6483 HAL_FMPI2C_ListenCpltCallback(hfmpi2c); in FMPI2C_ITSlaveCplt()
6487 else if (hfmpi2c->State == HAL_FMPI2C_STATE_BUSY_RX) in FMPI2C_ITSlaveCplt()
6489 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_ITSlaveCplt()
6490 hfmpi2c->PreviousState = FMPI2C_STATE_NONE; in FMPI2C_ITSlaveCplt()
6493 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITSlaveCplt()
6497 hfmpi2c->SlaveRxCpltCallback(hfmpi2c); in FMPI2C_ITSlaveCplt()
6499 HAL_FMPI2C_SlaveRxCpltCallback(hfmpi2c); in FMPI2C_ITSlaveCplt()
6504 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_ITSlaveCplt()
6505 hfmpi2c->PreviousState = FMPI2C_STATE_NONE; in FMPI2C_ITSlaveCplt()
6508 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITSlaveCplt()
6512 hfmpi2c->SlaveTxCpltCallback(hfmpi2c); in FMPI2C_ITSlaveCplt()
6514 HAL_FMPI2C_SlaveTxCpltCallback(hfmpi2c); in FMPI2C_ITSlaveCplt()
6525 static void FMPI2C_ITListenCplt(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ITFlags) in FMPI2C_ITListenCplt() argument
6528 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in FMPI2C_ITListenCplt()
6529 hfmpi2c->PreviousState = FMPI2C_STATE_NONE; in FMPI2C_ITListenCplt()
6530 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_ITListenCplt()
6531 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_ITListenCplt()
6532 hfmpi2c->XferISR = NULL; in FMPI2C_ITListenCplt()
6538 *hfmpi2c->pBuffPtr = (uint8_t)hfmpi2c->Instance->RXDR; in FMPI2C_ITListenCplt()
6541 hfmpi2c->pBuffPtr++; in FMPI2C_ITListenCplt()
6543 if ((hfmpi2c->XferSize > 0U)) in FMPI2C_ITListenCplt()
6545 hfmpi2c->XferSize--; in FMPI2C_ITListenCplt()
6546 hfmpi2c->XferCount--; in FMPI2C_ITListenCplt()
6549 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_AF; in FMPI2C_ITListenCplt()
6554 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT | FMPI2C_XFER_RX_IT | FMPI2C_XFER_TX_IT); in FMPI2C_ITListenCplt()
6557 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_ITListenCplt()
6560 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITListenCplt()
6564 hfmpi2c->ListenCpltCallback(hfmpi2c); in FMPI2C_ITListenCplt()
6566 HAL_FMPI2C_ListenCpltCallback(hfmpi2c); in FMPI2C_ITListenCplt()
6576 static void FMPI2C_ITError(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t ErrorCode) in FMPI2C_ITError() argument
6578 HAL_FMPI2C_StateTypeDef tmpstate = hfmpi2c->State; in FMPI2C_ITError()
6583 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_ITError()
6584 hfmpi2c->XferOptions = FMPI2C_NO_OPTION_FRAME; in FMPI2C_ITError()
6585 hfmpi2c->XferCount = 0U; in FMPI2C_ITError()
6588 hfmpi2c->ErrorCode |= ErrorCode; in FMPI2C_ITError()
6596 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_RX_IT | FMPI2C_XFER_TX_IT); in FMPI2C_ITError()
6599 hfmpi2c->State = HAL_FMPI2C_STATE_LISTEN; in FMPI2C_ITError()
6600 hfmpi2c->XferISR = FMPI2C_Slave_ISR_IT; in FMPI2C_ITError()
6605 FMPI2C_Disable_IRQ(hfmpi2c, FMPI2C_XFER_LISTEN_IT | FMPI2C_XFER_RX_IT | FMPI2C_XFER_TX_IT); in FMPI2C_ITError()
6608 FMPI2C_Flush_TXDR(hfmpi2c); in FMPI2C_ITError()
6612 if (hfmpi2c->State != HAL_FMPI2C_STATE_ABORT) in FMPI2C_ITError()
6615 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_ITError()
6618 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF) == SET) in FMPI2C_ITError()
6620 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_AF) == SET) in FMPI2C_ITError()
6622 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_ITError()
6623 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_AF; in FMPI2C_ITError()
6627 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in FMPI2C_ITError()
6631 hfmpi2c->XferISR = NULL; in FMPI2C_ITError()
6635 tmppreviousstate = hfmpi2c->PreviousState; in FMPI2C_ITError()
6637 if ((hfmpi2c->hdmatx != NULL) && ((tmppreviousstate == FMPI2C_STATE_MASTER_BUSY_TX) || \ in FMPI2C_ITError()
6640 if ((hfmpi2c->Instance->CR1 & FMPI2C_CR1_TXDMAEN) == FMPI2C_CR1_TXDMAEN) in FMPI2C_ITError()
6642 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_TXDMAEN; in FMPI2C_ITError()
6645 if (HAL_DMA_GetState(hfmpi2c->hdmatx) != HAL_DMA_STATE_READY) in FMPI2C_ITError()
6649 hfmpi2c->hdmatx->XferAbortCallback = FMPI2C_DMAAbort; in FMPI2C_ITError()
6652 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITError()
6655 if (HAL_DMA_Abort_IT(hfmpi2c->hdmatx) != HAL_OK) in FMPI2C_ITError()
6658 hfmpi2c->hdmatx->XferAbortCallback(hfmpi2c->hdmatx); in FMPI2C_ITError()
6663 FMPI2C_TreatErrorCallback(hfmpi2c); in FMPI2C_ITError()
6667 else if ((hfmpi2c->hdmarx != NULL) && ((tmppreviousstate == FMPI2C_STATE_MASTER_BUSY_RX) || \ in FMPI2C_ITError()
6670 if ((hfmpi2c->Instance->CR1 & FMPI2C_CR1_RXDMAEN) == FMPI2C_CR1_RXDMAEN) in FMPI2C_ITError()
6672 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_RXDMAEN; in FMPI2C_ITError()
6675 if (HAL_DMA_GetState(hfmpi2c->hdmarx) != HAL_DMA_STATE_READY) in FMPI2C_ITError()
6679 hfmpi2c->hdmarx->XferAbortCallback = FMPI2C_DMAAbort; in FMPI2C_ITError()
6682 __HAL_UNLOCK(hfmpi2c); in FMPI2C_ITError()
6685 if (HAL_DMA_Abort_IT(hfmpi2c->hdmarx) != HAL_OK) in FMPI2C_ITError()
6688 hfmpi2c->hdmarx->XferAbortCallback(hfmpi2c->hdmarx); in FMPI2C_ITError()
6693 FMPI2C_TreatErrorCallback(hfmpi2c); in FMPI2C_ITError()
6698 FMPI2C_TreatErrorCallback(hfmpi2c); in FMPI2C_ITError()
6707 static void FMPI2C_TreatErrorCallback(FMPI2C_HandleTypeDef *hfmpi2c) in FMPI2C_TreatErrorCallback() argument
6709 if (hfmpi2c->State == HAL_FMPI2C_STATE_ABORT) in FMPI2C_TreatErrorCallback()
6711 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_TreatErrorCallback()
6712 hfmpi2c->PreviousState = FMPI2C_STATE_NONE; in FMPI2C_TreatErrorCallback()
6715 __HAL_UNLOCK(hfmpi2c); in FMPI2C_TreatErrorCallback()
6719 hfmpi2c->AbortCpltCallback(hfmpi2c); in FMPI2C_TreatErrorCallback()
6721 HAL_FMPI2C_AbortCpltCallback(hfmpi2c); in FMPI2C_TreatErrorCallback()
6726 hfmpi2c->PreviousState = FMPI2C_STATE_NONE; in FMPI2C_TreatErrorCallback()
6729 __HAL_UNLOCK(hfmpi2c); in FMPI2C_TreatErrorCallback()
6733 hfmpi2c->ErrorCallback(hfmpi2c); in FMPI2C_TreatErrorCallback()
6735 HAL_FMPI2C_ErrorCallback(hfmpi2c); in FMPI2C_TreatErrorCallback()
6745 static void FMPI2C_Flush_TXDR(FMPI2C_HandleTypeDef *hfmpi2c) in FMPI2C_Flush_TXDR() argument
6749 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_TXIS) != RESET) in FMPI2C_Flush_TXDR()
6751 hfmpi2c->Instance->TXDR = 0x00U; in FMPI2C_Flush_TXDR()
6755 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_TXE) == RESET) in FMPI2C_Flush_TXDR()
6757 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_TXE); in FMPI2C_Flush_TXDR()
6769 FMPI2C_HandleTypeDef *hfmpi2c = (FMPI2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in FMPI2C_DMAMasterTransmitCplt() local
6772 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_TXDMAEN; in FMPI2C_DMAMasterTransmitCplt()
6775 if (hfmpi2c->XferCount == 0U) in FMPI2C_DMAMasterTransmitCplt()
6778 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_CPLT_IT); in FMPI2C_DMAMasterTransmitCplt()
6784 hfmpi2c->pBuffPtr += hfmpi2c->XferSize; in FMPI2C_DMAMasterTransmitCplt()
6787 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in FMPI2C_DMAMasterTransmitCplt()
6789 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in FMPI2C_DMAMasterTransmitCplt()
6793 hfmpi2c->XferSize = hfmpi2c->XferCount; in FMPI2C_DMAMasterTransmitCplt()
6797 …if (HAL_DMA_Start_IT(hfmpi2c->hdmatx, (uint32_t)hfmpi2c->pBuffPtr, (uint32_t)&hfmpi2c->Instance->T… in FMPI2C_DMAMasterTransmitCplt()
6798 hfmpi2c->XferSize) != HAL_OK) in FMPI2C_DMAMasterTransmitCplt()
6801 FMPI2C_ITError(hfmpi2c, HAL_FMPI2C_ERROR_DMA); in FMPI2C_DMAMasterTransmitCplt()
6806 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_RELOAD_IT); in FMPI2C_DMAMasterTransmitCplt()
6820 FMPI2C_HandleTypeDef *hfmpi2c = (FMPI2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in FMPI2C_DMASlaveTransmitCplt() local
6821 uint32_t tmpoptions = hfmpi2c->XferOptions; in FMPI2C_DMASlaveTransmitCplt()
6826 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_TXDMAEN; in FMPI2C_DMASlaveTransmitCplt()
6830 FMPI2C_ITSlaveSeqCplt(hfmpi2c); in FMPI2C_DMASlaveTransmitCplt()
6849 FMPI2C_HandleTypeDef *hfmpi2c = (FMPI2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in FMPI2C_DMAMasterReceiveCplt() local
6852 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_RXDMAEN; in FMPI2C_DMAMasterReceiveCplt()
6855 if (hfmpi2c->XferCount == 0U) in FMPI2C_DMAMasterReceiveCplt()
6858 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_CPLT_IT); in FMPI2C_DMAMasterReceiveCplt()
6864 hfmpi2c->pBuffPtr += hfmpi2c->XferSize; in FMPI2C_DMAMasterReceiveCplt()
6867 if (hfmpi2c->XferCount > MAX_NBYTE_SIZE) in FMPI2C_DMAMasterReceiveCplt()
6870 if (FMPI2C_GET_DIR(hfmpi2c) == FMPI2C_DIRECTION_RECEIVE) in FMPI2C_DMAMasterReceiveCplt()
6872 hfmpi2c->XferSize = 1U; in FMPI2C_DMAMasterReceiveCplt()
6876 hfmpi2c->XferSize = MAX_NBYTE_SIZE; in FMPI2C_DMAMasterReceiveCplt()
6881 hfmpi2c->XferSize = hfmpi2c->XferCount; in FMPI2C_DMAMasterReceiveCplt()
6885 …if (HAL_DMA_Start_IT(hfmpi2c->hdmarx, (uint32_t)&hfmpi2c->Instance->RXDR, (uint32_t)hfmpi2c->pBuff… in FMPI2C_DMAMasterReceiveCplt()
6886 hfmpi2c->XferSize) != HAL_OK) in FMPI2C_DMAMasterReceiveCplt()
6889 FMPI2C_ITError(hfmpi2c, HAL_FMPI2C_ERROR_DMA); in FMPI2C_DMAMasterReceiveCplt()
6894 FMPI2C_Enable_IRQ(hfmpi2c, FMPI2C_XFER_RELOAD_IT); in FMPI2C_DMAMasterReceiveCplt()
6908 FMPI2C_HandleTypeDef *hfmpi2c = (FMPI2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in FMPI2C_DMASlaveReceiveCplt() local
6909 uint32_t tmpoptions = hfmpi2c->XferOptions; in FMPI2C_DMASlaveReceiveCplt()
6911 if ((FMPI2C_GET_DMA_REMAIN_DATA(hfmpi2c->hdmarx) == 0U) && \ in FMPI2C_DMASlaveReceiveCplt()
6915 hfmpi2c->Instance->CR1 &= ~FMPI2C_CR1_RXDMAEN; in FMPI2C_DMASlaveReceiveCplt()
6918 FMPI2C_ITSlaveSeqCplt(hfmpi2c); in FMPI2C_DMASlaveReceiveCplt()
6938 FMPI2C_HandleTypeDef *hfmpi2c = (FMPI2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in FMPI2C_DMAError() local
6940 if (hfmpi2c->hdmatx != NULL) in FMPI2C_DMAError()
6942 if (FMPI2C_GET_DMA_REMAIN_DATA(hfmpi2c->hdmatx) == 0U) in FMPI2C_DMAError()
6948 if (hfmpi2c->hdmarx != NULL) in FMPI2C_DMAError()
6950 if (FMPI2C_GET_DMA_REMAIN_DATA(hfmpi2c->hdmarx) == 0U) in FMPI2C_DMAError()
6960 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_NACK; in FMPI2C_DMAError()
6963 FMPI2C_ITError(hfmpi2c, HAL_FMPI2C_ERROR_DMA); in FMPI2C_DMAError()
6977 FMPI2C_HandleTypeDef *hfmpi2c = (FMPI2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in FMPI2C_DMAAbort() local
6980 if (hfmpi2c->hdmatx != NULL) in FMPI2C_DMAAbort()
6982 hfmpi2c->hdmatx->XferAbortCallback = NULL; in FMPI2C_DMAAbort()
6984 if (hfmpi2c->hdmarx != NULL) in FMPI2C_DMAAbort()
6986 hfmpi2c->hdmarx->XferAbortCallback = NULL; in FMPI2C_DMAAbort()
6989 FMPI2C_TreatErrorCallback(hfmpi2c); in FMPI2C_DMAAbort()
7004 static HAL_StatusTypeDef FMPI2C_WaitOnFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Flag… in FMPI2C_WaitOnFlagUntilTimeout() argument
7007 while (__HAL_FMPI2C_GET_FLAG(hfmpi2c, Flag) == Status) in FMPI2C_WaitOnFlagUntilTimeout()
7010 if (FMPI2C_IsErrorOccurred(hfmpi2c, Timeout, Tickstart) != HAL_OK) in FMPI2C_WaitOnFlagUntilTimeout()
7020 if ((__HAL_FMPI2C_GET_FLAG(hfmpi2c, Flag) == Status)) in FMPI2C_WaitOnFlagUntilTimeout()
7022 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_TIMEOUT; in FMPI2C_WaitOnFlagUntilTimeout()
7023 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_WaitOnFlagUntilTimeout()
7024 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_WaitOnFlagUntilTimeout()
7027 __HAL_UNLOCK(hfmpi2c); in FMPI2C_WaitOnFlagUntilTimeout()
7044 static HAL_StatusTypeDef FMPI2C_WaitOnTXISFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t … in FMPI2C_WaitOnTXISFlagUntilTimeout() argument
7047 while (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_TXIS) == RESET) in FMPI2C_WaitOnTXISFlagUntilTimeout()
7050 if (FMPI2C_IsErrorOccurred(hfmpi2c, Timeout, Tickstart) != HAL_OK) in FMPI2C_WaitOnTXISFlagUntilTimeout()
7060 if ((__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_TXIS) == RESET)) in FMPI2C_WaitOnTXISFlagUntilTimeout()
7062 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_TIMEOUT; in FMPI2C_WaitOnTXISFlagUntilTimeout()
7063 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_WaitOnTXISFlagUntilTimeout()
7064 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_WaitOnTXISFlagUntilTimeout()
7067 __HAL_UNLOCK(hfmpi2c); in FMPI2C_WaitOnTXISFlagUntilTimeout()
7085 static HAL_StatusTypeDef FMPI2C_WaitOnSTOPFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t … in FMPI2C_WaitOnSTOPFlagUntilTimeout() argument
7088 while (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF) == RESET) in FMPI2C_WaitOnSTOPFlagUntilTimeout()
7091 if (FMPI2C_IsErrorOccurred(hfmpi2c, Timeout, Tickstart) != HAL_OK) in FMPI2C_WaitOnSTOPFlagUntilTimeout()
7099 if ((__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF) == RESET)) in FMPI2C_WaitOnSTOPFlagUntilTimeout()
7101 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_TIMEOUT; in FMPI2C_WaitOnSTOPFlagUntilTimeout()
7102 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_WaitOnSTOPFlagUntilTimeout()
7103 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_WaitOnSTOPFlagUntilTimeout()
7106 __HAL_UNLOCK(hfmpi2c); in FMPI2C_WaitOnSTOPFlagUntilTimeout()
7123 static HAL_StatusTypeDef FMPI2C_WaitOnRXNEFlagUntilTimeout(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t … in FMPI2C_WaitOnRXNEFlagUntilTimeout() argument
7128 while ((__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_RXNE) == RESET) && (status == HAL_OK)) in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7131 if (FMPI2C_IsErrorOccurred(hfmpi2c, Timeout, Tickstart) != HAL_OK) in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7137 if ((__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF) == SET) && (status == HAL_OK)) in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7141 if ((__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_RXNE) == SET) && (hfmpi2c->XferSize > 0U)) in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7149 if (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_AF) == SET) in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7151 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7152 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_AF; in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7155 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7158 FMPI2C_RESET_CR2(hfmpi2c); in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7160 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7161 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7164 __HAL_UNLOCK(hfmpi2c); in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7170 hfmpi2c->ErrorCode = HAL_FMPI2C_ERROR_NONE; in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7177 if ((__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_RXNE) == RESET)) in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7179 hfmpi2c->ErrorCode |= HAL_FMPI2C_ERROR_TIMEOUT; in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7180 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7183 __HAL_UNLOCK(hfmpi2c); in FMPI2C_WaitOnRXNEFlagUntilTimeout()
7200 static HAL_StatusTypeDef FMPI2C_IsErrorOccurred(FMPI2C_HandleTypeDef *hfmpi2c, uint32_t Timeout, ui… in FMPI2C_IsErrorOccurred() argument
7203 uint32_t itflag = hfmpi2c->Instance->ISR; in FMPI2C_IsErrorOccurred()
7212 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_AF); in FMPI2C_IsErrorOccurred()
7216 while ((__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) in FMPI2C_IsErrorOccurred()
7223 tmp1 = (uint32_t)(hfmpi2c->Instance->CR2 & FMPI2C_CR2_STOP); in FMPI2C_IsErrorOccurred()
7224 tmp2 = hfmpi2c->Mode; in FMPI2C_IsErrorOccurred()
7227 if ((__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_BUSY) != RESET) && \ in FMPI2C_IsErrorOccurred()
7232 hfmpi2c->Instance->CR2 |= FMPI2C_CR2_STOP; in FMPI2C_IsErrorOccurred()
7238 while (__HAL_FMPI2C_GET_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF) == RESET) in FMPI2C_IsErrorOccurred()
7258 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_STOPF); in FMPI2C_IsErrorOccurred()
7267 itflag = hfmpi2c->Instance->ISR; in FMPI2C_IsErrorOccurred()
7276 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_BERR); in FMPI2C_IsErrorOccurred()
7287 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_OVR); in FMPI2C_IsErrorOccurred()
7298 __HAL_FMPI2C_CLEAR_FLAG(hfmpi2c, FMPI2C_FLAG_ARLO); in FMPI2C_IsErrorOccurred()
7306 FMPI2C_Flush_TXDR(hfmpi2c); in FMPI2C_IsErrorOccurred()
7309 FMPI2C_RESET_CR2(hfmpi2c); in FMPI2C_IsErrorOccurred()
7311 hfmpi2c->ErrorCode |= error_code; in FMPI2C_IsErrorOccurred()
7312 hfmpi2c->State = HAL_FMPI2C_STATE_READY; in FMPI2C_IsErrorOccurred()
7313 hfmpi2c->Mode = HAL_FMPI2C_MODE_NONE; in FMPI2C_IsErrorOccurred()
7316 __HAL_UNLOCK(hfmpi2c); in FMPI2C_IsErrorOccurred()
7341 static void FMPI2C_TransferConfig(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t DevAddress, uint8_t Size,… in FMPI2C_TransferConfig() argument
7345 assert_param(IS_FMPI2C_ALL_INSTANCE(hfmpi2c->Instance)); in FMPI2C_TransferConfig()
7355 MODIFY_REG(hfmpi2c->Instance->CR2, \ in FMPI2C_TransferConfig()
7368 static void FMPI2C_Enable_IRQ(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t InterruptRequest) in FMPI2C_Enable_IRQ() argument
7372 if ((hfmpi2c->XferISR != FMPI2C_Master_ISR_DMA) && \ in FMPI2C_Enable_IRQ()
7373 (hfmpi2c->XferISR != FMPI2C_Slave_ISR_DMA) && \ in FMPI2C_Enable_IRQ()
7374 (hfmpi2c->XferISR != FMPI2C_Mem_ISR_DMA)) in FMPI2C_Enable_IRQ()
7449 __HAL_FMPI2C_ENABLE_IT(hfmpi2c, tmpisr); in FMPI2C_Enable_IRQ()
7459 static void FMPI2C_Disable_IRQ(FMPI2C_HandleTypeDef *hfmpi2c, uint16_t InterruptRequest) in FMPI2C_Disable_IRQ() argument
7468 …if (((uint32_t)hfmpi2c->State & (uint32_t)HAL_FMPI2C_STATE_LISTEN) != (uint32_t)HAL_FMPI2C_STATE_L… in FMPI2C_Disable_IRQ()
7480 …if (((uint32_t)hfmpi2c->State & (uint32_t)HAL_FMPI2C_STATE_LISTEN) != (uint32_t)HAL_FMPI2C_STATE_L… in FMPI2C_Disable_IRQ()
7514 __HAL_FMPI2C_DISABLE_IT(hfmpi2c, tmpisr); in FMPI2C_Disable_IRQ()
7522 static void FMPI2C_ConvertOtherXferOptions(FMPI2C_HandleTypeDef *hfmpi2c) in FMPI2C_ConvertOtherXferOptions() argument
7527 if (hfmpi2c->XferOptions == FMPI2C_OTHER_FRAME) in FMPI2C_ConvertOtherXferOptions()
7529 hfmpi2c->XferOptions = FMPI2C_FIRST_FRAME; in FMPI2C_ConvertOtherXferOptions()
7535 else if (hfmpi2c->XferOptions == FMPI2C_OTHER_AND_LAST_FRAME) in FMPI2C_ConvertOtherXferOptions()
7537 hfmpi2c->XferOptions = FMPI2C_FIRST_AND_LAST_FRAME; in FMPI2C_ConvertOtherXferOptions()