STM32G474xx HAL用户手册
宏定义 | 函数
stm32g4xx_hal_i2c.c文件参考

I2C HAL模块驱动程序。本文件提供固件函数来管理集成电路(I2C)外设的以下功能:+初始化和去初始化函数+IO操作函数+外设状态和错误函数。 更多...

#include "stm32g4xx_hal.h"

转到此文件的源代码。

宏定义

#define TIMING_CLEAR_MASK   (0xF0FFFFFFU)
#define I2C_TIMEOUT_ADDR   (10000U)
#define I2C_TIMEOUT_BUSY   (25U)
#define I2C_TIMEOUT_DIR   (25U)
#define I2C_TIMEOUT_RXNE   (25U)
#define I2C_TIMEOUT_STOPF   (25U)
#define I2C_TIMEOUT_TC   (25U)
#define I2C_TIMEOUT_TCR   (25U)
#define I2C_TIMEOUT_TXIS   (25U)
#define I2C_TIMEOUT_FLAG   (25U)
#define MAX_NBYTE_SIZE   255U
#define SLAVE_ADDR_SHIFT   7U
#define SLAVE_ADDR_MSK   0x06U
#define I2C_STATE_MSK
#define I2C_STATE_NONE   ((uint32_t)(HAL_I2C_MODE_NONE))
#define I2C_STATE_MASTER_BUSY_TX
#define I2C_STATE_MASTER_BUSY_RX
#define I2C_STATE_SLAVE_BUSY_TX
#define I2C_STATE_SLAVE_BUSY_RX
#define I2C_STATE_MEM_BUSY_TX
#define I2C_STATE_MEM_BUSY_RX
#define I2C_XFER_TX_IT   (uint16_t)(0x0001U)
#define I2C_XFER_RX_IT   (uint16_t)(0x0002U)
#define I2C_XFER_LISTEN_IT   (uint16_t)(0x8000U)
#define I2C_XFER_ERROR_IT   (uint16_t)(0x0010U)
#define I2C_XFER_CPLT_IT   (uint16_t)(0x0020U)
#define I2C_XFER_RELOAD_IT   (uint16_t)(0x0040U)
#define I2C_NO_OPTION_FRAME   (0xFFFF0000U)
#define I2C_GET_DMA_REMAIN_DATA(__HANDLE__)   __HAL_DMA_GET_COUNTER(__HANDLE__)

函数

static void I2C_DMAMasterTransmitCplt (DMA_HandleTypeDef *hdma)
 DMA I2C主机发送过程完成回调。
static void I2C_DMAMasterReceiveCplt (DMA_HandleTypeDef *hdma)
 DMA I2C主机接收过程完成回调。
static void I2C_DMASlaveTransmitCplt (DMA_HandleTypeDef *hdma)
 DMA I2C从机发送过程完成回调。
static void I2C_DMASlaveReceiveCplt (DMA_HandleTypeDef *hdma)
 DMA I2C从机接收过程完成回调。
static void I2C_DMAError (DMA_HandleTypeDef *hdma)
 DMA I2C通信错误回调。
static void I2C_DMAAbort (DMA_HandleTypeDef *hdma)
 DMA I2C通信中止回调(在DMA中止程序结束时调用)。
static void I2C_ITAddrCplt (I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
 I2C地址完成过程回调。
static void I2C_ITMasterSeqCplt (I2C_HandleTypeDef *hi2c)
 I2C主机顺序完成过程。
static void I2C_ITSlaveSeqCplt (I2C_HandleTypeDef *hi2c)
 I2C从机顺序完成过程。
static void I2C_ITMasterCplt (I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
 I2C主机完成过程。
static void I2C_ITSlaveCplt (I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
 I2C从机完成过程。
static void I2C_ITListenCplt (I2C_HandleTypeDef *hi2c, uint32_t ITFlags)
 I2C监听完成过程。
static void I2C_ITError (I2C_HandleTypeDef *hi2c, uint32_t ErrorCode)
 I2C中断错误处理。
static HAL_StatusTypeDef I2C_RequestMemoryWrite (I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, uint32_t Tickstart)
 主机发送目标设备地址后跟写入请求的内部存储器地址。
static HAL_StatusTypeDef I2C_RequestMemoryRead (I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint32_t Timeout, uint32_t Tickstart)
 主机发送目标设备地址后跟读取请求的内部存储器地址。
static HAL_StatusTypeDef I2C_Master_ISR_IT (struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint32_t ITSources)
 中断子程序,用于在中断模式下处理主机模式的中断标志。
static HAL_StatusTypeDef I2C_Mem_ISR_IT (struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint32_t ITSources)
 中断子程序,用于在中断模式下处理存储器模式的中断标志。
static HAL_StatusTypeDef I2C_Slave_ISR_IT (struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, uint32_t ITSources)
 中断子程序,用于在中断模式下处理从机模式的中断标志。