打印
[通用 MCU]

硬件iic如何只发送从机地址不发送数据啊?

[复制链接]
251|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
FranklinUNK|  楼主 | 2024-11-24 15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有个应用开头要发送0地址

使用特权

评论回复
沙发
shouyee| | 2024-11-25 06:44 | 只看该作者
使用的是软件控制的IIC通信,你也可以通过编程方式来控制IIC通信的过程,只发送从机地址而不发送数据。具体的编程方法也会因所使用的编程语言和开发环境而有所不同

使用特权

评论回复
板凳
桃醉| | 2024-11-25 21:41 | 只看该作者
启动条件:首先,你需要启动I2C通信。这通常是通过将SCL(串行时钟线)保持高电平,然后拉低SDA(串行数据线)来实现的。
发送从机地址:在启动条件之后,你需要发送从机地址。从机地址由两个字节组成:一个是设备地址(或称为目标地址),另一个是读写位(通常是一个读/写标志位)。在发送地址时,你只需要将设备地址和读写位放到SDA线上,并在SCL线的配合下进行时钟同步

使用特权

评论回复
地板
桃醉| | 2024-11-25 21:42 | 只看该作者
停止条件(可选):如果你不打算发送任何数据到从机,你可以选择在发送完从机地址后发送一个停止条件。停止条件是通过将SDA和SCL都保持高电平来实现的。然而,如果你的I2C接口要求不立即停止,可以忽略这一步。
时钟控制:在整个过程中,你需要在SCL线的控制下保持同步。当SCL为低电平时,SDA线上的数据是稳定的,可以进行数据传输或读取。当SCL为高电平时,SDA线上的数据可能会被改变。
等待响应(可选):如果你希望从机在接收到地址后进行响应(例如确认接收),你可以在发送完从机地址后等待从机的响应。然而,如果你不打算接收任何响应或只发送从机地址作为命令,可以忽略这一步。

使用特权

评论回复
5
suncat0504| | 2024-11-26 15:05 | 只看该作者
“要发送0地址”是什么意思?主机与任何I2C设备通讯,是一定要发送从机地址的。你这里发送0,是指想I2C总线发送0吧?

使用特权

评论回复
6
suncat0504| | 2024-11-26 15:06 | 只看该作者
一定要发送0地址,你就当做从机设备的地址是0就行。根据协议,发送完0,主机就发送STOP,不等待从机是否应答ACK信号,是否可行?

使用特权

评论回复
7
中国龙芯CDX| | 2024-11-28 09:14 | 只看该作者
0地址?什么意思?

使用特权

评论回复
8
一路向北lm| | 2024-11-28 09:14 | 只看该作者
启动条件:首先,主设备需要发送一个起始条件(Start Condition),这通常是通过拉低SCL(串行时钟线)并在其后的时钟周期内拉高SDA(串行数据线)来完成的。

从机地址发送:接下来,主设备在SCL高电平时,通过SDA发送从机设备的地址。这个地址可以是7位或8位,取决于你使用的I2C协议和具体硬件。

读取位:在发送完从机地址后,主设备通常需要读取一个位(通常是读/写位),以表明接下来的操作是读操作还是写操作。但如果你不想发送数据,你可以忽略这个位或者将其设置为写操作(通常是低电平)。

不发送数据:由于你不想发送数据,所以在SCL的时钟周期内SDA线可以保持高电平或者不做任何改变(根据硬件的具体要求),因为你不传输任何字节。

保持控制:在发送完从机地址和不发送数据的情形下,主设备可以继续控制SCL线来执行后续的I2C操作,比如发送停止条件(Stop Condition)来结束通信。

结束条件:在完成通信后,主设备需要发送一个结束条件(Stop Condition),这是通过拉高SCL的同时拉低SDA来实现的

使用特权

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

本版积分规则

41

主题

289

帖子

0

粉丝