OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5013|回复: 1

I2C从机收到启动信号后,变为忙状态

[复制链接]

21

主题

151

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
423
金钱
423
注册时间
2017-4-1
在线时间
73 小时
发表于 2021-1-3 11:25:30 | 显示全部楼层 |阅读模式
10金钱
用STM32F401RC进行双I2C互联试验,I2C1为主机,I2C2作为从机。SDA1连接SDA2,SCL1连接SCL2,所有引脚均为开漏输出,两线上拉电阻实际为2.35k(两个4.7k并联)。
程序由Cube创建,初始化之后,两组I2C的寄存器见下图
微信截图_20210103105611.jpg
执行{I2C1->CR1 |= I2C_CR1_START;}后,两组寄存器值变化见下图
微信截图_20210103105709.jpg
I2C1的结果是正常的,但不知为何I2C2的响应却是BUSY,这样一来,I2C1后续发送的地址数据也未传送给I2C2。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

151

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
423
金钱
423
注册时间
2017-4-1
在线时间
73 小时
 楼主| 发表于 2021-1-3 17:14:17 | 显示全部楼层
补充一点,硬件上是没有问题的。执行代码
        HAL_I2C_Slave_Receive_IT (&hi2c2, recv, 5);
        HAL_I2C_Master_Transmit_IT (&hi2c1, 0x14, send, 5);
从机是可以正确接收主机发过来的数据的,只是想让从机发信号主机收信号则出现无法完成的情况
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-3-1 05:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表