你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

主发送I2C发送完数据后没有接收到应答信号

[复制链接]
watercici 提问时间:2018-3-26 15:09 /
阅读主题, 点击返回1楼
收藏 评论34 发布时间:2018-3-26 15:09
34个回答
watercici 回答时间:2018-3-27 09:48:08
toofree 发表于 2018-3-27 09:38
知道第一个字节发送的时候没收到ACK意味着什么吗?
就是说,在这个地址就没找到有I2C设备。如果确定你的85 ...

那个干扰脉冲有影响吗?因为我在初始化IO口后,IO口的电平都是拉低的,然后我在初始化中加了一句“        GPIO_SetBits(GPIOB,GPIO_Pin_11|GPIO_Pin_10);”之后,就会有前面的那个低脉冲了
watercici 回答时间:2018-3-27 09:52:07
安 发表于 2018-3-27 09:36
楼主看一下8563的硬件地址是否正确。

硬件地址没有问题,其“从地址 读 0A3H;写 0A2H”,手册上说的
回答时间:2018-3-27 10:24:24
watercici 回答时间:2018-3-27 10:37:29
安 发表于 2018-3-27 10:24
楼主可以参考一下:
http://blog.csdn.net/xiayufeng520/article/details/46292755

我看了一下您的程序,我先问一下,您的程序中没有对SDA方向进行控制吗,当等ACK的时候SDA的方向不应该是输入吗
回答时间:2018-3-27 10:51:31
这个是我找的例程,我以前用过是可以用的。103下面使用,配置的是输出。
watercici 回答时间:2018-3-27 10:59:55
安 发表于 2018-3-27 10:51
这个是我找的例程,我以前用过是可以用的。103下面使用,配置的是输出。

就是不用管IO的方向呗,我把我的设置IO方向的语句去掉,的确是可以接收到ACK的,但也有一条语句接收的是NACK,看这个样子是不用设置IO的方向,但是我之前参考了两三版程序都有设置IO的方向,那到底用不用设置IO的方向。我们这个IO的方向一直都配置的是输出啊
回答时间:2018-3-27 11:05:28
我这里用的是没有配置。可能MCU不同,你应该参考ST的。
watercici 回答时间:2018-3-27 11:10:53
安 发表于 2018-3-27 11:05
我这里用的是没有配置。可能MCU不同,你应该参考ST的。

这个是我用逻辑分析仪抓到的数据,第二个写寄存器地址,收到的响应是NACK,这说明什么呢?
图片2.png
回答时间:2018-3-27 11:26:22
写完以后,记得要STOP一下,可能是因为8563处于忙状态。
watercici 回答时间:2018-3-27 11:35:15
安 发表于 2018-3-27 11:26
写完以后,记得要STOP一下,可能是因为8563处于忙状态。

您说的这个STOP一下,应该不是发一个停止信号吧,因为I2C的时序不是发送从地址等待ACK,发送要写的数据等ACK,最后发STOP信号啊。还是你说的这个stop是把SDA和SCL都拉高呢?

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版