本帖最后由 尘埃未定 于 2014-12-12 23:20 编辑
大家好:
我最近在做亮片MSP430之间的I2C通讯,一个做主机从从机读取数据,使用MSP430自带的P1.6,P1.7口分别做SCL和SDA,使用MSP430自带的I2C接口功能,能够完成通讯,但是如果主机使用IO口模拟I2C通讯,发现作为从机的MSP430对地址没有应答,奇怪的是竟然连主机产生的最后一个SCL脉冲也消失了;但是如果主机向从机写数据,从机对地址就有相应,求高手解答,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
IIC写字节:第八个下降沿脉冲后,(可以再次将数据线拉高,即释放数据线,该步骤可以省略),SDA的IO口改为输入,ACK应答信号传递,将数据线拉低(反应速度很快),第九个下降沿脉冲后,数据线再次释放。至此,完成一次单字节数据写入过程。
IIC读字节:之前为写入“读地址操作”,第八个下降沿脉冲后,数据线拉高,释放数据线,SDA的IO口改为输入,ACK应答信号传递,第九个下降沿脉冲后,第一个数据位已经接收到!!此时将数据线改为默认设置——输出。然后进入“读字节”函数,SDA的IO口改为输入,再下一个下降沿脉冲来临之前先读取数据
看到没有??读字节跟写字节是有变化的!我也是后来通讯成功的时候发现数据不对头,另一个研发告诉我,数据已经收到了,只是我没有发现。你看看,是不是你的问题。
一周热门 更多>