SoftWire(uint8 scl=SCL, uint8 sda=SDA, uint8 delay=SOFT_STANDARD)
构造函数
参数
scl
总线的时钟信号引脚,默认为20
引脚
sda
总线的数据信号引脚,默认为19
引脚
delay
总线速度:SOFT_STANDARD
或 SOFT_FAST
返回值
无
uint8 available()
接收缓存中的数据字节数
参数
无
返回值
字节数
void begin(uint8 = 0x00)
接口初始化(本身的I2C
地址,默认0x00
)
参数
自身的地址
返回值
无
void beginTransmission(uint8)
开始传输数据
参数
从机地址
返回值
无
void beginTransmission(int)
开始传输数据
参数
从机地址
返回值
无
void end()
结束,将SDA
和SCL
引脚设置为输入
参数
返回值
uint8 endTransmission(bool)
根据参数不同有不同的行为:当参数设置为true
时,发送停止信号并释放总线;当为false
时,发送从新开始信号,总线不释放,用于多次传输。
参数
是否释放总线,发送停止信号。默认为true
返回值
0
:传输成功
1
:传输的数据过长
2
:传输地址时接收到NACK
3
:传输数据时接收到NACK
4
:其他错误
指示传输的状态,如下:
uint8 endTransmission(void)
停止传输
参数
返回值
bool i2c_get_ack()
在总线上获取从机 ACK
参数
返回值
void i2c_repeated_start()
在总线上产生重新开始信号
参数
返回值
void i2c_send_ack()
在总线上产生 ACK
信号
参数
返回值
void i2c_send_nack()
在总线上产生NACK
信号
参数
返回值
uint8 i2c_shift_in()
由SDA
、SCL
移位输入数据
参数
返回值
void i2c_shift_out(uint8)
由SDA
、SCL
移位输出数据
参数
返回值
void i2c_start()
在总线上产生开始信号
参数
返回值
void i2c_stop()
在总线上产生停止信号
参数
返回值
uint8 read()
读取接收到一个字节的数据
参数
返回值
读取到的数
uint8 requestFrom(uint8, int)
请求从机数据并存入接收缓存
参数
地址
请求的数量
返回值
从机返回的数据字节数
uint8 requestFrom(int, int)
请求从机数据并存入接收缓存
参数
地址
请求的数量
返回值
从机返回的数据字节数
void setClock(uint32_t frequencyHz)
设置总线的速度
参数
频率
返回值
无
void set_scl(bool)
将SCL
设为HIG
/ LOW
参数
true
则设置为HIGH
,反之为 LOW
返回值
void set_sda(bool)
将SDA
设为HIG
/ LOW
参数
true
则设置为HIGH
,反之为 LOW
返回值
void write(uint8)
往从机写入数据
参数
写入单字节的数据
返回值
无
void write(uint8*, int)
往从机写入数据
参数
写入的数据数组和长度
返回值
void write(int)
往从机写入数据
参数
写入单字节的数据
返回值
无
void write(int*, int)
往从机写入数据
参数
写入的数据数组和长度
返回值
void write(char*)
往从机写入数据
参数
字符串形式的数据数组
返回值