首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

做从机I2C接受问题

做从机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里面才有第一次发送的值。请问大侠怎么去解决这个问题。
版主。强陈解释一下      呵呵
不知道你想说些什么,IIC总线,首先由主机产生起始信号,然后发送第一个字节,这个字节时寻址字节,包括7位地址和一位读写方向位,接下来一个字节大部分是读写单元地址,从第三个字节才是实际要写入的数据。
楼上说的对,要弄清楚IIC通讯本身的时序和各字节的含义。
海纳百川  有容乃大
4# strongchen




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