MG32F10x Standard Peripherals Firmware Library
Functions
I2C_Private_Functions

Functions

void I2C_DeInit (I2C_TypeDef *I2Cx)
 Deinitializes the I2Cx peripheral registers to their default reset values. More...
 
void I2C_Init (I2C_TypeDef *I2Cx, uint32_t I2C_CON)
 Initializes the I2Cx peripheral according to the specified parameters in the I2C_InitStruct. More...
 
void I2C_TargetAddressConfig (I2C_TypeDef *I2Cx, uint32_t TargetAddress)
 Configures the specified I2C target address. More...
 
void I2C_OwnAddressConfig (I2C_TypeDef *I2Cx, uint16_t Address)
 Configures the specified I2C own address. More...
 
void I2C_HighSpeedModeMasterCodeConfig (I2C_TypeDef *I2Cx, uint8_t Code)
 Configures the I2C HS mode master code. More...
 
uint32_t I2C_GetTxAbortSource (I2C_TypeDef *I2Cx)
 Returns the transmit abort source for the specified I2C. More...
 
void I2C_SCLStuckAtLowTimeoutConfig (I2C_TypeDef *I2Cx, uint32_t Timeout)
 Configures the specified I2C SCL stuck at low timeout. More...
 
void I2C_SDAStuckAtLowTimeoutConfig (I2C_TypeDef *I2Cx, uint32_t Timeout)
 Configures the specified I2C SDA stuck at low timeout. More...
 
void I2C_Cmd (I2C_TypeDef *I2Cx, FunctionalState NewState)
 Enables or disables the specified I2C peripheral. More...
 
void I2C_SlaveDataNAckOnlyConfig (I2C_TypeDef *I2Cx, FunctionalState NewState)
 Enables or disables generate NACK after data byte received when as slave-receiver. More...
 
void I2C_AckGeneralCallCmd (I2C_TypeDef *I2Cx, FunctionalState NewState)
 Enables or disables the General Call ACK Generate. More...
 
uint16_t I2C_ReadData (I2C_TypeDef *I2Cx)
 Read data from Rx FIFO. More...
 
void I2C_WriteDataCmd (I2C_TypeDef *I2Cx, uint16_t I2C_DataCmd)
 Write data and command Tx FIFO. More...
 
FlagStatus I2C_GetFlagStatus (I2C_TypeDef *I2Cx, uint32_t I2C_FLAG)
 Checks whether the specified I2C flag is set or not. More...
 
void I2C_ITConfig (I2C_TypeDef *I2Cx, uint16_t I2C_IT, FunctionalState NewState)
 Enables or disables the specified I2C interrupts. More...
 
ITStatus I2C_GetRawITStatus (I2C_TypeDef *I2Cx, uint16_t I2C_IT)
 Checks whether the specified I2Cx raw interrupt status. More...
 
ITStatus I2C_GetITStatus (I2C_TypeDef *I2Cx, uint16_t I2C_IT)
 Checks whether the specified I2Cx interrupt has occurred or not. More...
 
void I2C_ClearITPendingBit (I2C_TypeDef *I2Cx, uint16_t I2C_IT)
 Clears the I2Cx's interrupt pending bits. More...
 
void I2C_RxFIFOThresholdConfig (I2C_TypeDef *I2Cx, uint8_t Threshold)
 Configures the Receive FIFO threshold. More...
 
void I2C_TxFIFOThresholdConfig (I2C_TypeDef *I2Cx, uint8_t Threshold)
 Configures the Transmit FIFO threshold. More...
 
uint8_t I2C_GetRxFIFOLevel (I2C_TypeDef *I2Cx)
 Returns the number of valid data entries in the receive FIFO buffer. More...
 
uint8_t I2C_GetTxFIFOLevel (I2C_TypeDef *I2Cx)
 Returns the number of valid data entries in the transmit FIFO buffer. More...
 
void I2C_DMARxReqLevelConfig (I2C_TypeDef *I2Cx, uint8_t Level)
 Configures the DMA Rx request level. More...
 
void I2C_DMATxReqLevelConfig (I2C_TypeDef *I2Cx, uint8_t Level)
 Configures the DMA Tx request level. More...
 
void I2C_DMACmd (I2C_TypeDef *I2Cx, uint32_t I2C_DMAReq, FunctionalState NewState)
 Enables or disables the I2Cx's DMA interface. More...
 
