打印
[STM32F0]

stm32f107互联型的iic器件地址是多少啊?

[复制链接]
1956|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
两片直连,怎么设定从机的iic地址呢 ?哪里看啊,手册上没找到啊
沙发
后会无期1| | 2015-4-24 20:38 | 只看该作者
这个地址,我的理解是需要你自己用软件设置,不过好像ST的那个有一个寄存器吧,但是我没有看到,我是用软件方式自己设置的.

使用特权

评论回复
板凳
我是MT|  楼主 | 2015-4-24 20:38 | 只看该作者
后会无期1 发表于 2015-4-24 20:38
这个地址,我的理解是需要你自己用软件设置,不过好像ST的那个有一个寄存器吧,但是我没有看到,我是用软件方式 ...

我查了很多资料上都说,具备iic构造的器件都自带连到总线上的地址,不过手册上没找到,也没看到你说的那个寄存器
软件方式自己怎么设置呢? 自己随便给个暗号,两边对上就行么?

使用特权

评论回复
地板
fhguo1990| | 2015-4-24 20:39 | 只看该作者
你说的是器件的唯一地址吗?如果是主从地址应该是自己定义的

使用特权

评论回复
5
fhguo1990| | 2015-4-24 20:39 | 只看该作者
I2C器件的地址就是  存储器的管教A0 A1 A2,拉高或者置低。读写操作的时候把地址加在命令里就可以了!

使用特权

评论回复
6
我思故我在12345| | 2015-4-24 20:39 | 只看该作者
这个地址是自己设定的吧,
00074   /* I2C1 configuration: SMBus Host ------------------------------------------*/
00075   I2C_InitStructure.I2C_Mode = I2C_Mode_SMBusHost;
00076   I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
00077   I2C_InitStructure.I2C_OwnAddress1 = I2C1_SLAVE_ADDRESS7;
00078   I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
00079   I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
00080   I2C_InitStructure.I2C_ClockSpeed = ClockSpeed;
00081   I2C_Init(I2C1, &I2C_InitStructure);
00082
00083   /* I2C2 configuration: SMBus Device ----------------------------------------*/
00084   I2C_InitStructure.I2C_Mode = I2C_Mode_SMBusDevice;
00085   I2C_InitStructure.I2C_OwnAddress1 = I2C2_SLAVE_ADDRESS7;
00086   I2C_Init(I2C2, &I2C_InitStructure);
00087
00088   /* Enable I2C2 ARP */
00089   I2C_ARPCmd(I2C2, ENABLE);
结构体里面写的很清楚哦

使用特权

评论回复
7
我思故我在12345| | 2015-4-24 20:40 | 只看该作者
我是MT 发表于 2015-4-24 20:38
我查了很多资料上都说,具备iic构造的器件都自带连到总线上的地址,不过手册上没找到,也没看到你说的那 ...

关于硬件和软件定义的问题,I2C器件出厂时必须自带地址,要不然还要标准有啥用,不过有的是自身芯片固定好了,因为集成在MCU内部了,有的有几个引脚出来专门规定地址范围,选址,你通过给这几个引脚硬件规定0|1,排列组合来确定,程序所能做的就是自身设为主机或从机,如果是主机的话,那就选择从机的地址与之通信!6楼程序说的都很清楚了,你试试看看,不行的话看需要配置硬件接口不需要...

使用特权

评论回复
8
我是MT|  楼主 | 2015-4-24 20:41 | 只看该作者
我思故我在12345 发表于 2015-4-24 20:39
这个地址是自己设定的吧,
00074   /* I2C1 configuration: SMBus Host --------------------------------- ...

谢谢,给新手讲解的很详细。我主要是想问,那个slave address7 怎么定义。是自己随便设置,还是按照器件本身自带的。自带的话,107的板子我没找到,我现在在做2块107板子的通信

使用特权

评论回复
9
我是MT|  楼主 | 2015-4-24 20:41 | 只看该作者
fhguo1990 发表于 2015-4-24 20:39
你说的是器件的唯一地址吗?如果是主从地址应该是自己定义的

你说的是器件的唯一地址吗?如果是主从地址应该是自己定义的。

谢谢,现在也是这样解决的。随便设置了2个值,两边对上暗号就行了

使用特权

评论回复
10
我是MT|  楼主 | 2015-4-24 20:42 | 只看该作者
fhguo1990 发表于 2015-4-24 20:39
I2C器件的地址就是  存储器的管教A0 A1 A2,拉高或者置低。读写操作的时候把地址加在命令里就可以了! ...

我是把2块107的板子相连。有这样的管脚可以设置地址?

使用特权

评论回复
11
我是MT|  楼主 | 2015-4-24 20:42 | 只看该作者
我思故我在12345 发表于 2015-4-24 20:40
关于硬件和软件定义的问题,I2C器件出厂时必须自带地址,要不然还要标准有啥用,不过有的是自身芯片固定 ...

我想如果有自带的地址还是自带的比较好,可惜我没找到。
现在我是把2块107板子相连,应该设置哪些引脚来设定地址呢?新手不太懂,可能问题很基础,不好意思啊。

使用特权

评论回复
12
wangbao619| | 2015-4-27 13:56 | 只看该作者
IIC从机模式,在SDA线上接收到的地址被送到移位寄存器。然后与芯片自己的地址OAR1和OAR2或者广播呼叫地址(如果ENGC = 1)相比较。


使用特权

评论回复
13
CrownZeng| | 2016-8-31 17:23 | 只看该作者
我用的STM32F107VCT6的Z版本,IIC主都调不通啊!你的从调通了吗?

使用特权

评论回复
14
梦幻情缘| | 2016-11-28 17:20 | 只看该作者
我是MT 发表于 2015-4-24 20:41
你说的是器件的唯一地址吗?如果是主从地址应该是自己定义的。

谢谢,现在也是这样解决的。随便设置了2 ...

那么楼主,如果用IO口模拟iic时,也是自己通过软件定义一个地址吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

278

帖子

1

粉丝