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

主发送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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版