void I2C_SMBus_ITConfig (I2C_TypeDef *I2Cx, uint16_t I2C_SMBUS_IT, FunctionalState NewState)
 Enables or disables the specified SMBus interrupts. More...
 
ITStatus I2C_SMBus_GetRawITStatus (I2C_TypeDef *I2Cx, uint16_t I2C_SMBUS_IT)
 Checks whether the specified SMBus raw interrupt status. More...
 
ITStatus I2C_SMBus_GetITStatus (I2C_TypeDef *I2Cx, uint16_t I2C_SMBUS_IT)
 Checks whether the specified SMBus interrupt has occurred or not. More...
 
void I2C_SMBus_ClearITPendingBit (I2C_TypeDef *I2Cx, uint16_t I2C_SMBUS_IT)
 Clears the I2Cx's interrupt pending bits. More...
 

Detailed Description

Function Documentation

◆ I2C_AckGeneralCallCmd()

void I2C_AckGeneralCallCmd ( I2C_TypeDef I2Cx,
FunctionalState  NewState 
)

Enables or disables the General Call ACK Generate.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
NewStatenew state of the General Call ACK Generate. This parameter can be: ENABLE or DISABLE.
Returns
None

◆ I2C_ClearITPendingBit()

void I2C_ClearITPendingBit ( I2C_TypeDef I2Cx,
uint16_t  I2C_IT 
)

Clears the I2Cx's interrupt pending bits.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
I2C_ITspecifies the interrupt pending bit to clear. This parameter can be a combination of the following values:
  • I2C_IT_RX_UNDER
  • I2C_IT_RX_OVER
  • I2C_IT_TX_OVER
  • I2C_IT_RD_REQ
  • I2C_IT_TX_ABRT
  • I2C_IT_RX_DONE
  • I2C_IT_ACTIVITY
  • I2C_IT_STOP_DET
  • I2C_IT_START_DET
  • I2C_IT_GEN_CALL
  • I2C_IT_RESTART_DET
  • I2C_IT_SCL_STUCK_AT_LOW
Returns
None.

◆ I2C_Cmd()

void I2C_Cmd ( I2C_TypeDef I2Cx,
FunctionalState  NewState 
)

Enables or disables the specified I2C peripheral.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
NewStatenew state of the I2Cx peripheral. This parameter can be: ENABLE or DISABLE.
Returns
None

◆ I2C_DeInit()

void I2C_DeInit ( I2C_TypeDef I2Cx)

Deinitializes the I2Cx peripheral registers to their default reset values.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
Returns
None

◆ I2C_DMACmd()

void I2C_DMACmd ( I2C_TypeDef I2Cx,
uint32_t  I2C_DMAReq,
FunctionalState  NewState 
)

Enables or disables the I2Cx's DMA interface.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
I2C_DMAReqspecifies the DMA request. This parameter can be any combination of the following values:
  • I2C_DMAReq_Rx: I2C DMA receive request
  • I2C_DMAReq_Tx: I2C DMA transmit request
NewStatenew state of the DMA Request sources. This parameter can be: ENABLE or DISABLE.
Returns
None.

◆ I2C_DMARxReqLevelConfig()

void I2C_DMARxReqLevelConfig ( I2C_TypeDef I2Cx,
uint8_t  Level 
)

Configures the DMA Rx request level.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
LevelThe level of the DMA Rx request to set.
Returns
None.

◆ I2C_DMATxReqLevelConfig()

void I2C_DMATxReqLevelConfig ( I2C_TypeDef I2Cx,
uint8_t  Level 
)

Configures the DMA Tx request level.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
LevelThe level of the DMA Tx request to set.
Returns
None.

◆ I2C_GetFlagStatus()

FlagStatus I2C_GetFlagStatus ( I2C_TypeDef I2Cx,
uint32_t  I2C_FLAG 
)

Checks whether the specified I2C flag is set or not.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
I2C_FLAGspecifies the flag to check. This parameter can be one of the following values:
  • I2C_FLAG_ACTIVITY
  • I2C_FLAG_TFNF
  • I2C_FLAG_TFE
  • I2C_FLAG_RFNE
  • I2C_FLAG_RFF
  • I2C_FLAG_MST_ACTIVITY
  • I2C_FLAG_SLV_ACTIVITY
  • I2C_FLAG_MST_HOLD_TX_FIFO_EMPTY
  • I2C_FLAG_MST_HOLD_RX_FIFO_FULL
  • I2C_FLAG_SLV_HOLD_TX_FIFO_EMPTY
  • I2C_FLAG_SLV_HOLD_RX_FIFO_FULL
  • I2C_FLAG_SDA_STUCK_NOT_RECOVERED
  • I2C_FLAG_SMBUS_QUICK_CMD_BIT
  • I2C_FLAG_SMBUS_SLAVE_ADDR_VALID
  • I2C_FLAG_SMBUS_SLAVE_ADDR_RESOLVED
  • I2C_FLAG_SMBUS_SUSPEND_STATUS
  • I2C_FLAG_SMBUS_ALERT_STATUS
