Lines Matching refs:hfmpsmbus
213 static HAL_StatusTypeDef FMPSMBUS_WaitOnFlagUntilTimeout(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_…
217 static HAL_StatusTypeDef FMPSMBUS_Master_ISR(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t StatusFlag…
218 static HAL_StatusTypeDef FMPSMBUS_Slave_ISR(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t StatusFlags…
219 static void FMPSMBUS_ITErrorHandler(FMPSMBUS_HandleTypeDef *hfmpsmbus);
222 static void FMPSMBUS_Enable_IRQ(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t InterruptRequest);
223 static void FMPSMBUS_Disable_IRQ(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t InterruptRequest);
226 static void FMPSMBUS_Flush_TXDR(FMPSMBUS_HandleTypeDef *hfmpsmbus);
229 static void FMPSMBUS_TransferConfig(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint16_t DevAddress, uint8_…
233 static void FMPSMBUS_ConvertOtherXferOptions(FMPSMBUS_HandleTypeDef *hfmpsmbus);
290 HAL_StatusTypeDef HAL_FMPSMBUS_Init(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_Init() argument
293 if (hfmpsmbus == NULL) in HAL_FMPSMBUS_Init()
299 assert_param(IS_FMPSMBUS_ALL_INSTANCE(hfmpsmbus->Instance)); in HAL_FMPSMBUS_Init()
300 assert_param(IS_FMPSMBUS_ANALOG_FILTER(hfmpsmbus->Init.AnalogFilter)); in HAL_FMPSMBUS_Init()
301 assert_param(IS_FMPSMBUS_OWN_ADDRESS1(hfmpsmbus->Init.OwnAddress1)); in HAL_FMPSMBUS_Init()
302 assert_param(IS_FMPSMBUS_ADDRESSING_MODE(hfmpsmbus->Init.AddressingMode)); in HAL_FMPSMBUS_Init()
303 assert_param(IS_FMPSMBUS_DUAL_ADDRESS(hfmpsmbus->Init.DualAddressMode)); in HAL_FMPSMBUS_Init()
304 assert_param(IS_FMPSMBUS_OWN_ADDRESS2(hfmpsmbus->Init.OwnAddress2)); in HAL_FMPSMBUS_Init()
305 assert_param(IS_FMPSMBUS_OWN_ADDRESS2_MASK(hfmpsmbus->Init.OwnAddress2Masks)); in HAL_FMPSMBUS_Init()
306 assert_param(IS_FMPSMBUS_GENERAL_CALL(hfmpsmbus->Init.GeneralCallMode)); in HAL_FMPSMBUS_Init()
307 assert_param(IS_FMPSMBUS_NO_STRETCH(hfmpsmbus->Init.NoStretchMode)); in HAL_FMPSMBUS_Init()
308 assert_param(IS_FMPSMBUS_PEC(hfmpsmbus->Init.PacketErrorCheckMode)); in HAL_FMPSMBUS_Init()
309 assert_param(IS_FMPSMBUS_PERIPHERAL_MODE(hfmpsmbus->Init.PeripheralMode)); in HAL_FMPSMBUS_Init()
311 if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_RESET) in HAL_FMPSMBUS_Init()
314 hfmpsmbus->Lock = HAL_UNLOCKED; in HAL_FMPSMBUS_Init()
317 …hfmpsmbus->MasterTxCpltCallback = HAL_FMPSMBUS_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCa… in HAL_FMPSMBUS_Init()
318 …hfmpsmbus->MasterRxCpltCallback = HAL_FMPSMBUS_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCa… in HAL_FMPSMBUS_Init()
319 …hfmpsmbus->SlaveTxCpltCallback = HAL_FMPSMBUS_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCal… in HAL_FMPSMBUS_Init()
320 …hfmpsmbus->SlaveRxCpltCallback = HAL_FMPSMBUS_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCal… in HAL_FMPSMBUS_Init()
321 …hfmpsmbus->ListenCpltCallback = HAL_FMPSMBUS_ListenCpltCallback; /* Legacy weak ListenCpltCall… in HAL_FMPSMBUS_Init()
322 …hfmpsmbus->ErrorCallback = HAL_FMPSMBUS_ErrorCallback; /* Legacy weak ErrorCallback … in HAL_FMPSMBUS_Init()
323 …hfmpsmbus->AddrCallback = HAL_FMPSMBUS_AddrCallback; /* Legacy weak AddrCallback … in HAL_FMPSMBUS_Init()
325 if (hfmpsmbus->MspInitCallback == NULL) in HAL_FMPSMBUS_Init()
327 hfmpsmbus->MspInitCallback = HAL_FMPSMBUS_MspInit; /* Legacy weak MspInit */ in HAL_FMPSMBUS_Init()
331 hfmpsmbus->MspInitCallback(hfmpsmbus); in HAL_FMPSMBUS_Init()
334 HAL_FMPSMBUS_MspInit(hfmpsmbus); in HAL_FMPSMBUS_Init()
338 hfmpsmbus->State = HAL_FMPSMBUS_STATE_BUSY; in HAL_FMPSMBUS_Init()
341 __HAL_FMPSMBUS_DISABLE(hfmpsmbus); in HAL_FMPSMBUS_Init()
345 hfmpsmbus->Instance->TIMINGR = hfmpsmbus->Init.Timing & TIMING_CLEAR_MASK; in HAL_FMPSMBUS_Init()
349 hfmpsmbus->Instance->TIMEOUTR &= ~FMPI2C_TIMEOUTR_TIMOUTEN; in HAL_FMPSMBUS_Init()
350 hfmpsmbus->Instance->TIMEOUTR &= ~FMPI2C_TIMEOUTR_TEXTEN; in HAL_FMPSMBUS_Init()
351 hfmpsmbus->Instance->TIMEOUTR = hfmpsmbus->Init.SMBusTimeout; in HAL_FMPSMBUS_Init()
355 hfmpsmbus->Instance->OAR1 &= ~FMPI2C_OAR1_OA1EN; in HAL_FMPSMBUS_Init()
357 if (hfmpsmbus->Init.OwnAddress1 != 0UL) in HAL_FMPSMBUS_Init()
359 if (hfmpsmbus->Init.AddressingMode == FMPSMBUS_ADDRESSINGMODE_7BIT) in HAL_FMPSMBUS_Init()
361 hfmpsmbus->Instance->OAR1 = (FMPI2C_OAR1_OA1EN | hfmpsmbus->Init.OwnAddress1); in HAL_FMPSMBUS_Init()
365 …hfmpsmbus->Instance->OAR1 = (FMPI2C_OAR1_OA1EN | FMPI2C_OAR1_OA1MODE | hfmpsmbus->Init.OwnAddress1… in HAL_FMPSMBUS_Init()
371 if (hfmpsmbus->Init.AddressingMode == FMPSMBUS_ADDRESSINGMODE_10BIT) in HAL_FMPSMBUS_Init()
373 hfmpsmbus->Instance->CR2 = (FMPI2C_CR2_ADD10); in HAL_FMPSMBUS_Init()
377 hfmpsmbus->Instance->CR2 |= (FMPI2C_CR2_AUTOEND | FMPI2C_CR2_NACK); in HAL_FMPSMBUS_Init()
381 hfmpsmbus->Instance->OAR2 = (hfmpsmbus->Init.DualAddressMode | hfmpsmbus->Init.OwnAddress2 | \ in HAL_FMPSMBUS_Init()
382 (hfmpsmbus->Init.OwnAddress2Masks << 8U)); in HAL_FMPSMBUS_Init()
386 hfmpsmbus->Instance->CR1 = (hfmpsmbus->Init.GeneralCallMode | hfmpsmbus->Init.NoStretchMode | \ in HAL_FMPSMBUS_Init()
387 … hfmpsmbus->Init.PacketErrorCheckMode | hfmpsmbus->Init.PeripheralMode | \ in HAL_FMPSMBUS_Init()
388 hfmpsmbus->Init.AnalogFilter); in HAL_FMPSMBUS_Init()
392 if ((hfmpsmbus->Init.PacketErrorCheckMode == FMPSMBUS_PEC_ENABLE) && \ in HAL_FMPSMBUS_Init()
393 ((hfmpsmbus->Init.PeripheralMode == FMPSMBUS_PERIPHERAL_MODE_FMPSMBUS_SLAVE) || \ in HAL_FMPSMBUS_Init()
394 (hfmpsmbus->Init.PeripheralMode == FMPSMBUS_PERIPHERAL_MODE_FMPSMBUS_SLAVE_ARP))) in HAL_FMPSMBUS_Init()
396 hfmpsmbus->Instance->CR1 |= FMPI2C_CR1_SBC; in HAL_FMPSMBUS_Init()
400 __HAL_FMPSMBUS_ENABLE(hfmpsmbus); in HAL_FMPSMBUS_Init()
402 hfmpsmbus->ErrorCode = HAL_FMPSMBUS_ERROR_NONE; in HAL_FMPSMBUS_Init()
403 hfmpsmbus->PreviousState = HAL_FMPSMBUS_STATE_READY; in HAL_FMPSMBUS_Init()
404 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in HAL_FMPSMBUS_Init()
415 HAL_StatusTypeDef HAL_FMPSMBUS_DeInit(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_DeInit() argument
418 if (hfmpsmbus == NULL) in HAL_FMPSMBUS_DeInit()
424 assert_param(IS_FMPSMBUS_ALL_INSTANCE(hfmpsmbus->Instance)); in HAL_FMPSMBUS_DeInit()
426 hfmpsmbus->State = HAL_FMPSMBUS_STATE_BUSY; in HAL_FMPSMBUS_DeInit()
429 __HAL_FMPSMBUS_DISABLE(hfmpsmbus); in HAL_FMPSMBUS_DeInit()
432 if (hfmpsmbus->MspDeInitCallback == NULL) in HAL_FMPSMBUS_DeInit()
434 hfmpsmbus->MspDeInitCallback = HAL_FMPSMBUS_MspDeInit; /* Legacy weak MspDeInit */ in HAL_FMPSMBUS_DeInit()
438 hfmpsmbus->MspDeInitCallback(hfmpsmbus); in HAL_FMPSMBUS_DeInit()
441 HAL_FMPSMBUS_MspDeInit(hfmpsmbus); in HAL_FMPSMBUS_DeInit()
444 hfmpsmbus->ErrorCode = HAL_FMPSMBUS_ERROR_NONE; in HAL_FMPSMBUS_DeInit()
445 hfmpsmbus->PreviousState = HAL_FMPSMBUS_STATE_RESET; in HAL_FMPSMBUS_DeInit()
446 hfmpsmbus->State = HAL_FMPSMBUS_STATE_RESET; in HAL_FMPSMBUS_DeInit()
449 __HAL_UNLOCK(hfmpsmbus); in HAL_FMPSMBUS_DeInit()
460 __weak void HAL_FMPSMBUS_MspInit(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_MspInit() argument
463 UNUSED(hfmpsmbus); in HAL_FMPSMBUS_MspInit()
476 __weak void HAL_FMPSMBUS_MspDeInit(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_MspDeInit() argument
479 UNUSED(hfmpsmbus); in HAL_FMPSMBUS_MspDeInit()
495 HAL_StatusTypeDef HAL_FMPSMBUS_ConfigAnalogFilter(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t Analo… in HAL_FMPSMBUS_ConfigAnalogFilter() argument
498 assert_param(IS_FMPSMBUS_ALL_INSTANCE(hfmpsmbus->Instance)); in HAL_FMPSMBUS_ConfigAnalogFilter()
501 if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_READY) in HAL_FMPSMBUS_ConfigAnalogFilter()
504 __HAL_LOCK(hfmpsmbus); in HAL_FMPSMBUS_ConfigAnalogFilter()
506 hfmpsmbus->State = HAL_FMPSMBUS_STATE_BUSY; in HAL_FMPSMBUS_ConfigAnalogFilter()
509 __HAL_FMPSMBUS_DISABLE(hfmpsmbus); in HAL_FMPSMBUS_ConfigAnalogFilter()
512 hfmpsmbus->Instance->CR1 &= ~(FMPI2C_CR1_ANFOFF); in HAL_FMPSMBUS_ConfigAnalogFilter()
515 hfmpsmbus->Instance->CR1 |= AnalogFilter; in HAL_FMPSMBUS_ConfigAnalogFilter()
517 __HAL_FMPSMBUS_ENABLE(hfmpsmbus); in HAL_FMPSMBUS_ConfigAnalogFilter()
519 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in HAL_FMPSMBUS_ConfigAnalogFilter()
522 __HAL_UNLOCK(hfmpsmbus); in HAL_FMPSMBUS_ConfigAnalogFilter()
539 HAL_StatusTypeDef HAL_FMPSMBUS_ConfigDigitalFilter(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t Digi… in HAL_FMPSMBUS_ConfigDigitalFilter() argument
544 assert_param(IS_FMPSMBUS_ALL_INSTANCE(hfmpsmbus->Instance)); in HAL_FMPSMBUS_ConfigDigitalFilter()
547 if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_READY) in HAL_FMPSMBUS_ConfigDigitalFilter()
550 __HAL_LOCK(hfmpsmbus); in HAL_FMPSMBUS_ConfigDigitalFilter()
552 hfmpsmbus->State = HAL_FMPSMBUS_STATE_BUSY; in HAL_FMPSMBUS_ConfigDigitalFilter()
555 __HAL_FMPSMBUS_DISABLE(hfmpsmbus); in HAL_FMPSMBUS_ConfigDigitalFilter()
558 tmpreg = hfmpsmbus->Instance->CR1; in HAL_FMPSMBUS_ConfigDigitalFilter()
567 hfmpsmbus->Instance->CR1 = tmpreg; in HAL_FMPSMBUS_ConfigDigitalFilter()
569 __HAL_FMPSMBUS_ENABLE(hfmpsmbus); in HAL_FMPSMBUS_ConfigDigitalFilter()
571 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in HAL_FMPSMBUS_ConfigDigitalFilter()
574 __HAL_UNLOCK(hfmpsmbus); in HAL_FMPSMBUS_ConfigDigitalFilter()
606 HAL_StatusTypeDef HAL_FMPSMBUS_RegisterCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus, in HAL_FMPSMBUS_RegisterCallback() argument
615 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_INVALID_CALLBACK; in HAL_FMPSMBUS_RegisterCallback()
620 if (HAL_FMPSMBUS_STATE_READY == hfmpsmbus->State) in HAL_FMPSMBUS_RegisterCallback()
625 hfmpsmbus->MasterTxCpltCallback = pCallback; in HAL_FMPSMBUS_RegisterCallback()
629 hfmpsmbus->MasterRxCpltCallback = pCallback; in HAL_FMPSMBUS_RegisterCallback()
633 hfmpsmbus->SlaveTxCpltCallback = pCallback; in HAL_FMPSMBUS_RegisterCallback()
637 hfmpsmbus->SlaveRxCpltCallback = pCallback; in HAL_FMPSMBUS_RegisterCallback()
641 hfmpsmbus->ListenCpltCallback = pCallback; in HAL_FMPSMBUS_RegisterCallback()
645 hfmpsmbus->ErrorCallback = pCallback; in HAL_FMPSMBUS_RegisterCallback()
649 hfmpsmbus->MspInitCallback = pCallback; in HAL_FMPSMBUS_RegisterCallback()
653 hfmpsmbus->MspDeInitCallback = pCallback; in HAL_FMPSMBUS_RegisterCallback()
658 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_INVALID_CALLBACK; in HAL_FMPSMBUS_RegisterCallback()
665 else if (HAL_FMPSMBUS_STATE_RESET == hfmpsmbus->State) in HAL_FMPSMBUS_RegisterCallback()
670 hfmpsmbus->MspInitCallback = pCallback; in HAL_FMPSMBUS_RegisterCallback()
674 hfmpsmbus->MspDeInitCallback = pCallback; in HAL_FMPSMBUS_RegisterCallback()
679 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_INVALID_CALLBACK; in HAL_FMPSMBUS_RegisterCallback()
689 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_INVALID_CALLBACK; in HAL_FMPSMBUS_RegisterCallback()
719 HAL_StatusTypeDef HAL_FMPSMBUS_UnRegisterCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus, in HAL_FMPSMBUS_UnRegisterCallback() argument
724 if (HAL_FMPSMBUS_STATE_READY == hfmpsmbus->State) in HAL_FMPSMBUS_UnRegisterCallback()
729 …hfmpsmbus->MasterTxCpltCallback = HAL_FMPSMBUS_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCa… in HAL_FMPSMBUS_UnRegisterCallback()
733 …hfmpsmbus->MasterRxCpltCallback = HAL_FMPSMBUS_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCa… in HAL_FMPSMBUS_UnRegisterCallback()
737 …hfmpsmbus->SlaveTxCpltCallback = HAL_FMPSMBUS_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCal… in HAL_FMPSMBUS_UnRegisterCallback()
741 …hfmpsmbus->SlaveRxCpltCallback = HAL_FMPSMBUS_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCal… in HAL_FMPSMBUS_UnRegisterCallback()
745 …hfmpsmbus->ListenCpltCallback = HAL_FMPSMBUS_ListenCpltCallback; /* Legacy weak ListenCpltCall… in HAL_FMPSMBUS_UnRegisterCallback()
749 …hfmpsmbus->ErrorCallback = HAL_FMPSMBUS_ErrorCallback; /* Legacy weak ErrorCallback … in HAL_FMPSMBUS_UnRegisterCallback()
753 …hfmpsmbus->MspInitCallback = HAL_FMPSMBUS_MspInit; /* Legacy weak MspInit … in HAL_FMPSMBUS_UnRegisterCallback()
757 …hfmpsmbus->MspDeInitCallback = HAL_FMPSMBUS_MspDeInit; /* Legacy weak MspDeInit … in HAL_FMPSMBUS_UnRegisterCallback()
762 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_INVALID_CALLBACK; in HAL_FMPSMBUS_UnRegisterCallback()
769 else if (HAL_FMPSMBUS_STATE_RESET == hfmpsmbus->State) in HAL_FMPSMBUS_UnRegisterCallback()
774 …hfmpsmbus->MspInitCallback = HAL_FMPSMBUS_MspInit; /* Legacy weak MspInit … in HAL_FMPSMBUS_UnRegisterCallback()
778 …hfmpsmbus->MspDeInitCallback = HAL_FMPSMBUS_MspDeInit; /* Legacy weak MspDeInit … in HAL_FMPSMBUS_UnRegisterCallback()
783 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_INVALID_CALLBACK; in HAL_FMPSMBUS_UnRegisterCallback()
793 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_INVALID_CALLBACK; in HAL_FMPSMBUS_UnRegisterCallback()
810 HAL_StatusTypeDef HAL_FMPSMBUS_RegisterAddrCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus, in HAL_FMPSMBUS_RegisterAddrCallback() argument
818 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_INVALID_CALLBACK; in HAL_FMPSMBUS_RegisterAddrCallback()
823 if (HAL_FMPSMBUS_STATE_READY == hfmpsmbus->State) in HAL_FMPSMBUS_RegisterAddrCallback()
825 hfmpsmbus->AddrCallback = pCallback; in HAL_FMPSMBUS_RegisterAddrCallback()
830 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_INVALID_CALLBACK; in HAL_FMPSMBUS_RegisterAddrCallback()
846 HAL_StatusTypeDef HAL_FMPSMBUS_UnRegisterAddrCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_UnRegisterAddrCallback() argument
850 if (HAL_FMPSMBUS_STATE_READY == hfmpsmbus->State) in HAL_FMPSMBUS_UnRegisterAddrCallback()
852 hfmpsmbus->AddrCallback = HAL_FMPSMBUS_AddrCallback; /* Legacy weak AddrCallback */ in HAL_FMPSMBUS_UnRegisterAddrCallback()
857 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_INVALID_CALLBACK; in HAL_FMPSMBUS_UnRegisterAddrCallback()
926 HAL_StatusTypeDef HAL_FMPSMBUS_Master_Transmit_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint16_t DevAd… in HAL_FMPSMBUS_Master_Transmit_IT() argument
935 if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_READY) in HAL_FMPSMBUS_Master_Transmit_IT()
938 __HAL_LOCK(hfmpsmbus); in HAL_FMPSMBUS_Master_Transmit_IT()
940 hfmpsmbus->State = HAL_FMPSMBUS_STATE_MASTER_BUSY_TX; in HAL_FMPSMBUS_Master_Transmit_IT()
941 hfmpsmbus->ErrorCode = HAL_FMPSMBUS_ERROR_NONE; in HAL_FMPSMBUS_Master_Transmit_IT()
943 hfmpsmbus->pBuffPtr = pData; in HAL_FMPSMBUS_Master_Transmit_IT()
944 hfmpsmbus->XferCount = Size; in HAL_FMPSMBUS_Master_Transmit_IT()
945 hfmpsmbus->XferOptions = XferOptions; in HAL_FMPSMBUS_Master_Transmit_IT()
949 if (hfmpsmbus->pBuffPtr == NULL) in HAL_FMPSMBUS_Master_Transmit_IT()
951 hfmpsmbus->XferOptions &= ~FMPSMBUS_AUTOEND_MODE; in HAL_FMPSMBUS_Master_Transmit_IT()
956 hfmpsmbus->XferSize = MAX_NBYTE_SIZE; in HAL_FMPSMBUS_Master_Transmit_IT()
960 hfmpsmbus->XferSize = Size; in HAL_FMPSMBUS_Master_Transmit_IT()
963 sizetoxfer = hfmpsmbus->XferSize; in HAL_FMPSMBUS_Master_Transmit_IT()
969 if (hfmpsmbus->pBuffPtr != NULL) in HAL_FMPSMBUS_Master_Transmit_IT()
973 hfmpsmbus->Instance->TXDR = *hfmpsmbus->pBuffPtr; in HAL_FMPSMBUS_Master_Transmit_IT()
976 hfmpsmbus->pBuffPtr++; in HAL_FMPSMBUS_Master_Transmit_IT()
978 hfmpsmbus->XferCount--; in HAL_FMPSMBUS_Master_Transmit_IT()
979 hfmpsmbus->XferSize--; in HAL_FMPSMBUS_Master_Transmit_IT()
989 if ((sizetoxfer < hfmpsmbus->XferCount) && (sizetoxfer == MAX_NBYTE_SIZE)) in HAL_FMPSMBUS_Master_Transmit_IT()
991 FMPSMBUS_TransferConfig(hfmpsmbus, DevAddress, (uint8_t)sizetoxfer, in HAL_FMPSMBUS_Master_Transmit_IT()
992 … FMPSMBUS_RELOAD_MODE | (hfmpsmbus->XferOptions & FMPSMBUS_SENDPEC_MODE), in HAL_FMPSMBUS_Master_Transmit_IT()
1001 tmp = hfmpsmbus->XferOptions; in HAL_FMPSMBUS_Master_Transmit_IT()
1003 if ((hfmpsmbus->PreviousState == HAL_FMPSMBUS_STATE_MASTER_BUSY_TX) && \ in HAL_FMPSMBUS_Master_Transmit_IT()
1006 FMPSMBUS_TransferConfig(hfmpsmbus, DevAddress, (uint8_t)sizetoxfer, hfmpsmbus->XferOptions, in HAL_FMPSMBUS_Master_Transmit_IT()
1013 FMPSMBUS_ConvertOtherXferOptions(hfmpsmbus); in HAL_FMPSMBUS_Master_Transmit_IT()
1016 FMPSMBUS_TransferConfig(hfmpsmbus, DevAddress, (uint8_t)sizetoxfer, in HAL_FMPSMBUS_Master_Transmit_IT()
1017 hfmpsmbus->XferOptions, in HAL_FMPSMBUS_Master_Transmit_IT()
1023 if (FMPSMBUS_GET_PEC_MODE(hfmpsmbus) != 0UL) in HAL_FMPSMBUS_Master_Transmit_IT()
1025 if (hfmpsmbus->XferSize > 0U) in HAL_FMPSMBUS_Master_Transmit_IT()
1027 hfmpsmbus->XferSize--; in HAL_FMPSMBUS_Master_Transmit_IT()
1028 hfmpsmbus->XferCount--; in HAL_FMPSMBUS_Master_Transmit_IT()
1038 __HAL_UNLOCK(hfmpsmbus); in HAL_FMPSMBUS_Master_Transmit_IT()
1043 FMPSMBUS_Enable_IRQ(hfmpsmbus, FMPSMBUS_IT_TX); in HAL_FMPSMBUS_Master_Transmit_IT()
1064 HAL_StatusTypeDef HAL_FMPSMBUS_Master_Receive_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint16_t DevAdd… in HAL_FMPSMBUS_Master_Receive_IT() argument
1072 if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_READY) in HAL_FMPSMBUS_Master_Receive_IT()
1075 __HAL_LOCK(hfmpsmbus); in HAL_FMPSMBUS_Master_Receive_IT()
1077 hfmpsmbus->State = HAL_FMPSMBUS_STATE_MASTER_BUSY_RX; in HAL_FMPSMBUS_Master_Receive_IT()
1078 hfmpsmbus->ErrorCode = HAL_FMPSMBUS_ERROR_NONE; in HAL_FMPSMBUS_Master_Receive_IT()
1081 hfmpsmbus->pBuffPtr = pData; in HAL_FMPSMBUS_Master_Receive_IT()
1082 hfmpsmbus->XferCount = Size; in HAL_FMPSMBUS_Master_Receive_IT()
1083 hfmpsmbus->XferOptions = XferOptions; in HAL_FMPSMBUS_Master_Receive_IT()
1087 if (hfmpsmbus->pBuffPtr == NULL) in HAL_FMPSMBUS_Master_Receive_IT()
1089 hfmpsmbus->XferOptions &= ~FMPSMBUS_AUTOEND_MODE; in HAL_FMPSMBUS_Master_Receive_IT()
1094 hfmpsmbus->XferSize = MAX_NBYTE_SIZE; in HAL_FMPSMBUS_Master_Receive_IT()
1098 hfmpsmbus->XferSize = Size; in HAL_FMPSMBUS_Master_Receive_IT()
1103 if ((hfmpsmbus->XferSize < hfmpsmbus->XferCount) && (hfmpsmbus->XferSize == MAX_NBYTE_SIZE)) in HAL_FMPSMBUS_Master_Receive_IT()
1105 FMPSMBUS_TransferConfig(hfmpsmbus, DevAddress, (uint8_t)hfmpsmbus->XferSize, in HAL_FMPSMBUS_Master_Receive_IT()
1106 … FMPSMBUS_RELOAD_MODE | (hfmpsmbus->XferOptions & FMPSMBUS_SENDPEC_MODE), in HAL_FMPSMBUS_Master_Receive_IT()
1115 tmp = hfmpsmbus->XferOptions; in HAL_FMPSMBUS_Master_Receive_IT()
1117 if ((hfmpsmbus->PreviousState == HAL_FMPSMBUS_STATE_MASTER_BUSY_RX) && \ in HAL_FMPSMBUS_Master_Receive_IT()
1120 …FMPSMBUS_TransferConfig(hfmpsmbus, DevAddress, (uint8_t)hfmpsmbus->XferSize, hfmpsmbus->XferOption… in HAL_FMPSMBUS_Master_Receive_IT()
1127 FMPSMBUS_ConvertOtherXferOptions(hfmpsmbus); in HAL_FMPSMBUS_Master_Receive_IT()
1130 FMPSMBUS_TransferConfig(hfmpsmbus, DevAddress, (uint8_t)hfmpsmbus->XferSize, in HAL_FMPSMBUS_Master_Receive_IT()
1131 hfmpsmbus->XferOptions, in HAL_FMPSMBUS_Master_Receive_IT()
1137 __HAL_UNLOCK(hfmpsmbus); in HAL_FMPSMBUS_Master_Receive_IT()
1142 FMPSMBUS_Enable_IRQ(hfmpsmbus, FMPSMBUS_IT_RX); in HAL_FMPSMBUS_Master_Receive_IT()
1161 HAL_StatusTypeDef HAL_FMPSMBUS_Master_Abort_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint16_t DevAddre… in HAL_FMPSMBUS_Master_Abort_IT() argument
1163 if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_READY) in HAL_FMPSMBUS_Master_Abort_IT()
1166 __HAL_LOCK(hfmpsmbus); in HAL_FMPSMBUS_Master_Abort_IT()
1170 if (hfmpsmbus->PreviousState == HAL_FMPSMBUS_STATE_MASTER_BUSY_TX) in HAL_FMPSMBUS_Master_Abort_IT()
1172 hfmpsmbus->State = HAL_FMPSMBUS_STATE_MASTER_BUSY_TX; in HAL_FMPSMBUS_Master_Abort_IT()
1174 else if (hfmpsmbus->PreviousState == HAL_FMPSMBUS_STATE_MASTER_BUSY_RX) in HAL_FMPSMBUS_Master_Abort_IT()
1176 hfmpsmbus->State = HAL_FMPSMBUS_STATE_MASTER_BUSY_RX; in HAL_FMPSMBUS_Master_Abort_IT()
1184 hfmpsmbus->ErrorCode = HAL_FMPSMBUS_ERROR_NONE; in HAL_FMPSMBUS_Master_Abort_IT()
1188 FMPSMBUS_TransferConfig(hfmpsmbus, DevAddress, 1, FMPSMBUS_AUTOEND_MODE, FMPSMBUS_NO_STARTSTOP); in HAL_FMPSMBUS_Master_Abort_IT()
1191 __HAL_UNLOCK(hfmpsmbus); in HAL_FMPSMBUS_Master_Abort_IT()
1196 if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_MASTER_BUSY_TX) in HAL_FMPSMBUS_Master_Abort_IT()
1198 FMPSMBUS_Enable_IRQ(hfmpsmbus, FMPSMBUS_IT_TX); in HAL_FMPSMBUS_Master_Abort_IT()
1200 else if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_MASTER_BUSY_RX) in HAL_FMPSMBUS_Master_Abort_IT()
1202 FMPSMBUS_Enable_IRQ(hfmpsmbus, FMPSMBUS_IT_RX); in HAL_FMPSMBUS_Master_Abort_IT()
1226 HAL_StatusTypeDef HAL_FMPSMBUS_Slave_Transmit_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint8_t *pData,… in HAL_FMPSMBUS_Slave_Transmit_IT() argument
1232 if ((hfmpsmbus->State & HAL_FMPSMBUS_STATE_LISTEN) == HAL_FMPSMBUS_STATE_LISTEN) in HAL_FMPSMBUS_Slave_Transmit_IT()
1236 hfmpsmbus->ErrorCode = HAL_FMPSMBUS_ERROR_INVALID_PARAM; in HAL_FMPSMBUS_Slave_Transmit_IT()
1241 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_ADDR | FMPSMBUS_IT_TX); in HAL_FMPSMBUS_Slave_Transmit_IT()
1244 __HAL_LOCK(hfmpsmbus); in HAL_FMPSMBUS_Slave_Transmit_IT()
1246 hfmpsmbus->State = (HAL_FMPSMBUS_STATE_SLAVE_BUSY_TX | HAL_FMPSMBUS_STATE_LISTEN); in HAL_FMPSMBUS_Slave_Transmit_IT()
1247 hfmpsmbus->ErrorCode = HAL_FMPSMBUS_ERROR_NONE; in HAL_FMPSMBUS_Slave_Transmit_IT()
1250 hfmpsmbus->Instance->CR1 |= FMPI2C_CR1_SBC; in HAL_FMPSMBUS_Slave_Transmit_IT()
1253 hfmpsmbus->Instance->CR2 &= ~FMPI2C_CR2_NACK; in HAL_FMPSMBUS_Slave_Transmit_IT()
1256 hfmpsmbus->pBuffPtr = pData; in HAL_FMPSMBUS_Slave_Transmit_IT()
1257 hfmpsmbus->XferCount = Size; in HAL_FMPSMBUS_Slave_Transmit_IT()
1258 hfmpsmbus->XferOptions = XferOptions; in HAL_FMPSMBUS_Slave_Transmit_IT()
1261 FMPSMBUS_ConvertOtherXferOptions(hfmpsmbus); in HAL_FMPSMBUS_Slave_Transmit_IT()
1265 hfmpsmbus->XferSize = MAX_NBYTE_SIZE; in HAL_FMPSMBUS_Slave_Transmit_IT()
1269 hfmpsmbus->XferSize = Size; in HAL_FMPSMBUS_Slave_Transmit_IT()
1273 if ((hfmpsmbus->XferSize < hfmpsmbus->XferCount) && (hfmpsmbus->XferSize == MAX_NBYTE_SIZE)) in HAL_FMPSMBUS_Slave_Transmit_IT()
1275 FMPSMBUS_TransferConfig(hfmpsmbus, 0, (uint8_t)hfmpsmbus->XferSize, in HAL_FMPSMBUS_Slave_Transmit_IT()
1276 … FMPSMBUS_RELOAD_MODE | (hfmpsmbus->XferOptions & FMPSMBUS_SENDPEC_MODE), in HAL_FMPSMBUS_Slave_Transmit_IT()
1282 FMPSMBUS_TransferConfig(hfmpsmbus, 0, (uint8_t)hfmpsmbus->XferSize, hfmpsmbus->XferOptions, in HAL_FMPSMBUS_Slave_Transmit_IT()
1287 if (FMPSMBUS_GET_PEC_MODE(hfmpsmbus) != 0UL) in HAL_FMPSMBUS_Slave_Transmit_IT()
1289 hfmpsmbus->XferSize--; in HAL_FMPSMBUS_Slave_Transmit_IT()
1290 hfmpsmbus->XferCount--; in HAL_FMPSMBUS_Slave_Transmit_IT()
1296 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_ADDR); in HAL_FMPSMBUS_Slave_Transmit_IT()
1299 __HAL_UNLOCK(hfmpsmbus); in HAL_FMPSMBUS_Slave_Transmit_IT()
1305 FMPSMBUS_Enable_IRQ(hfmpsmbus, FMPSMBUS_IT_TX | FMPSMBUS_IT_ADDR); in HAL_FMPSMBUS_Slave_Transmit_IT()
1324 HAL_StatusTypeDef HAL_FMPSMBUS_Slave_Receive_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint8_t *pData, … in HAL_FMPSMBUS_Slave_Receive_IT() argument
1330 if ((hfmpsmbus->State & HAL_FMPSMBUS_STATE_LISTEN) == HAL_FMPSMBUS_STATE_LISTEN) in HAL_FMPSMBUS_Slave_Receive_IT()
1334 hfmpsmbus->ErrorCode = HAL_FMPSMBUS_ERROR_INVALID_PARAM; in HAL_FMPSMBUS_Slave_Receive_IT()
1339 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_ADDR | FMPSMBUS_IT_RX); in HAL_FMPSMBUS_Slave_Receive_IT()
1342 __HAL_LOCK(hfmpsmbus); in HAL_FMPSMBUS_Slave_Receive_IT()
1344 hfmpsmbus->State = (HAL_FMPSMBUS_STATE_SLAVE_BUSY_RX | HAL_FMPSMBUS_STATE_LISTEN); in HAL_FMPSMBUS_Slave_Receive_IT()
1345 hfmpsmbus->ErrorCode = HAL_FMPSMBUS_ERROR_NONE; in HAL_FMPSMBUS_Slave_Receive_IT()
1348 hfmpsmbus->Instance->CR1 |= FMPI2C_CR1_SBC; in HAL_FMPSMBUS_Slave_Receive_IT()
1351 hfmpsmbus->Instance->CR2 &= ~FMPI2C_CR2_NACK; in HAL_FMPSMBUS_Slave_Receive_IT()
1354 hfmpsmbus->pBuffPtr = pData; in HAL_FMPSMBUS_Slave_Receive_IT()
1355 hfmpsmbus->XferSize = Size; in HAL_FMPSMBUS_Slave_Receive_IT()
1356 hfmpsmbus->XferCount = Size; in HAL_FMPSMBUS_Slave_Receive_IT()
1357 hfmpsmbus->XferOptions = XferOptions; in HAL_FMPSMBUS_Slave_Receive_IT()
1360 FMPSMBUS_ConvertOtherXferOptions(hfmpsmbus); in HAL_FMPSMBUS_Slave_Receive_IT()
1367 …if (((FMPSMBUS_GET_PEC_MODE(hfmpsmbus) != 0UL) && (hfmpsmbus->XferSize == 2U)) || (hfmpsmbus->Xfer… in HAL_FMPSMBUS_Slave_Receive_IT()
1369 FMPSMBUS_TransferConfig(hfmpsmbus, 0, (uint8_t)hfmpsmbus->XferSize, hfmpsmbus->XferOptions, in HAL_FMPSMBUS_Slave_Receive_IT()
1374 …FMPSMBUS_TransferConfig(hfmpsmbus, 0, 1, hfmpsmbus->XferOptions | FMPSMBUS_RELOAD_MODE, FMPSMBUS_N… in HAL_FMPSMBUS_Slave_Receive_IT()
1379 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_ADDR); in HAL_FMPSMBUS_Slave_Receive_IT()
1382 __HAL_UNLOCK(hfmpsmbus); in HAL_FMPSMBUS_Slave_Receive_IT()
1388 FMPSMBUS_Enable_IRQ(hfmpsmbus, FMPSMBUS_IT_RX | FMPSMBUS_IT_ADDR); in HAL_FMPSMBUS_Slave_Receive_IT()
1404 HAL_StatusTypeDef HAL_FMPSMBUS_EnableListen_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_EnableListen_IT() argument
1406 hfmpsmbus->State = HAL_FMPSMBUS_STATE_LISTEN; in HAL_FMPSMBUS_EnableListen_IT()
1409 FMPSMBUS_Enable_IRQ(hfmpsmbus, FMPSMBUS_IT_ADDR); in HAL_FMPSMBUS_EnableListen_IT()
1420 HAL_StatusTypeDef HAL_FMPSMBUS_DisableListen_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_DisableListen_IT() argument
1423 if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_LISTEN) in HAL_FMPSMBUS_DisableListen_IT()
1425 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in HAL_FMPSMBUS_DisableListen_IT()
1428 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_ADDR); in HAL_FMPSMBUS_DisableListen_IT()
1444 HAL_StatusTypeDef HAL_FMPSMBUS_EnableAlert_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_EnableAlert_IT() argument
1447 hfmpsmbus->Instance->CR1 |= FMPI2C_CR1_ALERTEN; in HAL_FMPSMBUS_EnableAlert_IT()
1450 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_ALERT); in HAL_FMPSMBUS_EnableAlert_IT()
1453 FMPSMBUS_Enable_IRQ(hfmpsmbus, FMPSMBUS_IT_ALERT); in HAL_FMPSMBUS_EnableAlert_IT()
1463 HAL_StatusTypeDef HAL_FMPSMBUS_DisableAlert_IT(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_DisableAlert_IT() argument
1466 hfmpsmbus->Instance->CR1 &= ~FMPI2C_CR1_ALERTEN; in HAL_FMPSMBUS_DisableAlert_IT()
1469 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_ALERT); in HAL_FMPSMBUS_DisableAlert_IT()
1484 HAL_StatusTypeDef HAL_FMPSMBUS_IsDeviceReady(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint16_t DevAddress… in HAL_FMPSMBUS_IsDeviceReady() argument
1494 if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_READY) in HAL_FMPSMBUS_IsDeviceReady()
1496 if (__HAL_FMPSMBUS_GET_FLAG(hfmpsmbus, FMPSMBUS_FLAG_BUSY) != RESET) in HAL_FMPSMBUS_IsDeviceReady()
1502 __HAL_LOCK(hfmpsmbus); in HAL_FMPSMBUS_IsDeviceReady()
1504 hfmpsmbus->State = HAL_FMPSMBUS_STATE_BUSY; in HAL_FMPSMBUS_IsDeviceReady()
1505 hfmpsmbus->ErrorCode = HAL_FMPSMBUS_ERROR_NONE; in HAL_FMPSMBUS_IsDeviceReady()
1510 … hfmpsmbus->Instance->CR2 = FMPSMBUS_GENERATE_START(hfmpsmbus->Init.AddressingMode, DevAddress); in HAL_FMPSMBUS_IsDeviceReady()
1516 tmp1 = __HAL_FMPSMBUS_GET_FLAG(hfmpsmbus, FMPSMBUS_FLAG_STOPF); in HAL_FMPSMBUS_IsDeviceReady()
1517 tmp2 = __HAL_FMPSMBUS_GET_FLAG(hfmpsmbus, FMPSMBUS_FLAG_AF); in HAL_FMPSMBUS_IsDeviceReady()
1526 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in HAL_FMPSMBUS_IsDeviceReady()
1529 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_HALTIMEOUT; in HAL_FMPSMBUS_IsDeviceReady()
1532 __HAL_UNLOCK(hfmpsmbus); in HAL_FMPSMBUS_IsDeviceReady()
1537 tmp1 = __HAL_FMPSMBUS_GET_FLAG(hfmpsmbus, FMPSMBUS_FLAG_STOPF); in HAL_FMPSMBUS_IsDeviceReady()
1538 tmp2 = __HAL_FMPSMBUS_GET_FLAG(hfmpsmbus, FMPSMBUS_FLAG_AF); in HAL_FMPSMBUS_IsDeviceReady()
1542 if (__HAL_FMPSMBUS_GET_FLAG(hfmpsmbus, FMPSMBUS_FLAG_AF) == RESET) in HAL_FMPSMBUS_IsDeviceReady()
1545 … if (FMPSMBUS_WaitOnFlagUntilTimeout(hfmpsmbus, FMPSMBUS_FLAG_STOPF, RESET, Timeout) != HAL_OK) in HAL_FMPSMBUS_IsDeviceReady()
1551 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_STOPF); in HAL_FMPSMBUS_IsDeviceReady()
1554 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in HAL_FMPSMBUS_IsDeviceReady()
1557 __HAL_UNLOCK(hfmpsmbus); in HAL_FMPSMBUS_IsDeviceReady()
1564 … if (FMPSMBUS_WaitOnFlagUntilTimeout(hfmpsmbus, FMPSMBUS_FLAG_STOPF, RESET, Timeout) != HAL_OK) in HAL_FMPSMBUS_IsDeviceReady()
1570 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_AF); in HAL_FMPSMBUS_IsDeviceReady()
1573 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_STOPF); in HAL_FMPSMBUS_IsDeviceReady()
1580 hfmpsmbus->Instance->CR2 |= FMPI2C_CR2_STOP; in HAL_FMPSMBUS_IsDeviceReady()
1583 … if (FMPSMBUS_WaitOnFlagUntilTimeout(hfmpsmbus, FMPSMBUS_FLAG_STOPF, RESET, Timeout) != HAL_OK) in HAL_FMPSMBUS_IsDeviceReady()
1589 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_STOPF); in HAL_FMPSMBUS_IsDeviceReady()
1596 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in HAL_FMPSMBUS_IsDeviceReady()
1599 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_HALTIMEOUT; in HAL_FMPSMBUS_IsDeviceReady()
1602 __HAL_UNLOCK(hfmpsmbus); in HAL_FMPSMBUS_IsDeviceReady()
1625 void HAL_FMPSMBUS_EV_IRQHandler(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_EV_IRQHandler() argument
1629 uint32_t tmpisrvalue = READ_REG(hfmpsmbus->Instance->ISR); in HAL_FMPSMBUS_EV_IRQHandler()
1630 uint32_t tmpcr1value = READ_REG(hfmpsmbus->Instance->CR1); in HAL_FMPSMBUS_EV_IRQHandler()
1642 if ((hfmpsmbus->State & HAL_FMPSMBUS_STATE_SLAVE_BUSY_TX) == HAL_FMPSMBUS_STATE_SLAVE_BUSY_TX) in HAL_FMPSMBUS_EV_IRQHandler()
1644 (void)FMPSMBUS_Slave_ISR(hfmpsmbus, tmpisrvalue); in HAL_FMPSMBUS_EV_IRQHandler()
1647 …else if ((hfmpsmbus->State & HAL_FMPSMBUS_STATE_MASTER_BUSY_TX) == HAL_FMPSMBUS_STATE_MASTER_BUSY_… in HAL_FMPSMBUS_EV_IRQHandler()
1649 (void)FMPSMBUS_Master_ISR(hfmpsmbus, tmpisrvalue); in HAL_FMPSMBUS_EV_IRQHandler()
1667 if ((hfmpsmbus->State & HAL_FMPSMBUS_STATE_SLAVE_BUSY_RX) == HAL_FMPSMBUS_STATE_SLAVE_BUSY_RX) in HAL_FMPSMBUS_EV_IRQHandler()
1669 (void)FMPSMBUS_Slave_ISR(hfmpsmbus, tmpisrvalue); in HAL_FMPSMBUS_EV_IRQHandler()
1672 …else if ((hfmpsmbus->State & HAL_FMPSMBUS_STATE_MASTER_BUSY_RX) == HAL_FMPSMBUS_STATE_MASTER_BUSY_… in HAL_FMPSMBUS_EV_IRQHandler()
1674 (void)FMPSMBUS_Master_ISR(hfmpsmbus, tmpisrvalue); in HAL_FMPSMBUS_EV_IRQHandler()
1690 if ((hfmpsmbus->State & HAL_FMPSMBUS_STATE_LISTEN) == HAL_FMPSMBUS_STATE_LISTEN) in HAL_FMPSMBUS_EV_IRQHandler()
1692 (void)FMPSMBUS_Slave_ISR(hfmpsmbus, tmpisrvalue); in HAL_FMPSMBUS_EV_IRQHandler()
1703 void HAL_FMPSMBUS_ER_IRQHandler(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_ER_IRQHandler() argument
1705 FMPSMBUS_ITErrorHandler(hfmpsmbus); in HAL_FMPSMBUS_ER_IRQHandler()
1714 __weak void HAL_FMPSMBUS_MasterTxCpltCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_MasterTxCpltCallback() argument
1717 UNUSED(hfmpsmbus); in HAL_FMPSMBUS_MasterTxCpltCallback()
1730 __weak void HAL_FMPSMBUS_MasterRxCpltCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_MasterRxCpltCallback() argument
1733 UNUSED(hfmpsmbus); in HAL_FMPSMBUS_MasterRxCpltCallback()
1745 __weak void HAL_FMPSMBUS_SlaveTxCpltCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_SlaveTxCpltCallback() argument
1748 UNUSED(hfmpsmbus); in HAL_FMPSMBUS_SlaveTxCpltCallback()
1761 __weak void HAL_FMPSMBUS_SlaveRxCpltCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_SlaveRxCpltCallback() argument
1764 UNUSED(hfmpsmbus); in HAL_FMPSMBUS_SlaveRxCpltCallback()
1779 __weak void HAL_FMPSMBUS_AddrCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint8_t TransferDirection, in HAL_FMPSMBUS_AddrCallback() argument
1783 UNUSED(hfmpsmbus); in HAL_FMPSMBUS_AddrCallback()
1798 __weak void HAL_FMPSMBUS_ListenCpltCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_ListenCpltCallback() argument
1801 UNUSED(hfmpsmbus); in HAL_FMPSMBUS_ListenCpltCallback()
1814 __weak void HAL_FMPSMBUS_ErrorCallback(FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_ErrorCallback() argument
1817 UNUSED(hfmpsmbus); in HAL_FMPSMBUS_ErrorCallback()
1849 uint32_t HAL_FMPSMBUS_GetState(const FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_GetState() argument
1852 return hfmpsmbus->State; in HAL_FMPSMBUS_GetState()
1861 uint32_t HAL_FMPSMBUS_GetError(const FMPSMBUS_HandleTypeDef *hfmpsmbus) in HAL_FMPSMBUS_GetError() argument
1863 return hfmpsmbus->ErrorCode; in HAL_FMPSMBUS_GetError()
1886 static HAL_StatusTypeDef FMPSMBUS_Master_ISR(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t StatusFlag… in FMPSMBUS_Master_ISR() argument
1891 __HAL_LOCK(hfmpsmbus); in FMPSMBUS_Master_ISR()
1896 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_AF); in FMPSMBUS_Master_ISR()
1900 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_ACKF; in FMPSMBUS_Master_ISR()
1903 FMPSMBUS_Flush_TXDR(hfmpsmbus); in FMPSMBUS_Master_ISR()
1906 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Master_ISR()
1910 hfmpsmbus->ErrorCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
1912 HAL_FMPSMBUS_ErrorCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
1918 FMPSMBUS_ITErrorHandler(hfmpsmbus); in FMPSMBUS_Master_ISR()
1921 if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_MASTER_BUSY_TX) in FMPSMBUS_Master_ISR()
1924 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_TX); in FMPSMBUS_Master_ISR()
1927 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_STOPF); in FMPSMBUS_Master_ISR()
1930 FMPSMBUS_RESET_CR2(hfmpsmbus); in FMPSMBUS_Master_ISR()
1934 __HAL_FMPSMBUS_DISABLE(hfmpsmbus); in FMPSMBUS_Master_ISR()
1936 hfmpsmbus->PreviousState = HAL_FMPSMBUS_STATE_READY; in FMPSMBUS_Master_ISR()
1937 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in FMPSMBUS_Master_ISR()
1940 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Master_ISR()
1943 __HAL_FMPSMBUS_ENABLE(hfmpsmbus); in FMPSMBUS_Master_ISR()
1947 hfmpsmbus->MasterTxCpltCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
1949 HAL_FMPSMBUS_MasterTxCpltCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
1952 else if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_MASTER_BUSY_RX) in FMPSMBUS_Master_ISR()
1958 *hfmpsmbus->pBuffPtr = (uint8_t)(hfmpsmbus->Instance->RXDR); in FMPSMBUS_Master_ISR()
1961 hfmpsmbus->pBuffPtr++; in FMPSMBUS_Master_ISR()
1963 if ((hfmpsmbus->XferSize > 0U)) in FMPSMBUS_Master_ISR()
1965 hfmpsmbus->XferSize--; in FMPSMBUS_Master_ISR()
1966 hfmpsmbus->XferCount--; in FMPSMBUS_Master_ISR()
1971 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_RX); in FMPSMBUS_Master_ISR()
1974 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_STOPF); in FMPSMBUS_Master_ISR()
1977 FMPSMBUS_RESET_CR2(hfmpsmbus); in FMPSMBUS_Master_ISR()
1979 hfmpsmbus->PreviousState = HAL_FMPSMBUS_STATE_READY; in FMPSMBUS_Master_ISR()
1980 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in FMPSMBUS_Master_ISR()
1983 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Master_ISR()
1987 hfmpsmbus->MasterRxCpltCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
1989 HAL_FMPSMBUS_MasterRxCpltCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
2000 *hfmpsmbus->pBuffPtr = (uint8_t)(hfmpsmbus->Instance->RXDR); in FMPSMBUS_Master_ISR()
2003 hfmpsmbus->pBuffPtr++; in FMPSMBUS_Master_ISR()
2006 hfmpsmbus->XferSize--; in FMPSMBUS_Master_ISR()
2007 hfmpsmbus->XferCount--; in FMPSMBUS_Master_ISR()
2012 hfmpsmbus->Instance->TXDR = *hfmpsmbus->pBuffPtr; in FMPSMBUS_Master_ISR()
2015 hfmpsmbus->pBuffPtr++; in FMPSMBUS_Master_ISR()
2018 hfmpsmbus->XferSize--; in FMPSMBUS_Master_ISR()
2019 hfmpsmbus->XferCount--; in FMPSMBUS_Master_ISR()
2023 if ((hfmpsmbus->XferCount != 0U) && (hfmpsmbus->XferSize == 0U)) in FMPSMBUS_Master_ISR()
2025 DevAddress = (uint16_t)(hfmpsmbus->Instance->CR2 & FMPI2C_CR2_SADD); in FMPSMBUS_Master_ISR()
2027 if (hfmpsmbus->XferCount > MAX_NBYTE_SIZE) in FMPSMBUS_Master_ISR()
2029 FMPSMBUS_TransferConfig(hfmpsmbus, DevAddress, MAX_NBYTE_SIZE, in FMPSMBUS_Master_ISR()
2030 … (FMPSMBUS_RELOAD_MODE | (hfmpsmbus->XferOptions & FMPSMBUS_SENDPEC_MODE)), in FMPSMBUS_Master_ISR()
2032 hfmpsmbus->XferSize = MAX_NBYTE_SIZE; in FMPSMBUS_Master_ISR()
2036 hfmpsmbus->XferSize = hfmpsmbus->XferCount; in FMPSMBUS_Master_ISR()
2037 …FMPSMBUS_TransferConfig(hfmpsmbus, DevAddress, (uint8_t)hfmpsmbus->XferSize, hfmpsmbus->XferOption… in FMPSMBUS_Master_ISR()
2041 if (FMPSMBUS_GET_PEC_MODE(hfmpsmbus) != 0UL) in FMPSMBUS_Master_ISR()
2043 hfmpsmbus->XferSize--; in FMPSMBUS_Master_ISR()
2044 hfmpsmbus->XferCount--; in FMPSMBUS_Master_ISR()
2048 else if ((hfmpsmbus->XferCount == 0U) && (hfmpsmbus->XferSize == 0U)) in FMPSMBUS_Master_ISR()
2051 if (FMPSMBUS_GET_STOP_MODE(hfmpsmbus) != FMPSMBUS_AUTOEND_MODE) in FMPSMBUS_Master_ISR()
2054 if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_MASTER_BUSY_TX) in FMPSMBUS_Master_ISR()
2057 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_TX); in FMPSMBUS_Master_ISR()
2058 hfmpsmbus->PreviousState = hfmpsmbus->State; in FMPSMBUS_Master_ISR()
2059 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in FMPSMBUS_Master_ISR()
2062 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Master_ISR()
2066 hfmpsmbus->MasterTxCpltCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
2068 HAL_FMPSMBUS_MasterTxCpltCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
2071 else if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_MASTER_BUSY_RX) in FMPSMBUS_Master_ISR()
2073 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_RX); in FMPSMBUS_Master_ISR()
2074 hfmpsmbus->PreviousState = hfmpsmbus->State; in FMPSMBUS_Master_ISR()
2075 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in FMPSMBUS_Master_ISR()
2078 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Master_ISR()
2082 hfmpsmbus->MasterRxCpltCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
2084 HAL_FMPSMBUS_MasterRxCpltCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
2100 if (hfmpsmbus->XferCount == 0U) in FMPSMBUS_Master_ISR()
2103 if (hfmpsmbus->pBuffPtr == NULL) in FMPSMBUS_Master_ISR()
2106 hfmpsmbus->Instance->CR2 |= FMPI2C_CR2_STOP; in FMPSMBUS_Master_ISR()
2109 else if (FMPSMBUS_GET_STOP_MODE(hfmpsmbus) != FMPSMBUS_AUTOEND_MODE) in FMPSMBUS_Master_ISR()
2115 if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_MASTER_BUSY_TX) in FMPSMBUS_Master_ISR()
2118 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_TX); in FMPSMBUS_Master_ISR()
2119 hfmpsmbus->PreviousState = hfmpsmbus->State; in FMPSMBUS_Master_ISR()
2120 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in FMPSMBUS_Master_ISR()
2123 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Master_ISR()
2127 hfmpsmbus->MasterTxCpltCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
2129 HAL_FMPSMBUS_MasterTxCpltCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
2132 else if (hfmpsmbus->State == HAL_FMPSMBUS_STATE_MASTER_BUSY_RX) in FMPSMBUS_Master_ISR()
2134 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_RX); in FMPSMBUS_Master_ISR()
2135 hfmpsmbus->PreviousState = hfmpsmbus->State; in FMPSMBUS_Master_ISR()
2136 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in FMPSMBUS_Master_ISR()
2139 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Master_ISR()
2143 hfmpsmbus->MasterRxCpltCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
2145 HAL_FMPSMBUS_MasterRxCpltCallback(hfmpsmbus); in FMPSMBUS_Master_ISR()
2165 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Master_ISR()
2176 static HAL_StatusTypeDef FMPSMBUS_Slave_ISR(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t StatusFlags) in FMPSMBUS_Slave_ISR() argument
2182 __HAL_LOCK(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2190 if (hfmpsmbus->XferCount == 0U) in FMPSMBUS_Slave_ISR()
2193 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_AF); in FMPSMBUS_Slave_ISR()
2196 FMPSMBUS_Flush_TXDR(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2199 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2205 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_AF); in FMPSMBUS_Slave_ISR()
2209 hfmpsmbus->PreviousState = hfmpsmbus->State; in FMPSMBUS_Slave_ISR()
2210 hfmpsmbus->State &= ~((uint32_t)HAL_FMPSMBUS_STATE_SLAVE_BUSY_TX); in FMPSMBUS_Slave_ISR()
2211 hfmpsmbus->State &= ~((uint32_t)HAL_FMPSMBUS_STATE_SLAVE_BUSY_RX); in FMPSMBUS_Slave_ISR()
2214 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_RX | FMPSMBUS_IT_TX); in FMPSMBUS_Slave_ISR()
2217 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_ACKF; in FMPSMBUS_Slave_ISR()
2220 FMPSMBUS_Flush_TXDR(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2223 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2227 hfmpsmbus->ErrorCallback(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2229 HAL_FMPSMBUS_ErrorCallback(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2235 TransferDirection = (uint8_t)(FMPSMBUS_GET_DIR(hfmpsmbus)); in FMPSMBUS_Slave_ISR()
2236 SlaveAddrCode = (uint16_t)(FMPSMBUS_GET_ADDR_MATCH(hfmpsmbus)); in FMPSMBUS_Slave_ISR()
2240 __HAL_FMPSMBUS_DISABLE_IT(hfmpsmbus, FMPSMBUS_IT_ADDRI); in FMPSMBUS_Slave_ISR()
2243 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2247 hfmpsmbus->AddrCallback(hfmpsmbus, TransferDirection, SlaveAddrCode); in FMPSMBUS_Slave_ISR()
2249 HAL_FMPSMBUS_AddrCallback(hfmpsmbus, TransferDirection, SlaveAddrCode); in FMPSMBUS_Slave_ISR()
2255 if ((hfmpsmbus->State & HAL_FMPSMBUS_STATE_SLAVE_BUSY_RX) == HAL_FMPSMBUS_STATE_SLAVE_BUSY_RX) in FMPSMBUS_Slave_ISR()
2258 *hfmpsmbus->pBuffPtr = (uint8_t)(hfmpsmbus->Instance->RXDR); in FMPSMBUS_Slave_ISR()
2261 hfmpsmbus->pBuffPtr++; in FMPSMBUS_Slave_ISR()
2263 hfmpsmbus->XferSize--; in FMPSMBUS_Slave_ISR()
2264 hfmpsmbus->XferCount--; in FMPSMBUS_Slave_ISR()
2266 if (hfmpsmbus->XferCount == 1U) in FMPSMBUS_Slave_ISR()
2271 hfmpsmbus->XferOptions &= ~FMPSMBUS_RELOAD_MODE; in FMPSMBUS_Slave_ISR()
2272 FMPSMBUS_TransferConfig(hfmpsmbus, 0, 1, hfmpsmbus->XferOptions, FMPSMBUS_NO_STARTSTOP); in FMPSMBUS_Slave_ISR()
2274 else if (hfmpsmbus->XferCount == 0U) in FMPSMBUS_Slave_ISR()
2277 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_RX); in FMPSMBUS_Slave_ISR()
2280 hfmpsmbus->PreviousState = hfmpsmbus->State; in FMPSMBUS_Slave_ISR()
2281 hfmpsmbus->State &= ~((uint32_t)HAL_FMPSMBUS_STATE_SLAVE_BUSY_RX); in FMPSMBUS_Slave_ISR()
2284 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2288 hfmpsmbus->SlaveRxCpltCallback(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2290 HAL_FMPSMBUS_SlaveRxCpltCallback(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2296 FMPSMBUS_TransferConfig(hfmpsmbus, 0, 1, in FMPSMBUS_Slave_ISR()
2297 … FMPSMBUS_RELOAD_MODE | (hfmpsmbus->XferOptions & FMPSMBUS_SENDPEC_MODE), in FMPSMBUS_Slave_ISR()
2301 hfmpsmbus->Instance->CR2 &= ~FMPI2C_CR2_NACK; in FMPSMBUS_Slave_ISR()
2304 …else if ((hfmpsmbus->State & HAL_FMPSMBUS_STATE_SLAVE_BUSY_TX) == HAL_FMPSMBUS_STATE_SLAVE_BUSY_TX) in FMPSMBUS_Slave_ISR()
2306 if ((hfmpsmbus->XferCount != 0U) && (hfmpsmbus->XferSize == 0U)) in FMPSMBUS_Slave_ISR()
2308 if (hfmpsmbus->XferCount > MAX_NBYTE_SIZE) in FMPSMBUS_Slave_ISR()
2310 FMPSMBUS_TransferConfig(hfmpsmbus, 0, MAX_NBYTE_SIZE, in FMPSMBUS_Slave_ISR()
2311 … (FMPSMBUS_RELOAD_MODE | (hfmpsmbus->XferOptions & FMPSMBUS_SENDPEC_MODE)), in FMPSMBUS_Slave_ISR()
2313 hfmpsmbus->XferSize = MAX_NBYTE_SIZE; in FMPSMBUS_Slave_ISR()
2317 hfmpsmbus->XferSize = hfmpsmbus->XferCount; in FMPSMBUS_Slave_ISR()
2318 … FMPSMBUS_TransferConfig(hfmpsmbus, 0, (uint8_t)hfmpsmbus->XferSize, hfmpsmbus->XferOptions, in FMPSMBUS_Slave_ISR()
2322 if (FMPSMBUS_GET_PEC_MODE(hfmpsmbus) != 0UL) in FMPSMBUS_Slave_ISR()
2324 hfmpsmbus->XferSize--; in FMPSMBUS_Slave_ISR()
2325 hfmpsmbus->XferCount--; in FMPSMBUS_Slave_ISR()
2341 if (hfmpsmbus->XferCount > 0U) in FMPSMBUS_Slave_ISR()
2344 hfmpsmbus->Instance->TXDR = *hfmpsmbus->pBuffPtr; in FMPSMBUS_Slave_ISR()
2347 hfmpsmbus->pBuffPtr++; in FMPSMBUS_Slave_ISR()
2349 hfmpsmbus->XferCount--; in FMPSMBUS_Slave_ISR()
2350 hfmpsmbus->XferSize--; in FMPSMBUS_Slave_ISR()
2353 if (hfmpsmbus->XferCount == 0U) in FMPSMBUS_Slave_ISR()
2357 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_TX); in FMPSMBUS_Slave_ISR()
2358 hfmpsmbus->PreviousState = hfmpsmbus->State; in FMPSMBUS_Slave_ISR()
2359 hfmpsmbus->State &= ~((uint32_t)HAL_FMPSMBUS_STATE_SLAVE_BUSY_TX); in FMPSMBUS_Slave_ISR()
2362 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2366 hfmpsmbus->SlaveTxCpltCallback(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2368 HAL_FMPSMBUS_SlaveTxCpltCallback(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2380 if ((hfmpsmbus->State & HAL_FMPSMBUS_STATE_LISTEN) == HAL_FMPSMBUS_STATE_LISTEN) in FMPSMBUS_Slave_ISR()
2383 if (__HAL_FMPSMBUS_GET_FLAG(hfmpsmbus, FMPSMBUS_FLAG_RXNE) != RESET) in FMPSMBUS_Slave_ISR()
2386 *hfmpsmbus->pBuffPtr = (uint8_t)(hfmpsmbus->Instance->RXDR); in FMPSMBUS_Slave_ISR()
2389 hfmpsmbus->pBuffPtr++; in FMPSMBUS_Slave_ISR()
2391 if ((hfmpsmbus->XferSize > 0U)) in FMPSMBUS_Slave_ISR()
2393 hfmpsmbus->XferSize--; in FMPSMBUS_Slave_ISR()
2394 hfmpsmbus->XferCount--; in FMPSMBUS_Slave_ISR()
2399 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_RX | FMPSMBUS_IT_TX); in FMPSMBUS_Slave_ISR()
2402 FMPSMBUS_Disable_IRQ(hfmpsmbus, FMPSMBUS_IT_ADDR); in FMPSMBUS_Slave_ISR()
2405 hfmpsmbus->Instance->CR2 |= FMPI2C_CR2_NACK; in FMPSMBUS_Slave_ISR()
2408 FMPSMBUS_RESET_CR2(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2411 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_STOPF); in FMPSMBUS_Slave_ISR()
2414 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_ADDR); in FMPSMBUS_Slave_ISR()
2416 hfmpsmbus->XferOptions = 0; in FMPSMBUS_Slave_ISR()
2417 hfmpsmbus->PreviousState = hfmpsmbus->State; in FMPSMBUS_Slave_ISR()
2418 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in FMPSMBUS_Slave_ISR()
2421 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2425 hfmpsmbus->ListenCpltCallback(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2427 HAL_FMPSMBUS_ListenCpltCallback(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2433 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_Slave_ISR()
2444 static void FMPSMBUS_Enable_IRQ(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t InterruptRequest) in FMPSMBUS_Enable_IRQ() argument
2475 __HAL_FMPSMBUS_ENABLE_IT(hfmpsmbus, tmpisr); in FMPSMBUS_Enable_IRQ()
2484 static void FMPSMBUS_Disable_IRQ(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_t InterruptRequest) in FMPSMBUS_Disable_IRQ() argument
2487 uint32_t tmpstate = hfmpsmbus->State; in FMPSMBUS_Disable_IRQ()
2500 if ((FMPSMBUS_GET_ALERT_ENABLED(hfmpsmbus) == 0UL) in FMPSMBUS_Disable_IRQ()
2519 if ((FMPSMBUS_GET_ALERT_ENABLED(hfmpsmbus) == 0UL) in FMPSMBUS_Disable_IRQ()
2538 if (FMPSMBUS_GET_ALERT_ENABLED(hfmpsmbus) == 0UL) in FMPSMBUS_Disable_IRQ()
2548 __HAL_FMPSMBUS_DISABLE_IT(hfmpsmbus, tmpisr); in FMPSMBUS_Disable_IRQ()
2556 static void FMPSMBUS_ITErrorHandler(FMPSMBUS_HandleTypeDef *hfmpsmbus) in FMPSMBUS_ITErrorHandler() argument
2558 uint32_t itflags = READ_REG(hfmpsmbus->Instance->ISR); in FMPSMBUS_ITErrorHandler()
2559 uint32_t itsources = READ_REG(hfmpsmbus->Instance->CR1); in FMPSMBUS_ITErrorHandler()
2567 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_BERR; in FMPSMBUS_ITErrorHandler()
2570 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_BERR); in FMPSMBUS_ITErrorHandler()
2577 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_OVR; in FMPSMBUS_ITErrorHandler()
2580 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_OVR); in FMPSMBUS_ITErrorHandler()
2587 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_ARLO; in FMPSMBUS_ITErrorHandler()
2590 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_ARLO); in FMPSMBUS_ITErrorHandler()
2597 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_BUSTIMEOUT; in FMPSMBUS_ITErrorHandler()
2600 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_TIMEOUT); in FMPSMBUS_ITErrorHandler()
2607 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_ALERT; in FMPSMBUS_ITErrorHandler()
2610 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_ALERT); in FMPSMBUS_ITErrorHandler()
2617 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_PECERR; in FMPSMBUS_ITErrorHandler()
2620 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_PECERR); in FMPSMBUS_ITErrorHandler()
2623 if (hfmpsmbus->ErrorCode != HAL_FMPSMBUS_ERROR_NONE) in FMPSMBUS_ITErrorHandler()
2626 FMPSMBUS_Flush_TXDR(hfmpsmbus); in FMPSMBUS_ITErrorHandler()
2630 tmperror = hfmpsmbus->ErrorCode; in FMPSMBUS_ITErrorHandler()
2639 tmpstate = hfmpsmbus->State; in FMPSMBUS_ITErrorHandler()
2646 hfmpsmbus->PreviousState = HAL_FMPSMBUS_STATE_READY; in FMPSMBUS_ITErrorHandler()
2647 hfmpsmbus->State = HAL_FMPSMBUS_STATE_LISTEN; in FMPSMBUS_ITErrorHandler()
2653 hfmpsmbus->ErrorCallback(hfmpsmbus); in FMPSMBUS_ITErrorHandler()
2655 HAL_FMPSMBUS_ErrorCallback(hfmpsmbus); in FMPSMBUS_ITErrorHandler()
2669 static HAL_StatusTypeDef FMPSMBUS_WaitOnFlagUntilTimeout(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint32_… in FMPSMBUS_WaitOnFlagUntilTimeout() argument
2675 while ((FlagStatus)(__HAL_FMPSMBUS_GET_FLAG(hfmpsmbus, Flag)) == Status) in FMPSMBUS_WaitOnFlagUntilTimeout()
2682 hfmpsmbus->PreviousState = hfmpsmbus->State; in FMPSMBUS_WaitOnFlagUntilTimeout()
2683 hfmpsmbus->State = HAL_FMPSMBUS_STATE_READY; in FMPSMBUS_WaitOnFlagUntilTimeout()
2686 hfmpsmbus->ErrorCode |= HAL_FMPSMBUS_ERROR_HALTIMEOUT; in FMPSMBUS_WaitOnFlagUntilTimeout()
2689 __HAL_UNLOCK(hfmpsmbus); in FMPSMBUS_WaitOnFlagUntilTimeout()
2704 static void FMPSMBUS_Flush_TXDR(FMPSMBUS_HandleTypeDef *hfmpsmbus) in FMPSMBUS_Flush_TXDR() argument
2708 if (__HAL_FMPSMBUS_GET_FLAG(hfmpsmbus, FMPSMBUS_FLAG_TXIS) != RESET) in FMPSMBUS_Flush_TXDR()
2710 hfmpsmbus->Instance->TXDR = 0x00U; in FMPSMBUS_Flush_TXDR()
2714 if (__HAL_FMPSMBUS_GET_FLAG(hfmpsmbus, FMPSMBUS_FLAG_TXE) == RESET) in FMPSMBUS_Flush_TXDR()
2716 __HAL_FMPSMBUS_CLEAR_FLAG(hfmpsmbus, FMPSMBUS_FLAG_TXE); in FMPSMBUS_Flush_TXDR()
2740 static void FMPSMBUS_TransferConfig(FMPSMBUS_HandleTypeDef *hfmpsmbus, uint16_t DevAddress, uint8_… in FMPSMBUS_TransferConfig() argument
2744 assert_param(IS_FMPSMBUS_ALL_INSTANCE(hfmpsmbus->Instance)); in FMPSMBUS_TransferConfig()
2749 MODIFY_REG(hfmpsmbus->Instance->CR2, in FMPSMBUS_TransferConfig()
2763 static void FMPSMBUS_ConvertOtherXferOptions(FMPSMBUS_HandleTypeDef *hfmpsmbus) in FMPSMBUS_ConvertOtherXferOptions() argument
2768 if (hfmpsmbus->XferOptions == FMPSMBUS_OTHER_FRAME_NO_PEC) in FMPSMBUS_ConvertOtherXferOptions()
2770 hfmpsmbus->XferOptions = FMPSMBUS_FIRST_FRAME; in FMPSMBUS_ConvertOtherXferOptions()
2775 else if (hfmpsmbus->XferOptions == FMPSMBUS_OTHER_FRAME_WITH_PEC) in FMPSMBUS_ConvertOtherXferOptions()
2777 hfmpsmbus->XferOptions = FMPSMBUS_FIRST_FRAME | FMPSMBUS_SENDPEC_MODE; in FMPSMBUS_ConvertOtherXferOptions()
2783 else if (hfmpsmbus->XferOptions == FMPSMBUS_OTHER_AND_LAST_FRAME_NO_PEC) in FMPSMBUS_ConvertOtherXferOptions()
2785 hfmpsmbus->XferOptions = FMPSMBUS_FIRST_AND_LAST_FRAME_NO_PEC; in FMPSMBUS_ConvertOtherXferOptions()
2791 else if (hfmpsmbus->XferOptions == FMPSMBUS_OTHER_AND_LAST_FRAME_WITH_PEC) in FMPSMBUS_ConvertOtherXferOptions()
2793 hfmpsmbus->XferOptions = FMPSMBUS_FIRST_AND_LAST_FRAME_WITH_PEC; in FMPSMBUS_ConvertOtherXferOptions()