I2C的读写,相信肯定人也会遇到这个疑惑

[复制链接]
3718|11
 楼主| mzscg 发表于 2008-11-6 17:48 | 显示全部楼层 |阅读模式
看遍了I2C master的datasheet,
找不到这样的方式:

在一次I2C传输中,I2C master先给slaver发送一个byte(或多个),然后slaver发给master一个byte(或多个);

不知道大虾们有没有办法. 在i2c标准中,是存在这种方式的啊..

 楼主| mzscg 发表于 2008-11-6 17:49 | 显示全部楼层

上次谢谢PSOC-ROCK的解答

希望ROCK兄这次也能早点过来解答啊..呵呵 
 楼主| mzscg 发表于 2008-11-7 10:23 | 显示全部楼层

等了一天了...召唤rock兄弟.

焦急等待中....

psoc 达人快现身.
ni_labview 发表于 2008-11-7 10:42 | 显示全部楼层

你所说的方式可否通过此种方式解决

可以用把slave放置一个EZI2C模块更方便,主机就像读24C系列E2PROM那样操作就可以了
 楼主| mzscg 发表于 2008-11-7 12:47 | 显示全部楼层

楼上的没有明白我的意思.

我的I2C必须作为master,

我是想给slaver发一个指令,然后读回一个数据.
ni_labview 发表于 2008-11-7 17:39 | 显示全部楼层

我这个USB-I2C桥的代码看看是否合适

功能是转发USB命令读取或写I2C从件
相关链接:https://bbs.21ic.com/upfiles/img/200811/2008117173628992.rar
qiuming 发表于 2008-11-7 22:10 | 显示全部楼层

我认为可以的

比方读IIC的温度IC,先发命令,再收数据.或者24C系列,先发读命令,在发地址,再收数据.
 楼主| mzscg 发表于 2008-11-10 10:33 | 显示全部楼层

qiuming

这种方式肯定是存在的.

我想知道的是在PSOC中:

用哪些语句来实现?? 

楼上的蝈蝈提供一下啊.
ni_labview 发表于 2008-11-10 17:07 | 显示全部楼层

就这些啊

//-------------------------------------------------
// Prototypes of the I2CHW API.
//-------------------------------------------------
// High level commands
// Read bCnt bytes of data from slave at bSlaveAddr using mode bMode, place data (UCHAR) pbXferData[]
extern void  I2CHW_fReadBytes(BYTE bSlaveAddr, BYTE * pbXferData, BYTE bCnt, BYTE bMode);
// Read bCnt bytes of data from slave at bSlaveAddr using mode bMode, write data from (UCHAR) pbXferData[]
extern void  I2CHW_bWriteBytes(BYTE bSlaveAddr, BYTE * pbXferData, BYTE bCnt, BYTE bMode);
// Read bCnt bytes of data from slave at bSlaveAddr using mode bMode, write data from (const UCHAR) pbXferData[]
extern void  I2CHW_bWriteCBytes(BYTE bSlaveAddr, const BYTE * pcbXferData, BYTE bCnt, BYTE bMode);
PSoC_Rock 发表于 2008-11-11 17:20 | 显示全部楼层

I2C master 既可以写I2C Slave,也可以读I2C Slave!

所以无所谓I2C master先给slaver发送一个byte(或多个),然后slaver发给master一个byte(或多个)!

 主动权在Master,但slave 可以决定发什么数据让Master读.
ls136112 发表于 2008-11-14 17:52 | 显示全部楼层

肯定可以

按我的经验来说是肯定可以的,既然你作为MASTER,那你要读数据和写数据完全都有由你来控制的,你先发一个给SLAVE,然后再读一个数据回来。SLAVE只不过相当与一个寄存器而已,不管是读是写都是你来控制的啊!
walnutcy 发表于 2008-11-20 22:46 | 显示全部楼层

LZ还是没认真看书,IIC标准没仔细看,

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

本版积分规则

51

主题

234

帖子

0

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