Returns
The new state of I2C_FLAG (SET or RESET).

◆ I2C_GetITStatus()

ITStatus I2C_GetITStatus ( I2C_TypeDef I2Cx,
uint16_t  I2C_IT 
)

Checks whether the specified I2Cx interrupt has occurred or not.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
I2C_ITspecifies the I2C interrupt source to check. This parameter can be one of the following values:
  • I2C_IT_RX_UNDER
  • I2C_IT_RX_OVER
  • I2C_IT_RX_FULL
  • I2C_IT_TX_OVER
  • I2C_IT_TX_EMPTY
  • I2C_IT_RD_REQ
  • I2C_IT_TX_ABRT
  • I2C_IT_RX_DONE
  • I2C_IT_ACTIVITY
  • I2C_IT_STOP_DET
  • I2C_IT_START_DET
  • I2C_IT_GEN_CALL
  • I2C_IT_RESTART_DET
  • I2C_IT_SCL_STUCK_AT_LOW
Returns
The new state of I2C_IT (SET or RESET).

◆ I2C_GetRawITStatus()

ITStatus I2C_GetRawITStatus ( I2C_TypeDef I2Cx,
uint16_t  I2C_IT 
)

Checks whether the specified I2Cx raw interrupt status.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
I2C_ITspecifies the I2C interrupt source to check. This parameter can be one of the following values:
  • I2C_IT_RX_UNDER
  • I2C_IT_RX_OVER
  • I2C_IT_RX_FULL
  • I2C_IT_TX_OVER
  • I2C_IT_TX_EMPTY
  • I2C_IT_RD_REQ
  • I2C_IT_TX_ABRT
  • I2C_IT_RX_DONE
  • I2C_IT_ACTIVITY
  • I2C_IT_STOP_DET
  • I2C_IT_START_DET
  • I2C_IT_GEN_CALL
  • I2C_IT_RESTART_DET
  • I2C_IT_SCL_STUCK_AT_LOW
Returns
The new state of raw I2C_IT (SET or RESET).

◆ I2C_GetRxFIFOLevel()

uint8_t I2C_GetRxFIFOLevel ( I2C_TypeDef I2Cx)

Returns the number of valid data entries in the receive FIFO buffer.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
Returns
The number of valid data entries in the receive FIFO.

◆ I2C_GetTxAbortSource()

uint32_t I2C_GetTxAbortSource ( I2C_TypeDef I2Cx)

Returns the transmit abort source for the specified I2C.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
Returns
The transmit abort source.

◆ I2C_GetTxFIFOLevel()

uint8_t I2C_GetTxFIFOLevel ( I2C_TypeDef I2Cx)

Returns the number of valid data entries in the transmit FIFO buffer.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
Returns
The number of valid data entries in the transmit FIFO.

◆ I2C_HighSpeedModeMasterCodeConfig()

void I2C_HighSpeedModeMasterCodeConfig ( I2C_TypeDef I2Cx,
uint8_t  Code 
)

Configures the I2C HS mode master code.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C2.
Codespecifies the I2C HS mode master code.
Returns
None

◆ I2C_Init()

void I2C_Init ( I2C_TypeDef I2Cx,
uint32_t  I2C_CON 
)

Initializes the I2Cx peripheral according to the specified parameters in the I2C_InitStruct.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
I2C_CONspecifies the configuration for the specified I2C peripheral.
Returns
None

◆ I2C_ITConfig()

void I2C_ITConfig ( I2C_TypeDef I2Cx,
uint16_t  I2C_IT,
FunctionalState  NewState 
)

