5#ifdef HAL_I2C_MODULE_ENABLED
44stm32_i2c_id_t STM32_I2C_GetID(I2C_TypeDef *hi2c);
51 STM32I2C(I2C_HandleTypeDef *hi2c,
RawData dma_buff, uint32_t dma_enable_min_size = 3);
58 ErrorCode
MemRead(uint16_t slave_addr, uint16_t mem_addr,
RawData read_data,
64 template <
typename,
typename =
void>
70 struct HasClockSpeed<T, std::void_t<decltype(std::declval<T>()->Init.ClockSpeed)>>
76 typename std::enable_if<!HasClockSpeed<T>::value>::type SetClockSpeed(
82 typename std::enable_if<HasClockSpeed<T>::value>::type SetClockSpeed(
83 T &i2c_handle,
const Configuration &config)
85 i2c_handle->Init.ClockSpeed = config.clock_speed;
88 ErrorCode
SetConfig(Configuration config)
override;
91 I2C_HandleTypeDef *i2c_handle_;
92 uint32_t dma_enable_min_size_;
102 static STM32I2C *map[STM32_I2C_NUMBER];
常量原始数据封装类。 A class for encapsulating constant raw data.
I2C(Inter-Integrated Circuit)接口类。 I2C (Inter-Integrated Circuit) interface class.
原始数据封装类。 A class for encapsulating raw data.
ErrorCode SetConfig(Configuration config) override
配置 I2C 设备参数。 Configures the I2C device settings.
ErrorCode Write(uint16_t slave_addr, ConstRawData write_data, WriteOperation &op) override
向 I2C 设备写入数据。 Writes data to an I2C device.
ErrorCode MemWrite(uint16_t slave_addr, uint16_t mem_addr, ConstRawData write_data, WriteOperation &op, MemAddrLength mem_addr_size) override
向 I2C 设备指定寄存器写入数据。 Writes data to a specific register of an I2C device.
ErrorCode MemRead(uint16_t slave_addr, uint16_t mem_addr, RawData read_data, ReadOperation &op, MemAddrLength mem_addr_size) override
从 I2C 设备指定寄存器读取数据。 Reads data from a specific register of an I2C device.
ErrorCode Read(uint16_t slave_addr, RawData read_data, ReadOperation &op) override
读取 I2C 设备的数据。 Reads data from an I2C device.
Operation< ErrorCode > ReadOperation
Read operation type.
Operation< ErrorCode > WriteOperation
Write operation type.
I2C 设备的配置信息结构体。 Configuration structure for an I2C device.