Modules | |
Initialization and Configuration functions | |
Initialization and Configuration functions. | |
Data transfers functions | |
Data transfers functions. | |
PEC management functions | |
PEC management functions. | |
DMA transfers management functions | |
DMA transfers management functions. | |
Interrupts events and flags management functions | |
Interrupts, events and flags management functions. | |
DMA transfers management functions | |
DMA transfers management functions. | |
Interrupts and flags management functions | |
Interrupts and flags management functions. | |
Functions | |
void | I2C_AcknowledgeConfig (I2C_TypeDef *I2Cx, FunctionalState NewState) |
Enables or disables the specified I2C acknowledge feature. More... | |
void | I2C_ARPCmd (I2C_TypeDef *I2Cx, FunctionalState NewState) |
Enables or disables the specified I2C ARP. More... | |
void | I2C_CalculatePEC (I2C_TypeDef *I2Cx, FunctionalState NewState) |
Enables or disables the PEC value calculation of the transferred bytes. More... | |
ErrorStatus | I2C_CheckEvent (I2C_TypeDef *I2Cx, uint32_t I2C_EVENT) |
I2C State Monitoring Functions. More... | |
void | I2C_ClearFlag (I2C_TypeDef *I2Cx, uint32_t I2C_FLAG) |
Clears the I2Cx's pending flags. More... | |
void | I2C_ClearITPendingBit (I2C_TypeDef *I2Cx, uint32_t I2C_IT) |
Clears the I2Cx’s interrupt pending bits. More... | |
void | I2C_Cmd (I2C_TypeDef *I2Cx, FunctionalState NewState) |
Enables or disables the specified I2C peripheral. More... | |
void | I2C_DeInit (I2C_TypeDef *I2Cx) |
Deinitializes the I2Cx peripheral registers to their default reset values. More... | |
void | I2C_DMACmd (I2C_TypeDef *I2Cx, FunctionalState NewState) |
Enables or disables the specified I2C DMA requests. More... | |
void | I2C_DMALastTransferCmd (I2C_TypeDef *I2Cx, FunctionalState NewState) |
Specifies if the next DMA transfer will be the last one. More... | |
void | I2C_DualAddressCmd (I2C_TypeDef *I2Cx, FunctionalState NewState) |
Enables or disables the specified I2C dual addressing mode. More... | |
void | I2C_FastModeDutyCycleConfig (I2C_TypeDef *I2Cx, uint16_t I2C_DutyCycle) |
Selects the specified I2C fast mode duty cycle. More... | |
void | I2C_GeneralCallCmd (I2C_TypeDef *I2Cx, FunctionalState NewState) |
Enables or disables the specified I2C general call feature. More... | |
void | I2C_GenerateSTART (I2C_TypeDef *I2Cx, FunctionalState NewState) |
Generates I2Cx communication START condition. More... | |
void | I2C_GenerateSTOP (I2C_TypeDef *I2Cx, FunctionalState NewState) |
Generates I2Cx communication STOP condition. More... | |
FlagStatus | I2C_GetFlagStatus (I2C_TypeDef *I2Cx, uint32_t I2C_FLAG) |
Checks whether the specified I2C flag is set or not. More... | |
ITStatus | I2C_GetITStatus (I2C_TypeDef *I2Cx, uint32_t I2C_IT) |
Checks whether the specified I2C interrupt has occurred or not. More... | |
uint32_t | I2C_GetLastEvent (I2C_TypeDef *I2Cx) |
Returns the last I2Cx Event. More... | |
uint8_t | I2C_GetPEC (I2C_TypeDef *I2Cx) |
Returns the PEC value for the specified I2C. More... | |
void | I2C_Init (I2C_TypeDef *I2Cx, I2C_InitTypeDef *I2C_InitStruct) |
Initializes the I2Cx peripheral according to the specified parameters in the I2C_InitStruct. More... | |
void | I2C_ITConfig (I2C_TypeDef *I2Cx, uint16_t I2C_IT, FunctionalState NewState) |
Enables or disables the specified I2C interrupts. More... | |
void | I2C_NACKPositionConfig (I2C_TypeDef *I2Cx, uint16_t I2C_NACKPosition) |
Selects the specified I2C NACK position in master receiver mode. This function is useful in I2C Master Receiver mode when the number of data to be received is equal to 2. In this case, this function should be called (with parameter I2C_NACKPosition_Next) before data reception starts,as described in the 2-byte reception procedure recommended in Reference Manual in Section: Master receiver. More... | |
void | I2C_OwnAddress2Config (I2C_TypeDef *I2Cx, uint8_t Address) |
Configures the specified I2C own address2. More... | |
void | I2C_PECPositionConfig (I2C_TypeDef *I2Cx, uint16_t I2C_PECPosition) |
Selects the specified I2C PEC position. More... | |
uint16_t | I2C_ReadRegister (I2C_TypeDef *I2Cx, uint8_t I2C_Register) |
Reads the specified I2C register and returns its value. More... | |
uint8_t | I2C_ReceiveData (I2C_TypeDef *I2Cx) |
Returns the most recent received data by the I2Cx peripheral. More... | |
void | I2C_Send7bitAddress (I2C_TypeDef *I2Cx, uint8_t Address, uint8_t I2C_Direction) |
Transmits the address byte to select the slave device. More... | |
void | I2C_SendData (I2C_TypeDef *I2Cx, uint8_t Data) |
Sends a data byte through the I2Cx peripheral. More... | |
void | I2C_SMBusAlertConfig (I2C_TypeDef *I2Cx, uint16_t I2C_SMBusAlert) |
Drives the SMBusAlert pin high or low for the specified I2C. More... | |
void | I2C_SoftwareResetCmd (I2C_TypeDef *I2Cx, FunctionalState NewState) |
Enables or disables the specified I2C software reset. More... | |
void | I2C_StretchClockCmd (I2C_TypeDef *I2Cx, FunctionalState NewState) |
Enables or disables the specified I2C Clock stretching. More... | |
void | I2C_StructInit (I2C_InitTypeDef *I2C_InitStruct) |
Fills each I2C_InitStruct member with its default value. More... | |
void | I2C_TransmitPEC (I2C_TypeDef *I2Cx, FunctionalState NewState) |
Enables or disables the specified I2C PEC transfer. More... | |
void I2C_AcknowledgeConfig | ( | I2C_TypeDef * | I2Cx, |
FunctionalState | NewState | ||
) |
Enables or disables the specified I2C acknowledge feature.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
NewState | new state of the I2C Acknowledgement. This parameter can be: ENABLE or DISABLE. |
None. |
Definition at line 442 of file stm32f10x_i2c.c.
void I2C_ARPCmd | ( | I2C_TypeDef * | I2Cx, |
FunctionalState | NewState | ||
) |
Enables or disables the specified I2C ARP.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
NewState | new state of the I2Cx ARP. This parameter can be: ENABLE or DISABLE. |
None |
Definition at line 840 of file stm32f10x_i2c.c.
void I2C_CalculatePEC | ( | I2C_TypeDef * | I2Cx, |
FunctionalState | NewState | ||
) |
Enables or disables the PEC value calculation of the transferred bytes.
Enables or disables I2C PEC calculation.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
NewState | new state of the I2Cx PEC value calculation. This parameter can be: ENABLE or DISABLE. |
None |
Definition at line 803 of file stm32f10x_i2c.c.
ErrorStatus I2C_CheckEvent | ( | I2C_TypeDef * | I2Cx, |
uint32_t | I2C_EVENT | ||
) |
I2C State Monitoring Functions.
Checks whether the last I2Cx Event is equal to the one passed as parameter.
This I2C driver provides three different ways for I2C state monitoring depending on the application requirements and constraints:
1) Basic state monitoring: Using I2C_CheckEvent() function: It compares the status registers (SR1 and SR2) content to a given event (can be the combination of one or more flags). It returns SUCCESS if the current status includes the given flags and returns ERROR if one or more flags are missing in the current status.
If an error occurs (ie. error flags are set besides to the monitored flags), the I2C_CheckEvent() function may return SUCCESS despite the communication hold or corrupted real state. In this case, it is advised to use error interrupts to monitor the error events and handle them in the interrupt IRQ handler.
2) Advanced state monitoring: Using the function I2C_GetLastEvent() which returns the image of both status registers in a single word (uint32_t) (Status Register 2 value is shifted left by 16 bits and concatenated to Status Register 1).
When to use:
Limitations:
3) Flag-based state monitoring: Using the function I2C_GetFlagStatus() which simply returns the status of one single flag (ie. I2C_FLAG_RXNE ...).
For detailed description of Events, please refer to section I2C_Events in stm32f10x_i2c.h file.
1) Basic state monitoring Checks whether the last I2Cx Event is equal to the one passed as parameter.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
I2C_EVENT | specifies the event to be checked. This parameter can be one of the following values:
|
An | ErrorStatus enumeration value:
|
Definition at line 1030 of file stm32f10x_i2c.c.
void I2C_ClearFlag | ( | I2C_TypeDef * | I2Cx, |
uint32_t | I2C_FLAG | ||
) |
Clears the I2Cx's pending flags.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
I2C_FLAG | specifies the flag to clear. This parameter can be any combination of the following values:
|
None |
Definition at line 1212 of file stm32f10x_i2c.c.
void I2C_ClearITPendingBit | ( | I2C_TypeDef * | I2Cx, |
uint32_t | I2C_IT | ||
) |
Clears the I2Cx’s interrupt pending bits.
Clears the I2Cx's interrupt pending bits.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
I2C_IT | specifies the interrupt pending bit to clear. This parameter can be any combination of the following values:
|
None |
Definition at line 1307 of file stm32f10x_i2c.c.
void I2C_Cmd | ( | I2C_TypeDef * | I2Cx, |
FunctionalState | NewState | ||
) |
Enables or disables the specified I2C peripheral.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
NewState | new state of the I2Cx peripheral. This parameter can be: ENABLE or DISABLE. |
None |
Definition at line 322 of file stm32f10x_i2c.c.
void I2C_DeInit | ( | I2C_TypeDef * | I2Cx | ) |
Deinitializes the I2Cx peripheral registers to their default reset values.
Deinitialize the I2Cx peripheral registers to their default reset values.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
None |
Definition at line 162 of file stm32f10x_i2c.c.
void I2C_DMACmd | ( | I2C_TypeDef * | I2Cx, |
FunctionalState | NewState | ||
) |
Enables or disables the specified I2C DMA requests.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
NewState | new state of the I2C DMA transfer. This parameter can be: ENABLE or DISABLE. |
None |
Definition at line 346 of file stm32f10x_i2c.c.
void I2C_DMALastTransferCmd | ( | I2C_TypeDef * | I2Cx, |
FunctionalState | NewState | ||
) |
Specifies if the next DMA transfer will be the last one.
Specifies that the next DMA transfer is the last one.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
NewState | new state of the I2C DMA last transfer. This parameter can be: ENABLE or DISABLE. |
None |
Definition at line 370 of file stm32f10x_i2c.c.
void I2C_DualAddressCmd | ( | I2C_TypeDef * | I2Cx, |
FunctionalState | NewState | ||
) |
Enables or disables the specified I2C dual addressing mode.
Enables or disables the I2C own address 2.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
NewState | new state of the I2C dual addressing mode. This parameter can be: ENABLE or DISABLE. |
None |
Definition at line 492 of file stm32f10x_i2c.c.
void I2C_FastModeDutyCycleConfig | ( | I2C_TypeDef * | I2Cx, |
uint16_t | I2C_DutyCycle | ||
) |
Selects the specified I2C fast mode duty cycle.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
I2C_DutyCycle | specifies the fast mode duty cycle. This parameter can be one of the following values: |
None |
Definition at line 890 of file stm32f10x_i2c.c.
void I2C_GeneralCallCmd | ( | I2C_TypeDef * | I2Cx, |
FunctionalState | NewState | ||
) |
Enables or disables the specified I2C general call feature.
Enables or disables the I2C general call mode.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
NewState | new state of the I2C General call. This parameter can be: ENABLE or DISABLE. |
None |
Definition at line 516 of file stm32f10x_i2c.c.
void I2C_GenerateSTART | ( | I2C_TypeDef * | I2Cx, |
FunctionalState | NewState | ||
) |
Generates I2Cx communication START condition.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
NewState | new state of the I2C START condition generation. This parameter can be: ENABLE or DISABLE. |
None. |
Definition at line 394 of file stm32f10x_i2c.c.
void I2C_GenerateSTOP | ( | I2C_TypeDef * | I2Cx, |
FunctionalState | NewState | ||
) |
Generates I2Cx communication STOP condition.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
NewState | new state of the I2C STOP condition generation. This parameter can be: ENABLE or DISABLE. |
None. |
Definition at line 418 of file stm32f10x_i2c.c.
FlagStatus I2C_GetFlagStatus | ( | I2C_TypeDef * | I2Cx, |
uint32_t | I2C_FLAG | ||
) |
Checks whether the specified I2C flag is set or not.
3) Flag-based state monitoring
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
I2C_FLAG | specifies the flag to check. This parameter can be one of the following values:
|
The | new state of I2C_FLAG (SET or RESET). |
Definition at line 1133 of file stm32f10x_i2c.c.
ITStatus I2C_GetITStatus | ( | I2C_TypeDef * | I2Cx, |
uint32_t | I2C_IT | ||
) |
Checks whether the specified I2C interrupt has occurred or not.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
I2C_IT | specifies the interrupt source to check. This parameter can be one of the following values:
|
The | new state of I2C_IT (SET or RESET). |
Definition at line 1246 of file stm32f10x_i2c.c.
uint32_t I2C_GetLastEvent | ( | I2C_TypeDef * | I2Cx | ) |
Returns the last I2Cx Event.
2) Advanced state monitoring
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
The | last event |
Definition at line 1078 of file stm32f10x_i2c.c.
uint8_t I2C_GetPEC | ( | I2C_TypeDef * | I2Cx | ) |
Returns the PEC value for the specified I2C.
Returns the I2C PEC.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
The | PEC value. |
Definition at line 825 of file stm32f10x_i2c.c.
void I2C_Init | ( | I2C_TypeDef * | I2Cx, |
I2C_InitTypeDef * | I2C_InitStruct | ||
) |
Initializes the I2Cx peripheral according to the specified parameters in the I2C_InitStruct.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
I2C_InitStruct | pointer to a I2C_InitTypeDef structure that contains the configuration information for the specified I2C peripheral. |
None |
Definition at line 191 of file stm32f10x_i2c.c.
void I2C_ITConfig | ( | I2C_TypeDef * | I2Cx, |
uint16_t | I2C_IT, | ||
FunctionalState | NewState | ||
) |
Enables or disables the specified I2C interrupts.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
I2C_IT | specifies the I2C interrupts sources to be enabled or disabled. This parameter can be any combination of the following values:
|
NewState | new state of the specified I2C interrupts. This parameter can be: ENABLE or DISABLE. |
None |
Definition at line 545 of file stm32f10x_i2c.c.
void I2C_NACKPositionConfig | ( | I2C_TypeDef * | I2Cx, |
uint16_t | I2C_NACKPosition | ||
) |
Selects the specified I2C NACK position in master receiver mode. This function is useful in I2C Master Receiver mode when the number of data to be received is equal to 2. In this case, this function should be called (with parameter I2C_NACKPosition_Next) before data reception starts,as described in the 2-byte reception procedure recommended in Reference Manual in Section: Master receiver.
Selects the specified I2C NACK position in master receiver mode.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
I2C_NACKPosition | specifies the NACK position. This parameter can be one of the following values:
|
None |
Definition at line 696 of file stm32f10x_i2c.c.
void I2C_OwnAddress2Config | ( | I2C_TypeDef * | I2Cx, |
uint8_t | Address | ||
) |
Configures the specified I2C own address2.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
Address | specifies the 7bit I2C own address2. |
None. |
Definition at line 465 of file stm32f10x_i2c.c.
void I2C_PECPositionConfig | ( | I2C_TypeDef * | I2Cx, |
uint16_t | I2C_PECPosition | ||
) |
Selects the specified I2C PEC position.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
I2C_PECPosition | specifies the PEC position. This parameter can be one of the following values:
|
None |
Definition at line 779 of file stm32f10x_i2c.c.
uint16_t I2C_ReadRegister | ( | I2C_TypeDef * | I2Cx, |
uint8_t | I2C_Register | ||
) |
Reads the specified I2C register and returns its value.
I2C_Register | specifies the register to read. This parameter can be one of the following values:
|
The | value of the read register. |
Definition at line 636 of file stm32f10x_i2c.c.
uint8_t I2C_ReceiveData | ( | I2C_TypeDef * | I2Cx | ) |
Returns the most recent received data by the I2Cx peripheral.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
The | value of the received data. |
Definition at line 583 of file stm32f10x_i2c.c.
void I2C_Send7bitAddress | ( | I2C_TypeDef * | I2Cx, |
uint8_t | Address, | ||
uint8_t | I2C_Direction | ||
) |
Transmits the address byte to select the slave device.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
Address | specifies the slave address which will be transmitted |
I2C_Direction | specifies whether the I2C device will be a Transmitter or a Receiver. This parameter can be one of the following values
|
None. |
Definition at line 601 of file stm32f10x_i2c.c.
void I2C_SendData | ( | I2C_TypeDef * | I2Cx, |
uint8_t | Data | ||
) |
Sends a data byte through the I2Cx peripheral.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
Data | Byte to be transmitted.. |
None |
Definition at line 570 of file stm32f10x_i2c.c.
void I2C_SMBusAlertConfig | ( | I2C_TypeDef * | I2Cx, |
uint16_t | I2C_SMBusAlert | ||
) |
Drives the SMBusAlert pin high or low for the specified I2C.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
I2C_SMBusAlert | specifies SMBAlert pin level. This parameter can be one of the following values:
|
None |
Definition at line 724 of file stm32f10x_i2c.c.
void I2C_SoftwareResetCmd | ( | I2C_TypeDef * | I2Cx, |
FunctionalState | NewState | ||
) |
Enables or disables the specified I2C software reset.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
NewState | new state of the I2C software reset. This parameter can be: ENABLE or DISABLE. |
None |
Definition at line 658 of file stm32f10x_i2c.c.
void I2C_StretchClockCmd | ( | I2C_TypeDef * | I2Cx, |
FunctionalState | NewState | ||
) |
Enables or disables the specified I2C Clock stretching.
Enables or disables the I2C Clock stretching.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
NewState | new state of the I2Cx Clock stretching. This parameter can be: ENABLE or DISABLE. |
None |
Definition at line 864 of file stm32f10x_i2c.c.
void I2C_StructInit | ( | I2C_InitTypeDef * | I2C_InitStruct | ) |
Fills each I2C_InitStruct member with its default value.
I2C_InitStruct | pointer to an I2C_InitTypeDef structure which will be initialized. |
None |
Definition at line 298 of file stm32f10x_i2c.c.
void I2C_TransmitPEC | ( | I2C_TypeDef * | I2Cx, |
FunctionalState | NewState | ||
) |
Enables or disables the specified I2C PEC transfer.
I2Cx | where x can be 1 or 2 to select the I2C peripheral. |
NewState | new state of the I2C PEC transmission. This parameter can be: ENABLE or DISABLE. |
None |
Definition at line 748 of file stm32f10x_i2c.c.