Cypress技术论坛
直播中

刘波

7年用户 958经验值
私信 关注
[问答]

请问I2C组件应该设置为主模式还是从模式?

我正在设置pSOC4BLE芯片来读取来自光传感器的数据。I2C组件应该设置为主模式还是从模式?(我认为光传感器是从机,PSOC4BLE是主-这如何影响I2C组件?)
是否需要手动使用ApI2C2I2CSLaveSeTo地址设置主从地址?还是在单击I2C组件时,在对话框中设置从属地址?
还有,写命令在哪里?我已经建立了项目,所以我有所有的C和H文件,但似乎找不到API,如Ai22C2I2CMistRead Buf,是在压力传感器示例项目。
谢谢,
卡洛琳

回帖(6)

王琳

2019-10-16 09:57:19
我认为光传感器是奴隶,PSOC4是主人的权利。
是否需要手动使用ApI2C2I2CSLaveSeTo地址设置主从地址?还是在单击I2C组件时,在对话框中设置从属地址?两个都不行。BLE是一个可以处理多个奴隶的大师。您需要从您的传感器的7位从地址来解决它。
字节I2C接口非常简单:在建立组件后,开始使用它
I2CyMasksEngEnter(DeVice Advices,I2CX WrreEX-XFLYMODE);//初始化一个事务,用于写入I2C.MigWrrestEngEnter字节(寄存器);/ /指示您要写入I2C.MistWrrestEnter字节(值)的哪个寄存器;/ /写入I2CyMeaveStestStutter();
当您想从使用的设备读取时(读取两个字节的示例)
I2CyMasksEngEnter(DeVice Advices,I2CX WrreEX-XFLYMODE);/初始化I2cMyMraveScript(寄存器)的事务;/ /指示要写入I2C.MaskestEntRead(DeVice地址,I2CX Read x Felx模式)的寄存器;I2C*MaultRead字节(I2CYACKYDATA);/从寄存器I2CYMA读取StRead字节(I2CyNaKiDATA);//从寄存器读取,最后一个字节是裸露的I2CyMasksEntStestSo();
另外,写命令在哪里,所有API都是前缀BA,当你没有在配置对话框中改变它时,你的组件名称可能是“I2CY1”。
鲍勃
举报

刘波

2019-10-16 10:16:28
谢谢!太有帮助了。
因此,从传感器读取的第一个字节是“MSB”,而第二个字节是“LSB”。
如何设置字节值= MSB?这是一个简单的变量声明吗?(MSB=I2C1I2CYACK-DATA)读完后完成。
举报

王琳

2019-10-16 10:32:00
您正在读取16位值分裂成两个单独的字节。因此,您需要将这些字节组合为16位整数。我通常使用
IT16结果;
UTIN 8MSB;LSB;
结果=(IT16)MSB & lt;lt;8 l***;
其中MSB和LSB是来自您的奴隶的两个红色值。
MSB=I2C*MaultRead字节(I2CYACKYDATA);/从寄存器读取
LSB=I2C*MaultRead字节(I2CnNaKi数据);/ /从寄存器读取,最后字节是裸的
当然,你可以缩短这个时间。
鲍勃
举报

刘波

2019-10-16 10:46:40
明白了,谢谢!
我遇到了“多重定义”错误,我附加了一个opt3000测试项目。在我调用变量两次的时候有什么公然的错误吗?
光传感测试
1.9兆字节
举报

更多回帖

发帖
×
20
完善资料,
赚取积分