libxr  1.0
Want to be the best embedded framework
Loading...
Searching...
No Matches
i2c.hpp
1#pragma once
2
3#include "libxr.hpp"
4
5namespace LibXR
6{
7
16class I2C
17{
18 public:
24 {
25 uint32_t
27 };
28
29 enum class MemAddrLength : uint8_t
30 {
31 BYTE_8,
32 BYTE_16
33 };
34
39 I2C() {}
40
60 virtual ErrorCode Read(uint16_t slave_addr, RawData read_data, ReadOperation& op,
61 bool in_isr = false) = 0;
62
81 virtual ErrorCode Write(uint16_t slave_addr, ConstRawData write_data,
82 WriteOperation& op, bool in_isr = false) = 0;
83
96 virtual ErrorCode SetConfig(Configuration config) = 0;
97
120 virtual ErrorCode MemRead(uint16_t slave_addr, uint16_t mem_addr, RawData read_data,
121 ReadOperation& op,
122 MemAddrLength mem_addr_size = MemAddrLength::BYTE_8,
123 bool in_isr = false) = 0;
124
146 virtual ErrorCode MemWrite(uint16_t slave_addr, uint16_t mem_addr,
147 ConstRawData write_data, WriteOperation& op,
148 MemAddrLength mem_addr_size = MemAddrLength::BYTE_8,
149 bool in_isr = false) = 0;
150};
151
152} // namespace LibXR
常量原始数据封装类。 A class for encapsulating constant raw data.
I2C(Inter-Integrated Circuit)接口类。 I2C (Inter-Integrated Circuit) interface class.
Definition i2c.hpp:17
virtual ErrorCode SetConfig(Configuration config)=0
配置 I2C 设备参数。 Configures the I2C device settings.
virtual 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)=0
从 I2C 设备指定寄存器读取数据。 Reads data from a specific register of an I2C device.
virtual ErrorCode Write(uint16_t slave_addr, ConstRawData write_data, WriteOperation &op, bool in_isr=false)=0
向 I2C 设备写入数据。 Writes data to an I2C device.
virtual ErrorCode Read(uint16_t slave_addr, RawData read_data, ReadOperation &op, bool in_isr=false)=0
读取 I2C 设备的数据。 Reads data from an I2C device.
I2C()
默认构造函数。 Default constructor.
Definition i2c.hpp:39
virtual 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)=0
向 I2C 设备指定寄存器写入数据。 Writes data to a specific register of an I2C device.
原始数据封装类。 A class for encapsulating raw data.
LibXR 命名空间
Definition ch32_can.hpp:14
I2C 设备的配置信息结构体。 Configuration structure for an I2C device.
Definition i2c.hpp:24
uint32_t clock_speed
I2C 通信时钟速率(单位:Hz)。 The I2C clock speed (in Hz).
Definition i2c.hpp:26