Enables or disables the specified I2C interrupts.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
I2C_ITspecifies the I2C interrupt source to be enabled or disabled. This parameter can be a combination of the following values:
  • I2C_IT_RX_UNDER
  • I2C_IT_RX_OVER
  • I2C_IT_RX_FULL
  • I2C_IT_TX_OVER
  • I2C_IT_TX_EMPTY
  • I2C_IT_RD_REQ
  • I2C_IT_TX_ABRT
  • I2C_IT_RX_DONE
  • I2C_IT_ACTIVITY
  • I2C_IT_STOP_DET
  • I2C_IT_START_DET
  • I2C_IT_GEN_CALL
  • I2C_IT_RESTART_DET
  • I2C_IT_SCL_STUCK_AT_LOW
NewStatenew state of the specified I2C interrupt. This parameter can be: ENABLE or DISABLE.
Returns
None.

◆ I2C_OwnAddressConfig()

void I2C_OwnAddressConfig ( I2C_TypeDef I2Cx,
uint16_t  Address 
)

Configures the specified I2C own address.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
Addressspecifies the I2C own address.
Returns
None

◆ I2C_ReadData()

uint16_t I2C_ReadData ( I2C_TypeDef I2Cx)

Read data from Rx FIFO.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
Returns
The received data.

◆ I2C_RxFIFOThresholdConfig()

void I2C_RxFIFOThresholdConfig ( I2C_TypeDef I2Cx,
uint8_t  Threshold 
)

Configures the Receive FIFO threshold.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
ThresholdThe Receive FIFO threshold to set.
TheRX_FULL interrupt will trigger when the level > Threshold.
Returns
None.

◆ I2C_SCLStuckAtLowTimeoutConfig()

void I2C_SCLStuckAtLowTimeoutConfig ( I2C_TypeDef I2Cx,
uint32_t  Timeout 
)

Configures the specified I2C SCL stuck at low timeout.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
Timeoutspecifies the SCL stuck at low timeout.
Returns
None

◆ I2C_SDAStuckAtLowTimeoutConfig()

void I2C_SDAStuckAtLowTimeoutConfig ( I2C_TypeDef I2Cx,
uint32_t  Timeout 
)

Configures the specified I2C SDA stuck at low timeout.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
Timeoutspecifies the SDA stuck at low timeout.
Returns
None

◆ I2C_SlaveDataNAckOnlyConfig()

void I2C_SlaveDataNAckOnlyConfig ( I2C_TypeDef I2Cx,
FunctionalState  NewState 
)

Enables or disables generate NACK after data byte received when as slave-receiver.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
NewStatenew state of generate NACK after data byte received. This parameter can be: ENABLE or DISABLE.
Returns
None

◆ I2C_SMBus_ClearITPendingBit()

void I2C_SMBus_ClearITPendingBit ( I2C_TypeDef I2Cx,
uint16_t  I2C_SMBUS_IT 
)

Clears the I2Cx's interrupt pending bits.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1.
I2C_SMBUS_ITspecifies the interrupt pending bit to clear. This parameter can be a combination of the following values:
  • I2C_SMBUS_IT_SLV_CLOCK_EXTND_TIMEOUT
  • I2C_SMBUS_IT_MST_CLOCK_EXTND_TIMEOUT
  • I2C_SMBUS_IT_QUICK_CMD_DET
  • I2C_SMBUS_IT_HOST_NTFY_MST_DET
  • I2C_SMBUS_IT_ARP_PREPARE_CMD_DET
  • I2C_SMBUS_IT_ARP_RST_CMD_DET
  • I2C_SMBUS_IT_ARP_GET_UDID_CMD_DET
  • I2C_SMBUS_IT_ARP_ASSGN_ADDR_CMD_DET
  • I2C_SMBUS_IT_SLV_RX_PEC_NACK
  • I2C_SMBUS_IT_SMBUS_SUSPEND_DET
  • I2C_SMBUS_IT_SMBUS_ALERT_DET
Returns
None.

◆ I2C_SMBus_GetITStatus()

ITStatus I2C_SMBus_GetITStatus ( I2C_TypeDef I2Cx,
uint16_t  I2C_SMBUS_IT 
)

