SDK
23.9.2
For IoT System Software Development
|
I2C (2-Wire)를 제어하기 위한 클래스 More...
#include <TwoWire.hpp>
Public Types | |
enum | MasterWriteError_t { SUCCESS = 0, DATA_TOO_LONG = 1, NACK_ON_ADDRESS = 2, NACK_ON_DATA = 3, OTHER_ERROR = 4 } |
Public Member Functions | |
virtual void | begin () |
virtual void | end ()=0 |
2-wire 연결을 종료합니다. | |
virtual void | setClock (uint32_t frequency)=0 |
2-wire 연결에 사용할 클럭(단위: Hz)을 설정합니다. | |
void | beginTransmission (uint8_t address) |
전송 시작을 설정합니다. | |
virtual MasterWriteError_t | endTransmission (bool stop=true)=0 |
송신 버퍼에 기록된 데이터를 전송하고 종료합니다. More... | |
virtual size_t | requestFrom (uint8_t address, size_t length, bool stop=true)=0 |
Master가 slave에게 데이터를 요청합니다. More... | |
uint8_t | write (uint8_t val) |
전송할 데이터 1-byte를 내부 송신 버퍼에 기록합니다. | |
uint8_t | write (const uint8_t *data, uint8_t len) |
전송할 데이터 byte array를 내부 버퍼에 기록합니다. | |
uint8_t | available () |
수신 버퍼에 데이터가 얼마나 남아있는지 확인합니다. | |
int | read () |
수신 버퍼로부터 1-byte 데이터를 읽습니다. | |
virtual void | onReceive (void(*handler)(TwoWire &wire, uint8_t numBytes)) |
virtual void | onRequest (void(*handler)(TwoWire &wire)) |
Public Attributes | |
uint16_t | timeout = 10000 |
Timeout을 설정합니다. More... | |
Protected Attributes | |
bool | transmitting = false |
bool | sendStop = false |
bool | inRepStart = false |
uint8_t | rxBuffer [32] |
uint8_t | rxBufferIndex = 0 |
uint8_t | rxBufferLength = 0 |
uint8_t | txBuffer [32] |
uint8_t | txBufferIndex = 0 |
uint8_t | txBufferLength = 0 |
uint8_t | txAddress |
void(* | receiveHandler )(TwoWire &, uint8_t) = nullptr |
void(* | requestHandler )(TwoWire &) = nullptr |
I2C (2-Wire)를 제어하기 위한 클래스
|
virtual |
\begin 2-wire 연결을 시작합니다.
Reimplemented in ESP32TwoWire.
|
pure virtual |
|
pure virtual |
Master가 slave에게 데이터를 요청합니다.
stop | 전송 후 STOP 신호 전송여부를 지정합니다. |
Implemented in ESP32TwoWire.
uint16_t TwoWire::timeout = 10000 |
Timeout을 설정합니다.
endTransmission() 및 requestFrom() 시 설정한 timeout을 경과하면 반환하게 합니다. 단위는 밀리초이며, 기본 값은 10초 입니다.