《Linux开发中关于I2C和寄存器的读写方式探讨|寻找C站宝藏》

在做Android系统开发时,特别是现在智能显示和物联网,经常客户会要求搭配各种外接模块。Android系统与外接模块的通讯方式主要有I2C通讯、USB通讯、串口UART通讯、蓝牙通讯等。我们现在只探讨下I2C通讯。

I2C通讯又分两种,一种是通过读写寄存器;一种是不带寄存器直接读写I2C。读写寄存器的方式也存在差异此文以Mstar平台来说明。

1、读写I2C下寄存器数据

现以读写光感模块ISL29023为列说明。

首先需要定义I2C设备的地址:ISL29023_IIC_ADD

然后获取I2C设备:mapi_i2c::GetI2C_Dev(ISL29023_IIC_ADD)。

读写寄存器:iptr->WriteBytes(1, addr, 1, data)、iptr->ReadBytes(1, &reg, 1, reg_value)。

其中方法中的第三个参数:1表示I2C需要读写寄存器;0表示I2C不需要读写寄存器,直接读写I2C。

//Device Info Define
static I2CDeviceInfo_s  Board_I2C_Dev[BOARD_I2C_DEVICE_NUM] =
{
   
    { IST_I2C_EP9461E,      1, 0xC8 },
    { IST_I2C_CM32181,      2, 0x20 },//LIGHT SENSOR
    { IST_I2C_BL_STK3310,   2, 0x90 },//LIGHT SENSOR
    { IST_I2C_DZ_B_ALP,     2, 0x72 },//LIGHT SENSOR
	{ IST_I2C_AD83586,		1, 0x62},
	{ IS
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Love~妍芯~燕~Love

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值