其中 0xAA
和 0x00
是 usb
包的识别控制流
0x74
和 0x75
会控制SCL/SDA发出 START
和 STOP
信号
0xAA: 0b10101010
0x00: 0b00000000
0x74: 0b01110100
0x75: 0b01110101
0x80: 0b10000000
0xC0: 0b11000000
enum ch347_speed_t {
CH347_I2C_LOW_SPEED = 0, // low speed - 20kHz
CH347_I2C_STANDARD_SPEED = 1, // standard speed - 100kHz
CH347_I2C_FAST_SPEED = 2, // fast speed - 400kHz
CH347_I2C_HIGH_SPEED = 3, // high speed - 750kHz
};
obuf[0] = 0xAA
obuf[1] = 0x60 | speed
obuf[2] = 0x00 // 命令结束
IIC通信首先是发送从机地址, 从机通常是 7 位地址, 左移1为低位通常是 0 为写操作, 1 为读操作。
[0xAA, 0x74, 0x80 | 1, addr<<1|1, 0xC0|len, 0xC0, 0x75, 0x00]