最終更新: moonlight_aska 2017年10月28日(土) 09:04:54履歴
- I2cActivity.java
- PeripheralManagerServiceクラスのインスタンスを生成する.
- PeripheralManagerService#openI2cDeviceメソッドで, デバイスアドレスを指定してI2cDeviceクラスのオブジェクトを取得する.
- I2cDevice#writeRegByteメソッドで, 指定したアドレスのレジスタに値を書く.
メソッド | 説明 |
writeRegByte(int reg, byte data) | レジスタに1バイト書く |
writeRegWord(int reg, short data) | レジスタに2バイト書く |
writeRegBuffer(int reg, byte[] buffer, int length) | レジスタに指定されたバイト数書く |
- I2cDevice#closeメソッドで, デバイスを解放する.
package com.moonlight_aska.androidthings.i2c;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import com.google.android.things.pio.I2cDevice;
import com.google.android.things.pio.PeripheralManagerService;
import java.io.IOException;
public class I2cActivity extends Activity {
private static final String TAG = "I2cActivity";
private static final String I2C_NAME = "I2C1";
private static final int I2C_ADDRESS = 0x10;
private I2cDevice mI2c;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PeripheralManagerService manager = new PeripheralManagerService();
try {
// I2Cデバイスオープン
mI2c = manager.openI2cDevice(I2C_NAME, I2C_ADDRESS);
byte[] data = {'I', '2', 'C'};
for (int i=0; i<3; i++) {
// レジスタに1バイトライト
mI2c.writeRegByte(i, data[i]);
}
} catch (IOException e) {
Log.e(TAG, "Error on PeripheralIO API", e);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mI2c != null) {
try {
// I2Cデバイスクローズ
mI2c.close();
} catch (IOException e) {
Log.e(TAG, "Error on PeripheralIO API", e);
} finally {
mI2c = null;
}
}
}
}
タグ
コメントをかく