野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11587|回复: 5

IIC 地址与命令合并发送

[复制链接]
发表于 2019-2-18 16:13:07 | 显示全部楼层 |阅读模式
我现在用IIC采集传感器数据,它配套了一个arduino程序,但是这个传感器地址和命令写成一个字节,高4位是地址,低4位是命令,arduino程序中就是直接发送了这个组合字节,如果用stm32的话,地址和命令分开发送,但是后来有人说,stm32地址和命令也可以一起发送,不用标准库,要自己写,我没见过这样的程序,请问怎么写啊?
回复

使用道具 举报

发表于 2019-2-19 08:39:57 | 显示全部楼层
感觉一样的吧,你自己把命令跟数据组合后通过库函数发送出去就行了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-2-19 15:36:58 | 显示全部楼层
IIC是7位地址,最后一位是0或者1表示读或写,我那个传感器是高4位是地址,低4位是命令,那这里怎么表示读写位啊?arduino中就是将这个字节右移1位,我不太明白这个。
回复 支持 反对

使用道具 举报

发表于 2019-2-20 10:32:06 来自手机 | 显示全部楼层
你说的高4位地址是寄存器地址吧,和传输命令一样都是传输数据,7b说的是从机地址
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-2-20 11:05:57 | 显示全部楼层
zhanshi445 发表于 2019-2-20 10:32
你说的高4位地址是寄存器地址吧,和传输命令一样都是传输数据,7b说的是从机地址

我看那个arduino程序中就是将这个组合字节当做地址传输。
Wire.beginTransmission(addressSensor>>1);
Wire.endTransmission();
回复 支持 反对

使用道具 举报

发表于 2019-2-20 13:47:15 | 显示全部楼层
先去看下I2C的基本原理以及传输方式,再回过头来理解别人的代码,还有就是不能只看代码,需要结合数据手册
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-22 11:12 , Processed in 0.030669 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表