3#include <ti/driverlib/dl_i2c.h>
5#include "ti_msp_dl_config.h"
18 uint32_t default_bus_speed_hz;
26 bool in_isr =
false)
override;
29 bool in_isr =
false)
override;
33 MemAddrLength mem_addr_size = MemAddrLength::BYTE_8,
34 bool in_isr =
false)
override;
38 MemAddrLength mem_addr_size = MemAddrLength::BYTE_8,
39 bool in_isr =
false)
override;
43 static constexpr uint8_t ResolveIndex(IRQn_Type irqn)
64 return INVALID_INSTANCE_INDEX;
69 static constexpr uint8_t MAX_I2C_INSTANCES = 4;
70 static constexpr uint8_t INVALID_INSTANCE_INDEX = 0xFF;
80 ErrorCode PollingWrite7(uint16_t addr7,
const uint8_t* data,
size_t size);
82 ErrorCode PollingRead7(uint16_t addr7, uint8_t* data,
size_t size);
84 ErrorCode DmaWrite7(uint16_t addr7, ConstRawData write_data);
86 ErrorCode DmaRead7(uint16_t addr7, RawData read_data);
88 ErrorCode WaitDmaTransferDone(uint8_t channel_id)
const;
91 RawData stage_buffer_;
92 uint32_t dma_enable_min_size_;
93 bool dma_enabled_ =
false;
96#define MSPM0_I2C_INIT(name, stage_addr, stage_size, dma_min_size) \
97 ::LibXR::MSPM0I2C::Resources{name##_INST, name##_INST_INT_IRQN, \
98 static_cast<uint32_t>(CPUCLK_FREQ), \
99 static_cast<uint32_t>(name##_BUS_SPEED_HZ), \
100 ::LibXR::MSPM0I2C::ResolveIndex(name##_INST_INT_IRQN)}, \
101 ::LibXR::RawData{(stage_addr), (stage_size)}, (dma_min_size)
常量原始数据封装类。 A class for encapsulating constant raw data.
I2C(Inter-Integrated Circuit)接口类。 I2C (Inter-Integrated Circuit) interface class.
ErrorCode Read(uint16_t slave_addr, RawData read_data, ReadOperation &op, bool in_isr=false) override
读取 I2C 设备的数据。 Reads data from an I2C device.
ErrorCode MemWrite(uint16_t slave_addr, uint16_t mem_addr, ConstRawData write_data, WriteOperation &op, MemAddrLength mem_addr_size=MemAddrLength::BYTE_8, bool in_isr=false) 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=MemAddrLength::BYTE_8, bool in_isr=false) override
从 I2C 设备指定寄存器读取数据。 Reads data from a specific register of an I2C device.
ErrorCode SetConfig(Configuration config) override
配置 I2C 设备参数。 Configures the I2C device settings.
ErrorCode Write(uint16_t slave_addr, ConstRawData write_data, WriteOperation &op, bool in_isr=false) override
向 I2C 设备写入数据。 Writes data to an I2C device.
原始数据封装类。 A class for encapsulating raw data.
I2C 设备的配置信息结构体。 Configuration structure for an I2C device.