首页 > 评测 > NXP i.MX7D与AndroidThings系列之五:I2C通信

NXP i.MX7D与AndroidThings系列之五:I2C通信

NXP   IMX7D   AndroidThings   I2C   
  • 作者:SATURN
  • 来源:21ic
  • [导读]
  • 本文将介绍如何通过I2C通信来实现屏幕点亮和显示。

public class MainActivity extends Activity {
    private static final String TAG = "AndroidThings";
 
    private Lcd1602 mLcd1602;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main);
 
        Log.d(TAG, "I2C: " + PeripheralManager.getInstance().getI2cBusList());
 
        mLcd1602 = new Lcd1602();
        mLcd1602.setup();
 
        //byte[] msg = "For more complex peripherals, look for an existing user-space driver".getBytes();
        Log.d(Lcd1602.DEBUG_TAG, "onCreate: " + PeripheralManager.getInstance().getUartDeviceList());
        try {
            mLcd1602.clear();
            mLcd1602.setColor(33, 28, 28);
 
            mLcd1602.setText(0, 0, "ABCDEFGHIJKLMNOP".getBytes());
            mLcd1602.setText(1, 1, "TEMP: 11 C".getBytes()); 
        } catch (IOException e) {
            e.printStackTrace();
        }
 
    }
 
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d(Lcd1602.DEBUG_TAG, "onDestroy: ");
        if(mLcd1602 != null) {
            mLcd1602.close();
            mLcd1602 = null;
        }
 
    } 
}

整体代码框架和led工程的差不多,首先在onCreate里面初始化设备,设置RGB的背光色,然后显示一些简单的文字信息。

 rId24.jpg

 

运行的结果,倒也不是很复杂。

其实AndroidThingsAPI已将底层的细节大大抽象了,正如Arduino简化了底层细节一样,这样一来将大大提高生产效率。本例的复杂之处在LCD的具体操作上,所以除了掌握AndroidThings基础知识,要想在Maker领域中取得更好的效果,学会看数据手册也算是基本功之一,如果实在啃不动数据手册,也可以参考别人的代码来改,不过适用性就差了一点点。

下一节来个PWM式点灯。

  • 本文系21ic原创,未经许可禁止转载!

网友评论