关于149模拟IIC通信的怪问题,请牛人帮忙啊

2019-03-24 15:15发布

我现在在调一个光传感器,它是IIC通信的,直接与单片机IO相连,没有其他硬件结构,我之前在51开发板上调通了,效果很好。现在转到149的板子上就一直出不来,我把具体情况说下哈,还请大牛把把脉啊。 一:51调通了,再加上除了传感器没有其他硬件结构,我也注意到了电压和上拉电阻的问题,这说明硬件上应该没问题的。 二:用示波器观察CLK信号很好,频率也没有超过器件的通信频率范围,而观察DATA信号波形却看到没有应答(ACK),没有ACK是问题的源泉,可为什从机没有应答呢?百思不得其解,从机地址,通信速率我都注意到了啊!   在等待从机应答的时候,我严格按照时序来的啊,SCK低电平也给了足够的时间等待从机拉低啊,就这个问题折腾了两天了,没办法来此神坛求大神! 大家积极发言啊,或许我哪里有没有注意到的地方,呵呵。拜托       此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
Triton.zhang
1楼-- · 2019-03-25 13:03
I2C 在发完8个CLK之后,要把DATA的口线设置成输入,这个和51的芯片有点不同,估计你是错在这里
Triton.zhang
2楼-- · 2019-03-25 17:34
51的芯片是不管管脚的输入输出方向的。MSP430的管脚需要设置输入输出方向,当你设置成输出高时,内部管脚连到了VCC,对方如果直接给出ACK信号,连接到地,就形成了短路。
jane1
3楼-- · 2019-03-25 22:17
 精彩回答 2  元偷偷看……
Triton.zhang
4楼-- · 2019-03-25 22:33
你所说的SCL高电平时,SDA无法保存低电平是什么意思?
也就是说SCL在高电平时,SDA还在变化?是变化一次还是多次?如果是一次的话,那就是一个STOP信号了。你是用模拟的IO口实现的吧,贴点代码出来看下呢?

一周热门 更多>

相关问题

    相关文章