Class_I2C - gfd-dennou-club/mrubyc-esp32 GitHub Wiki
I2C
I2C シリアルインターフェースを扱います。
コンストラクタ
I2C.new( scl, sda, port, freq )
- scl: SCL PIN
- sda: SDA PIN
- port: port (default 0)
- freq: frequency (default 40000)
例
i2c = I2C.new(22,21)
出力
I2C.write( i2c_adrs_7, [data1, data2,...] ), I2C.writeto( i2c_adrs_7, [data1, data2,...] )
- i2c_adrs_7: I2C address
- [data1, data2, ...]: data array 指定されたバイトを順次出力します。
例
i2c.write( i2c_ADRS_7, [0x02, 0x16, 0x00] )
write( i2c_adrs_7, "string" )
指定された文字列を出力します。
例
i2c.write( ADRS, "string" )
入力
read( i2c_adrs_7, read_bytes, *params ) -> String
指定されたバイト数のデータを読み込みます。指定されたバイト数のデータが到着していない場合、ブロックします。
paramsを指定することで、read前にparamsを出力します。すなわち、以下のシーケンスとなります。
(S) - ADRS7 (W)(A) - [params ...] - (Sr) - ADRS7 (R)(A) - data_1 (A)... data_n (A|N) - (P)
S : Start condition P : Stop condition
Sr: Repeated start condition
A : Ack N : Nack
例
s = i2c.read( ADRS, 2, 0xfe ) # 0xfeレジスタから2バイト取得
I2C.readfrom( i2c_adrs_7, read_bytes ) -> integer array
- i2c_adrs_7: I2C address
- read_bytes: read_bytes (integer)
例
array = i2c.readfrom( ADRS, 2) #指定されたバイト数のデータを読み込む.