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

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

[复制链接]
watercici 提问时间:2018-3-26 15:09 /
阅读主题, 点击返回1楼
收藏 评论34 发布时间:2018-3-26 15:09
34个回答
回答时间: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都拉高呢?
回答时间:2018-3-27 11:36:05
/*  
* 函数名: static void I2C_Stop(void)
* 描述  : 终止信号
* 输入  : 无
* 输出  : 无
* 说明  :  
*/  
static void I2C_Stop(void)  
{  
    SCL_L;  
    I2C_delay();  
    SDA_L;  
    I2C_delay();  
    SCL_H;  
    I2C_delay();  
    SDA_H;  
    I2C_delay();  
}  
watercici 回答时间:2018-3-27 12:53:51
安 发表于 2018-3-27 11:36
/*  
* 函数名: static void I2C_Stop(void)
* 描述  : 终止信号

可是不对啊,I2C的时序不是发从设备地址等ACK,发寄存器地址等ACK,发要写入的数据等ACK,最后发STOP信号吗?您是想让我在每一个等ACK前都发一个STOP信号吗?
回答时间:2018-3-27 13:36:11
我是说每次完整的通讯完成后。
watercici 回答时间:2018-3-27 13:39:55
安 发表于 2018-3-27 13:36
我是说每次完整的通讯完成后。

我有啊,有STOP信号
watercici 回答时间:2018-3-27 13:48:26
安 发表于 2018-3-27 13:36
我是说每次完整的通讯完成后。

我粘贴的那个图上,不是有stop信号吗,我觉得不是这个原因
枫天2015 回答时间:2018-3-27 14:29:34
我调试半天IIC死活不通,后来发现板子引脚反了

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

watercici 回答时间:2018-3-27 14:37:06
枫天2015 发表于 2018-3-27 14:29
我调试半天IIC死活不通,后来发现板子引脚反了

看我抓取的图像,引脚应该没有接反,谢谢您的帮助
watercici 回答时间:2018-3-28 10:41:06
结贴:
I2C通信,首先肯定STM32F103要进行I2C通信,这要设置SDA的方向;
其次,之所以一直接收到NACK ,说明从设备没有收到有效的地址,可是主设备发送没有错,于是用示波器测了从设备的电压,和时钟,发现晶振有问题,竞争给的不正常

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3 结帖奖励

查看全部评分

所属标签

相似问题

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