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

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

[复制链接]
watercici 提问时间:2018-3-26 15:09 /
阅读主题, 点击返回1楼
收藏 评论34 发布时间:2018-3-26 15:09
34个回答
回答时间: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 结帖奖励

查看全部评分

stm1024 回答时间:2018-3-28 18:07:12
本帖最后由 stm1024 于 2018-3-28 18:09 编辑

你的STM32在作为主机发送数据到IIC总线上时,配置为输出模式,这个OK,但是需要从PCF8563中得到应答,相当于是要从总线上读取数据,这个时候GPIO应该配置为输入模式,但似乎并没有看到类似的语句或代码,SDA_IN吗?也不太清楚具体代码如何,所以不好判断。

评分

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

查看全部评分

watercici 回答时间:2018-4-11 15:46:58
结贴:
没有收到应答原因:是晶振有问题,给的时钟不对

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版