Checks whether the specified SMBus interrupt has occurred or not.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1.
I2C_SMBUS_ITspecifies the SMBus interrupt source to check. This parameter can be one of the following values:
  • I2C_SMBUS_IT_SLV_CLOCK_EXTND_TIMEOUT
  • I2C_SMBUS_IT_MST_CLOCK_EXTND_TIMEOUT
  • I2C_SMBUS_IT_QUICK_CMD_DET
  • I2C_SMBUS_IT_HOST_NTFY_MST_DET
  • I2C_SMBUS_IT_ARP_PREPARE_CMD_DET
  • I2C_SMBUS_IT_ARP_RST_CMD_DET
  • I2C_SMBUS_IT_ARP_GET_UDID_CMD_DET
  • I2C_SMBUS_IT_ARP_ASSGN_ADDR_CMD_DET
  • I2C_SMBUS_IT_SLV_RX_PEC_NACK
  • I2C_SMBUS_IT_SMBUS_SUSPEND_DET
  • I2C_SMBUS_IT_SMBUS_ALERT_DET
Returns
The new state of I2C_SMBUS_IT (SET or RESET).

◆ I2C_SMBus_GetRawITStatus()

ITStatus I2C_SMBus_GetRawITStatus ( I2C_TypeDef I2Cx,
uint16_t  I2C_SMBUS_IT 
)

Checks whether the specified SMBus raw interrupt status.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1.
I2C_SMBUS_ITspecifies the SMBus interrupt source to check. This parameter can be one of the following values:
  • I2C_SMBUS_IT_SLV_CLOCK_EXTND_TIMEOUT
  • I2C_SMBUS_IT_MST_CLOCK_EXTND_TIMEOUT
  • I2C_SMBUS_IT_QUICK_CMD_DET
  • I2C_SMBUS_IT_HOST_NTFY_MST_DET
  • I2C_SMBUS_IT_ARP_PREPARE_CMD_DET
  • I2C_SMBUS_IT_ARP_RST_CMD_DET
  • I2C_SMBUS_IT_ARP_GET_UDID_CMD_DET
  • I2C_SMBUS_IT_ARP_ASSGN_ADDR_CMD_DET
  • I2C_SMBUS_IT_SLV_RX_PEC_NACK
  • I2C_SMBUS_IT_SMBUS_SUSPEND_DET
  • I2C_SMBUS_IT_SMBUS_ALERT_DET
Returns
The new state of raw I2C_SMBUS_IT (SET or RESET).

◆ I2C_SMBus_ITConfig()

void I2C_SMBus_ITConfig ( I2C_TypeDef I2Cx,
uint16_t  I2C_SMBUS_IT,
FunctionalState  NewState 
)

Enables or disables the specified SMBus interrupts.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1.
I2C_SMBUS_ITspecifies the SMBus interrupt source to be enabled or disabled. This parameter can be a combination of the following values:
  • I2C_SMBUS_IT_SLV_CLOCK_EXTND_TIMEOUT
  • I2C_SMBUS_IT_MST_CLOCK_EXTND_TIMEOUT
  • I2C_SMBUS_IT_QUICK_CMD_DET
  • I2C_SMBUS_IT_HOST_NTFY_MST_DET
  • I2C_SMBUS_IT_ARP_PREPARE_CMD_DET
  • I2C_SMBUS_IT_ARP_RST_CMD_DET
  • I2C_SMBUS_IT_ARP_GET_UDID_CMD_DET
  • I2C_SMBUS_IT_ARP_ASSGN_ADDR_CMD_DET
  • I2C_SMBUS_IT_SLV_RX_PEC_NACK
  • I2C_SMBUS_IT_SMBUS_SUSPEND_DET
  • I2C_SMBUS_IT_SMBUS_ALERT_DET
NewStatenew state of the specified SMBus interrupt. This parameter can be: ENABLE or DISABLE.
Returns
None.

◆ I2C_TargetAddressConfig()

void I2C_TargetAddressConfig ( I2C_TypeDef I2Cx,
uint32_t  TargetAddress 
)

Configures the specified I2C target address.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
TargetAddressspecifies the I2C target address.
Returns
None

◆ I2C_TxFIFOThresholdConfig()

void I2C_TxFIFOThresholdConfig ( I2C_TypeDef I2Cx,
uint8_t  Threshold 
)

Configures the Transmit FIFO threshold.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
ThresholdThe Transmit FIFO threshold to set.
Note
The TX_EMPTY interrupt will trigger when the level <= Threshold.
Returns
None.

◆ I2C_WriteDataCmd()

void I2C_WriteDataCmd ( I2C_TypeDef I2Cx,
uint16_t  I2C_DataCmd 
)

Write data and command Tx FIFO.

Parameters
I2CxPointer to selected I2C peripheral. This parameter can be one of the following values: I2C1, I2C2.
I2C_DataCmdthe data and command to write.
Returns
None