高通提供了earbud的adk提供了两种i2c通讯的接口,其中(I2cTransfer)为低速接口,内部实现为模拟i2c,通常速率为100k;以及高速通讯接口(Bitserial),内部实现为硬件i2c,符合Fast-mode UM10204 I²C-bus 规范,最高可达400k。
下面将分别对两种方式作实例说明:
以I2cTransfer的方式
这里以驱动ST的gsensor - lis2dh12为例
流程分析
- 首先根据自己的原理图配置pio,注意这里是16进制显示
- 添加一个task以及注册taskHandler用于管理与外设通讯,将task注册给PioMonitor
- 初始化pio
- 实现中断处理即taskhandler
- 配置gsensor