Board logo

标题: 做从机I2C接受问题 [打印本页]

作者: jakerroo    时间: 2010-5-20 20:05     标题: 做从机I2C接受问题

void PC_I2C_OnWriteReq(void)
{
PC_I2C_RecvBlock(IN_data,3,&ynt);
/* Write your code here ... */
}

请问大虾,第一次用这种块接受或发送的方式。比如说上面的程序,我接受的数据放到IN_data【3】里面,但是出现一个很奇怪的现象,就是主机一次发送3个数据而我这边从机进void PC_I2C_OnWriteReq这个中断了,但是我IN_data里面没有值,当主机再发一次,这样我IN_data里面才有第一次发送的值。请问大侠怎么去解决这个问题。
作者: jakerroo    时间: 2010-5-23 15:16

版主。强陈解释一下      呵呵
作者: finewind    时间: 2010-5-24 13:30

不知道你想说些什么,IIC总线,首先由主机产生起始信号,然后发送第一个字节,这个字节时寻址字节,包括7位地址和一位读写方向位,接下来一个字节大部分是读写单元地址,从第三个字节才是实际要写入的数据。
作者: strongchen    时间: 2010-5-25 10:08

楼上说的对,要弄清楚IIC通讯本身的时序和各字节的含义。
作者: jakerroo    时间: 2010-6-1 20:30

4# strongchen




我知道I2C的通讯协议,我上面写的一段函数是通过PE里面自动生成的中断,我调用的函数,如果你用一下PE里面的这个功能,可能你就能理解我说的意思了,我PE用那种一个一个字的接受方式是没有问题的,只有用这种一次接受一串字节的时候就有我说的这种问题




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0