打印

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

[复制链接]
2901|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那样操作就可以了

使用特权

评论回复
5
mzscg|  楼主 | 2008-11-7 12:47 | 只看该作者

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

我的I2C必须作为master,

我是想给slaver发一个指令,然后读回一个数据.

使用特权

评论回复
6
ni_labview| | 2008-11-7 17:39 | 只看该作者

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

功能是转发USB命令读取或写I2C从件
相关链接:https://bbs.21ic.com/upfiles/img/200811/2008117173628992.rar

使用特权

评论回复
7
qiuming| | 2008-11-7 22:10 | 只看该作者

我认为可以的

比方读IIC的温度IC,先发命令,再收数据.或者24C系列,先发读命令,在发地址,再收数据.

使用特权

评论回复
8
mzscg|  楼主 | 2008-11-10 10:33 | 只看该作者

qiuming

这种方式肯定是存在的.

我想知道的是在PSOC中:

用哪些语句来实现?? 

楼上的蝈蝈提供一下啊.

使用特权

评论回复
9
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);

使用特权

评论回复
10
PSoC_Rock| | 2008-11-11 17:20 | 只看该作者

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

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

 主动权在Master,但slave 可以决定发什么数据让Master读.

使用特权

评论回复
11
ls136112| | 2008-11-14 17:52 | 只看该作者

肯定可以

按我的经验来说是肯定可以的,既然你作为MASTER,那你要读数据和写数据完全都有由你来控制的,你先发一个给SLAVE,然后再读一个数据回来。SLAVE只不过相当与一个寄存器而已,不管是读是写都是你来控制的啊!

使用特权

评论回复
12
walnutcy| | 2008-11-20 22:46 | 只看该作者

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

使用特权

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

本版积分规则

51

主题

234

帖子

0

粉丝