@@ -348,10 +348,6 @@ static HAL_StatusTypeDef I2C_IsAcknowledgeFailed(I2C_HandleTypeDef *hi2c, uint32
348
348
static HAL_StatusTypeDef I2C_Enable_IRQ (I2C_HandleTypeDef * hi2c , uint16_t InterruptRequest );
349
349
static HAL_StatusTypeDef I2C_Disable_IRQ (I2C_HandleTypeDef * hi2c , uint16_t InterruptRequest );
350
350
351
- /* Private functions to centralize the enable/disable of Interrupts */
352
- static HAL_StatusTypeDef I2C_Enable_IRQ (I2C_HandleTypeDef * hi2c , uint16_t InterruptRequest );
353
- static HAL_StatusTypeDef I2C_Disable_IRQ (I2C_HandleTypeDef * hi2c , uint16_t InterruptRequest );
354
-
355
351
/* Private functions to flush TXDR register */
356
352
static void I2C_Flush_TXDR (I2C_HandleTypeDef * hi2c );
357
353
@@ -2158,10 +2154,6 @@ HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddre
2158
2154
hi2c -> Mode = HAL_I2C_MODE_MEM ;
2159
2155
hi2c -> ErrorCode = HAL_I2C_ERROR_NONE ;
2160
2156
2161
- /* Prepare transfer parameters */
2162
- hi2c -> Mode = HAL_I2C_MODE_MEM ;
2163
- hi2c -> ErrorCode = HAL_I2C_ERROR_NONE ;
2164
-
2165
2157
/* Prepare transfer parameters */
2166
2158
hi2c -> pBuffPtr = pData ;
2167
2159
hi2c -> XferCount = Size ;
@@ -2600,7 +2592,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c,
2600
2592
/* Prepare transfer parameters */
2601
2593
hi2c -> pBuffPtr = pData ;
2602
2594
hi2c -> XferCount = Size ;
2603
- hi2c -> XferOptions = (XferOptions & (~I2C_RELOAD_MODE ));
2595
+ hi2c -> XferOptions = (XferOptions & (~I2C_RELOAD_MODE )); // MBED commit 23926a2418
2604
2596
hi2c -> XferISR = I2C_Master_ISR_IT ;
2605
2597
2606
2598
/* If size > MAX_NBYTE_SIZE, use reload mode */
@@ -2615,12 +2607,13 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c,
2615
2607
xfermode = hi2c -> XferOptions ;
2616
2608
}
2617
2609
2610
+ // MBED commit 23926a2418
2618
2611
/* If transfer direction not change, do not generate Restart Condition */
2619
2612
/* Mean Previous state is same as current state */
2620
- if (hi2c -> PreviousState == I2C_STATE_MASTER_BUSY_TX )
2621
- {
2622
- xferrequest = I2C_NO_STARTSTOP ;
2623
- }
2613
+ // if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX)
2614
+ // {
2615
+ // xferrequest = I2C_NO_STARTSTOP;
2616
+ // }
2624
2617
2625
2618
/* Send Slave Address and set NBYTES to write */
2626
2619
I2C_TransferConfig (hi2c , DevAddress , hi2c -> XferSize , xfermode , xferrequest );
@@ -2673,7 +2666,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c,
2673
2666
/* Prepare transfer parameters */
2674
2667
hi2c -> pBuffPtr = pData ;
2675
2668
hi2c -> XferCount = Size ;
2676
- hi2c -> XferOptions = (XferOptions & (~I2C_RELOAD_MODE ));
2669
+ hi2c -> XferOptions = (XferOptions & (~I2C_RELOAD_MODE )); // MBED commit 23926a2418
2677
2670
hi2c -> XferISR = I2C_Master_ISR_IT ;
2678
2671
2679
2672
/* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */
@@ -2688,12 +2681,13 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c,
2688
2681
xfermode = hi2c -> XferOptions ;
2689
2682
}
2690
2683
2684
+ // MBED commit 23926a2418
2691
2685
/* If transfer direction not change, do not generate Restart Condition */
2692
2686
/* Mean Previous state is same as current state */
2693
- if (hi2c -> PreviousState == I2C_STATE_MASTER_BUSY_RX )
2694
- {
2695
- xferrequest = I2C_NO_STARTSTOP ;
2696
- }
2687
+ // if (hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX)
2688
+ // {
2689
+ // xferrequest = I2C_NO_STARTSTOP;
2690
+ // }
2697
2691
2698
2692
/* Send Slave Address and set NBYTES to read */
2699
2693
I2C_TransferConfig (hi2c , DevAddress , hi2c -> XferSize , xfermode , xferrequest );
@@ -2983,13 +2977,6 @@ void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c)
2983
2977
2984
2978
/* I2C events treatment -------------------------------------*/
2985
2979
if (hi2c -> XferISR != NULL )
2986
- {
2987
- hi2c -> XferISR (hi2c , itflags , itsources );
2988
- uint32_t itflags = READ_REG (hi2c -> Instance -> ISR );
2989
- uint32_t itsources = READ_REG (hi2c -> Instance -> CR1 );
2990
-
2991
- /* I2C events treatment -------------------------------------*/
2992
- if (hi2c -> XferISR != NULL )
2993
2980
{
2994
2981
hi2c -> XferISR (hi2c , itflags , itsources );
2995
2982
}
@@ -3584,11 +3571,6 @@ static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, ui
3584
3571
/* Call I2C Master complete process */
3585
3572
I2C_ITMasterCplt (hi2c , ITFlags );
3586
3573
}
3587
- else if (((ITFlags & I2C_FLAG_STOPF ) != RESET ) && ((ITSources & I2C_IT_STOPI ) != RESET ))
3588
- {
3589
- /* Call I2C Master complete process */
3590
- I2C_ITMasterCplt (hi2c , ITFlags );
3591
- }
3592
3574
3593
3575
/* Process Unlocked */
3594
3576
__HAL_UNLOCK (hi2c );
@@ -4794,79 +4776,6 @@ static HAL_StatusTypeDef I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t Interr
4794
4776
return HAL_OK ;
4795
4777
}
4796
4778
4797
- /**
4798
- * @brief Manage the disabling of Interrupts.
4799
- * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
4800
- * the configuration information for the specified I2C.
4801
- * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition.
4802
- * @retval HAL status
4803
- */
4804
- static HAL_StatusTypeDef I2C_Enable_IRQ (I2C_HandleTypeDef * hi2c , uint16_t InterruptRequest )
4805
- {
4806
- uint32_t tmpisr = 0U ;
4807
-
4808
- if ((hi2c -> XferISR == I2C_Master_ISR_DMA ) || \
4809
- (hi2c -> XferISR == I2C_Slave_ISR_DMA ))
4810
- {
4811
- if ((InterruptRequest & I2C_XFER_LISTEN_IT ) == I2C_XFER_LISTEN_IT )
4812
- {
4813
- /* Enable ERR, STOP, NACK and ADDR interrupts */
4814
- tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI ;
4815
- }
4816
-
4817
- if ((InterruptRequest & I2C_XFER_ERROR_IT ) == I2C_XFER_ERROR_IT )
4818
- {
4819
- /* Enable ERR and NACK interrupts */
4820
- tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI ;
4821
- }
4822
-
4823
- if ((InterruptRequest & I2C_XFER_CPLT_IT ) == I2C_XFER_CPLT_IT )
4824
- {
4825
- /* Enable STOP interrupts */
4826
- tmpisr |= I2C_IT_STOPI ;
4827
- }
4828
-
4829
- if ((InterruptRequest & I2C_XFER_RELOAD_IT ) == I2C_XFER_RELOAD_IT )
4830
- {
4831
- /* Enable TC interrupts */
4832
- tmpisr |= I2C_IT_TCI ;
4833
- }
4834
- }
4835
- else
4836
- {
4837
- if ((InterruptRequest & I2C_XFER_LISTEN_IT ) == I2C_XFER_LISTEN_IT )
4838
- {
4839
- /* Enable ERR, STOP, NACK, and ADDR interrupts */
4840
- tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI ;
4841
- }
4842
-
4843
- if ((InterruptRequest & I2C_XFER_TX_IT ) == I2C_XFER_TX_IT )
4844
- {
4845
- /* Enable ERR, TC, STOP, NACK and RXI interrupts */
4846
- tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI ;
4847
- }
4848
-
4849
- if ((InterruptRequest & I2C_XFER_RX_IT ) == I2C_XFER_RX_IT )
4850
- {
4851
- /* Enable ERR, TC, STOP, NACK and TXI interrupts */
4852
- tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI ;
4853
- }
4854
-
4855
- if ((InterruptRequest & I2C_XFER_CPLT_IT ) == I2C_XFER_CPLT_IT )
4856
- {
4857
- /* Enable STOP interrupts */
4858
- tmpisr |= I2C_IT_STOPI ;
4859
- }
4860
- }
4861
-
4862
- /* Enable interrupts only at the end */
4863
- /* to avoid the risk of I2C interrupt handle execution before */
4864
- /* all interrupts requested done */
4865
- __HAL_I2C_ENABLE_IT (hi2c , tmpisr );
4866
-
4867
- return HAL_OK ;
4868
- }
4869
-
4870
4779
/**
4871
4780
* @brief Manage the disabling of Interrupts.
4872
4781
* @param hi2c Pointer to a I2C_HandleTypeDef structure that contains
0 commit comments