你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
toofree 发表于 2018-3-27 09:38 知道第一个字节发送的时候没收到ACK意味着什么吗? 就是说,在这个地址就没找到有I2C设备。如果确定你的85 ...
安 发表于 2018-3-27 09:36 楼主看一下8563的硬件地址是否正确。
安 发表于 2018-3-27 10:24 楼主可以参考一下: http://blog.csdn.net/xiayufeng520/article/details/46292755
安 发表于 2018-3-27 10:51 这个是我找的例程,我以前用过是可以用的。103下面使用,配置的是输出。
安 发表于 2018-3-27 11:05 我这里用的是没有配置。可能MCU不同,你应该参考ST的。
安 发表于 2018-3-27 11:26 写完以后,记得要STOP一下,可能是因为8563处于忙状态。
那个干扰脉冲有影响吗?因为我在初始化IO口后,IO口的电平都是拉低的,然后我在初始化中加了一句“ GPIO_SetBits(GPIOB,GPIO_Pin_11|GPIO_Pin_10);”之后,就会有前面的那个低脉冲了
硬件地址没有问题,其“从地址 读 0A3H;写 0A2H”,手册上说的
http://blog.csdn.net/xiayufeng520/article/details/46292755
我看了一下您的程序,我先问一下,您的程序中没有对SDA方向进行控制吗,当等ACK的时候SDA的方向不应该是输入吗
就是不用管IO的方向呗,我把我的设置IO方向的语句去掉,的确是可以接收到ACK的,但也有一条语句接收的是NACK,看这个样子是不用设置IO的方向,但是我之前参考了两三版程序都有设置IO的方向,那到底用不用设置IO的方向。我们这个IO的方向一直都配置的是输出啊
这个是我用逻辑分析仪抓到的数据,第二个写寄存器地址,收到的响应是NACK,这说明什么呢?
您说的这个STOP一下,应该不是发一个停止信号吧,因为I2C的时序不是发送从地址等待ACK,发送要写的数据等ACK,最后发STOP信号啊。还是你说的这个stop是把SDA和SCL都拉高呢?