5#ifdef HAL_I2C_MODULE_ENABLED
44stm32_i2c_id_t STM32_I2C_GetID(I2C_TypeDef* hi2c);
57 STM32I2C(I2C_HandleTypeDef* hi2c,
RawData dma_buff, uint32_t dma_enable_min_size = 3);
60 bool in_isr)
override;
63 bool in_isr)
override;
65 ErrorCode
MemRead(uint16_t slave_addr, uint16_t mem_addr,
RawData read_data,
66 ReadOperation& op, MemAddrLength mem_addr_size,
bool in_isr)
override;
70 bool in_isr)
override;
72 template <
typename,
typename =
void>
78 struct HasClockSpeed<T, std::void_t<decltype(std::declval<T>()->Init.ClockSpeed)>>
84 typename std::enable_if<!HasClockSpeed<T>::value>::type SetClockSpeed(
90 typename std::enable_if<HasClockSpeed<T>::value>::type SetClockSpeed(
91 T& i2c_handle,
const Configuration& config)
93 i2c_handle->Init.ClockSpeed = config.clock_speed;
96 ErrorCode
SetConfig(Configuration config)
override;
99 I2C_HandleTypeDef* i2c_handle_;
100 uint32_t dma_enable_min_size_;
110 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.
STM32 I2C 驱动实现 / STM32 I2C driver implementation.
ErrorCode SetConfig(Configuration config) override
配置 I2C 设备参数。 Configures the I2C device settings.
ErrorCode MemRead(uint16_t slave_addr, uint16_t mem_addr, RawData read_data, ReadOperation &op, MemAddrLength mem_addr_size, bool in_isr) override
从 I2C 设备指定寄存器读取数据。 Reads data from a specific register of an I2C device.
ErrorCode MemWrite(uint16_t slave_addr, uint16_t mem_addr, ConstRawData write_data, WriteOperation &op, MemAddrLength mem_addr_size, bool in_isr) override
向 I2C 设备指定寄存器写入数据。 Writes data to a specific register of an I2C device.
ErrorCode Write(uint16_t slave_addr, ConstRawData write_data, WriteOperation &op, bool in_isr) override
向 I2C 设备写入数据。 Writes data to an I2C device.
ErrorCode Read(uint16_t slave_addr, RawData read_data, ReadOperation &op, bool in_isr) override
读取 I2C 设备的数据。 Reads data from an I2C device.
STM32I2C(I2C_HandleTypeDef *hi2c, RawData dma_buff, uint32_t dma_enable_min_size=3)
构造 I2C 对象 / Construct I2C object
Operation< ErrorCode > ReadOperation
Read operation type.
Operation< ErrorCode > WriteOperation
Write operation type.
I2C 设备的配置信息结构体。 Configuration structure for an I2C device.