[CC2640] CC2640的I2C问题请教

[复制链接]
 楼主| flycamelaaa 发表于 2020-12-8 09:52 | 显示全部楼层 |阅读模式
我用CC2640 的I2C 模块给OPT3001光照芯片 写值,发现写不进去。该芯片寄存器是16位的,咱I2C模块可以写16位寄存器的值吗???

我就想给0x01寄存器写个0x54,0x10,代码如下:

void Set_OPT3001(uint8_t limit)
{

Reset_OPT3001_Register();

txBuffer[0] = 0x54;txBuffer[1] = 0x10;


i2cTrans.writeCount = 3;
i2cTrans.writeBuf = txBuffer;
i2cTrans.readCount = 0;
i2cTrans.readBuf = rxBuffer;
i2cTrans.slaveAddress = 0x44;

I2C_transfer(handle, &i2cTrans);
}

dirtwillfly 发表于 2020-12-9 13:05 | 显示全部楼层
可以写16位寄存器的。
建议用逻辑分析仪观察一下时序看看,但看楼主的程序看不出什么
内政奇才 发表于 2020-12-9 17:10 | 显示全部楼层
分别写高/低八位试试
麻花油条 发表于 2020-12-9 17:11 | 显示全部楼层
你要不要去參考一下 dev.ti.com/.../node opt3001的例程
yianele 发表于 2022-8-18 10:50 | 显示全部楼层
麻花油条 发表于 2020-12-9 17:11
你要不要去參考一下 dev.ti.com/.../node opt3001的例程

老哥,这是啥例程啊
星辰伴梦 发表于 2025-4-1 13:43 | 显示全部楼层
你这代码里用的I2C_transfer函数,我感觉这个函数可能不支持直接写16位寄存器的值
您需要登录后才可以回帖 登录 | 注册

本版积分规则

824

主题

4298

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

824

主题

4298

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部