Class TwoWire
Description
Defines a class of I2C API
Syntax
class TwoWire
Members
Public Constructors |
|
---|---|
TwoWire::TwoWire |
Constructs a TwoWire object |
Public Methods |
|
---|---|
TwoWire::begin |
Initialize I2C master/slave |
TwoWire::setClock |
Set I2C frequency |
TwoWire::beginTransmission |
Begin I2C transmission |
TwoWire::endTransmission |
End I2C transmission |
TwoWire::requestFrom |
Set I2C requestFrom |
TwoWire::write |
Write data to I2C |
TwoWire::available |
Check if I2C is available |
TwoWire::read |
Read data from I2C |
TwoWire::peek |
Read peek from I2C |
TwoWire::flush |
Do nothing, use, and transmission(..) to force data transfer |
TwoWire::onReceive |
Callback function when I2C on receive |
TwoWire::onRequest |
Callback function when I2C on request |
- TwoWire::TwoWire
Description
Constructs a TwoWire object.
Syntax
TwoWire::TwoWire (uint32_t dwSDAPin, uint32_t dwSCLPin);
Parameters
dwSDAPin
: The Arduino PIN to be set as an SDA pin.
dwSCLPin
: The Arduino PIN to be set as an SCL pin.
Returns
The function returns nothing.
Example Code
Example: MasterWriter
This example demonstrates the use of the wire library writes to an I2C/TWI slave device.
#include “Wire.h”
void setup() {
Wire.begin(); // join i2c bus (address optional for master)
}
byte x = 0;
void loop() {
Wire.beginTransmission(8); // transmit to device #8
Wire.write("x is "); // sends five bytes
Wire.write(x); // sends one byte
Wire.endTransmission(); // stop transmitting
x++;
delay(500);
}
Example: MasterReader
#include “Wire.h”
void setup() {
Wire.begin(); // join i2c bus (address optional for master)
Serial.begin(9600); // start serial for output
}
void loop() {
Wire.requestFrom(8, 6); // request 6 bytes from slave device #8
while (Wire.available()) { // slave may send less than requested
char c = Wire.read(); // receive a byte as character
Serial.print(c); // print the character
}
delay(500);
}
This example demonstrates the use of the wire library reads data from an I2C/TWI slave device.
Notes and Warnings Include “Wire.h” to use the class function.
- TwoWire::begin
Description
Initialize I2C master/slave.
Syntax
void TwoWire::begin (void);
void TwoWire::begin (uint8_t address = 0);
void TwoWire::begin (int address);
Parameters
void
: Set the I2C master mode.
address
: Set the I2C master mode with slave address value.
Returns
The function returns nothing.
Example Code
Example: MasterReader; MasterWriter
The details of the code can be found in the previous section of TwoWire:: TwoWire.
Notes and Warnings
Include “Wire.h” to use the class function.
- TwoWire::setClock
Description
Set I2C frequency.
Syntax
void TwoWire::setClock(uint32_t frequency);
Parameters
frequency
: The frequency values.
Returns
The function returns nothing.
Example Code
Example: MasterReader; MasterWriter
The details of the code can be found in the previous section of TwoWire:: TwoWire.
Notes and Warnings
Include “Wire.h” to use the class function.
- TwoWire::beginTransmission
Description
Begin I2C transmission.
Syntax
void TwoWire::beginTransmission (uint8_t address);
void TwoWire::beginTransmission (int address);
Parameters
address
: The transmission address.
Returns
The function returns nothing.
Example Code
Example: MasterReader; MasterWriter
The details of the code can be found in the previous section of TwoWire:: TwoWire.
Notes and Warnings
Include “Wire.h” to use the class function.
- TwoWire::endTransmission
Description End I2C transmission. Originally, ‘endTransmission’ was an f(void) function. It has been modified to take one parameter indicating whether or not a STOP should be performed on the bus. Calling endTransmission(false) allows a sketch to perform a repeated start.
警告
Nothing in the library keeps track of whether the bus tenure has been properly ended with a STOP. It is very possible to leave the bus in a hung state if no call to endTransmission(true) is made. Some I2C devices will behave oddly if they do not see a STOP.
If the input parameter is void, this provides backward compatibility with the original definition, and expected behavior, of endTransmission.
Syntax
uint8_t TwoWire::endTransmission (uint8_t sendStop);
uint8_t TwoWire::endTransmission (void);
Parameters
sendStop
: True to end the transmission
Returns
Return 0 if successful, else error.
Example Code
Example: MasterReader; MasterWriter
The details of the code can be found in the previous section of TwoWire:: TwoWire.
Notes and Warnings
Include “Wire.h” to use the class function.
- TwoWire::requestFrom
Description
Set I2C requestFrom.
Syntax
uint8_t TwoWire::requestFrom (uint8_t address, uint8_t quantity, uint8_t sendStop);
uint8_t TwoWire::requestFrom (uint8_t address, uint8_t quantity);
uint8_t TwoWire::requestFrom(int address, int quantity);
uint8_t TwoWire::requestFrom (int address, int quantity, int sendStop);
Parameters
address
: I2C read address.
quantity
: I2C read quantity.
sendStop
: True to end the transmission.
Returns
Return 0 if successful, else error.
Example Code
Example: MasterReader; MasterWriter
The details of the code can be found in the previous section of TwoWire:: TwoWire.
Notes and Warnings
Include “Wire.h” to use the class function.
- TwoWire::write
Description
Write data to I2C.
Syntax
size_t TwoWire::write (uint8_t data);
size_t TwoWire::write (const uint8_t *data, size_t quantity);
Parameters
data
: The data to be transmitted.
quantity
: The quantity of data.
Returns
Return 0 if successful, else error.
Example Code
Example: MasterReader; MasterWriter
The details of the code can be found in the previous section of TwoWire:: TwoWire.
Notes and Warnings
Include “Wire.h” to use the class function.
- TwoWire::available
Description
Check if I2C is available.
Syntax
int TwoWire::available (void);
Parameters
The function requires no input parameter.
Returns
Return 0 if successful, else error.
Example Code
Example: MasterReader; MasterWriter
The details of the code can be found in the previous section of TwoWire:: TwoWire.
Notes and Warnings
Include “Wire.h” to use the class function.
- TwoWire::read
Description
Read data from I2C
Syntax
int TwoWire::read (void);
Parameters
The function requires no input parameter.
Returns
The read data from the receive buffer.
Example Code
Example: MasterReader; MasterWriter
The details of the code can be found in the previous section of TwoWire:: TwoWire.
Notes and Warnings
Include “Wire.h” to use the class function.
- TwoWire::peek
Description
Read peek from I2C.
Syntax
int TwoWire::peek (void);
Parameters
The function requires no input parameter.
Returns
The peek data read from the receive buffer.
Example Code
Example: MasterReader; MasterWriter
The details of the code can be found in the previous section of TwoWire:: TwoWire.
Notes and Warnings
Include “Wire.h” to use the class function.
- TwoWire::flush
Description
Do nothing, use endTransmission(..) to force data transfer.
Syntax
void TwoWire::flush (void);
Parameters
The function requires no input parameter.
Returns
The function returns nothing.
Example Code
Example: MasterReader; MasterWriter
Notes and Warnings
Include “Wire.h” in order to use the class function.
- TwoWire::onReceive
Description
Callback function when I2C on receive.
Syntax
void TwoWire::onReceive (void(*function)(int));
Parameters
function
: The callback function.
Returns
The function returns nothing.
Example Code
Example: MasterReader; MasterWriter
The details of the code can be found in the previous section of TwoWire:: TwoWire.
Notes and Warnings
Include “Wire.h” to use the class function.
- TwoWire::onRequest
Description
Callback function when I2C on request.
Syntax
void TwoWire::onRequest (void(*function)(void));
Parameters
function
: The callback function
Returns
The function returns nothing.
Example Code
Example: MasterReader; MasterWriter
The details of the code can be found in the previous section of TwoWire:: TwoWire.
Notes and Warnings
Include “Wire.h” to use the class function.