3#include <ti/driverlib/dl_i2c.h>
6#include "ti_msp_dl_config.h"
19 uint32_t default_bus_speed_hz;
27 bool in_isr =
false)
override;
30 bool in_isr =
false)
override;
34 MemAddrLength mem_addr_size = MemAddrLength::BYTE_8,
35 bool in_isr =
false)
override;
39 MemAddrLength mem_addr_size = MemAddrLength::BYTE_8,
40 bool in_isr =
false)
override;
44 static constexpr uint8_t ResolveIndex(IRQn_Type irqn)
65 return INVALID_INSTANCE_INDEX;
70 static constexpr uint8_t MAX_I2C_INSTANCES = 4;
71 static constexpr uint8_t INVALID_INSTANCE_INDEX = 0xFF;
81 ErrorCode PollingWrite7(uint16_t addr7,
const uint8_t* data,
size_t size);
83 ErrorCode PollingRead7(uint16_t addr7, uint8_t* data,
size_t size);
85 ErrorCode DmaWrite7(uint16_t addr7, ConstRawData write_data);
87 ErrorCode DmaRead7(uint16_t addr7, RawData read_data);
89 ErrorCode WaitDmaTransferDone(uint8_t channel_id)
const;
92 RawData stage_buffer_;
93 uint32_t dma_enable_min_size_;
94 bool dma_enabled_ =
false;
97#define MSPM0_I2C_INIT(name, stage_addr, stage_size, dma_min_size) \
98 ::LibXR::MSPM0I2C::Resources{name##_INST, name##_INST_INT_IRQN, \
99 static_cast<uint32_t>(CPUCLK_FREQ), \
100 static_cast<uint32_t>(name##_BUS_SPEED_HZ), \
101 ::LibXR::MSPM0I2C::ResolveIndex(name##_INST_INT_IRQN)}, \
102 ::LibXR::RawData{(stage_addr), (stage_size)}, (dma_min_size)
只读原始数据视图 / Immutable raw data view
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.
可写原始数据视图 / Mutable raw data view
I2C 设备的配置信息结构体。 Configuration structure for an I2C device.