Wire (using member functions))
Wire (using member function)
The method using member functions has a relatively low level of abstraction and follows the general API system as provided by the C library. The procedures for operating the two-wire serial bus are more intuitive.
However, it is necessary to be explicitly aware of the start and end of bus usage.
Read
requestFrom()
size_type requestFrom(
uint8_t u8address,
size_type length,
bool b_send_stop = true)
Reads the specified number of bytes at once. Since the result of reading is stored in a queue, call the .read()
method immediately afterward until the queue is empty.
u8address
I2C address to be read
length
Number of bytes read
b_send_stop=true
When true
, the STOP
bit is set at the end of reading.
return type size_type
Number of bytes read. 0
means read failure.
Code Example
int len = Wire.requestFrom(0x70, 6);
for (int i = 0; i < 6; i++) {
if (Wire.available()) {
au8data[i] = Wire.read();
Serial.print(buff[i], HEX);
}
}
// skip the rest (just in case)
// while (Wire.available()) Wire.read(); // normally, not necessary.
Writing
Writing is performed by the write()
method after executing beginTransmission()
. Call endTranmission()
after a series of writing is finished.
#define DEV_ADDR (0x70)
const uint8_t msg[2] =
{SHTC3_SOFT_RST_H, SHTC3_SOFT_RST_L};
Wire.beginTransmission(DEV_ADDR);
Wire.write(msg, sizeof(msg));
Wire.endTransmission();
beginTransmission()
void beginTransmission(uint8_t address)
Initialize the export transfer. Call endTransmission()
as soon as the writing process is finished.
u8address
I2C address to be written out
write(value)
size_type write(const value_type value)
Writes one byte.
Return value value
Bytes to be written.
Return value size_type
Number of bytes written. A value of 0
is an error.
write(*value, quantity)
size_type write(
const value_type* value,
size_type quantity)
Writes a byte sequence.
*value
the byte sequence to be written
Return value size_type
Number of bytes to be written.
Return value size_type
Number of bytes written. 0 is an error.
endTransmission()
uint8_t endTransmission(bool sendStop = true)
Processes the end of the export.
sendStop = true
Issue the STOP bit.
Return value uint8_t
0: Success 4: Failure
最終更新