I2C Slave

1640 ワード

I 2 C Slaveを使用してI 2 C Masterと通信する.
同期レベル:保護されていません.
I 2 CSlaveクラスリファレンス
Public Member Functions
 
I2CSlave (PinName sda, PinName scl)
 
I 2 C Slaveインタフェースを作成し、指定したピンに接続します.その他
void 
frequency (int hz)
 
I 2 Cインタフェースの周波数を設定します.
int 
receive (void)
 
このI 2 Cスレーブデバイスがアドレスされているかどうかを確認します.もっと...
int 
read(char * data,int length)
 
指定したバイト数をI 2 Cマスタから読み出す.もっと...
int 
read (void)
 
I 2 Cマスタから1バイトを読み出す.もっと...
int 
write(const char * data,int length)
 
I 2 Cマスタに書き込みます.もっと...
int 
write (int data)
 
I 2 Cマスターに1バイトを書き込みます.もっと...
void 
address (int address)
 
I 2 Cスレーブアドレスを設定します.もっと...
void 
stop (void)
 
I 2 Cをデバイスから既知のレディ受信状態にリセットします.もっと...
I 2 CSlaveの例
この例を試して、I 2 C応答器の動作原理を確認します.
#include 

I2CSlave slave(p9, p10);

int main() {
   char buf[10];
   char msg[] = "Slave!";

   slave.address(0xA0);
   while (1) {
       int i = slave.receive();
       switch (i) {
           case I2CSlave::ReadAddressed:
               slave.write(msg, strlen(msg) + 1); // Includes null char
               break;
           case I2CSlave::WriteGeneral:
               slave.read(buf, 10);
               printf("Read G: %s
", buf); break; case I2CSlave::WriteAddressed: slave.read(buf, 10); printf("Read A: %s
", buf); break; } for(int i = 0; i < 10; i++) buf[i] = 0; // Clear buffer } }