你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
STM32F401RC的I2C1与I2C2互联,出现奇怪现象
[复制链接]
bucker
提问时间:2021-1-3 11:15 /
问答
是否解决:
将STM32F401RC的I2C1与I2C2互联,SDA1连接SDA2,SCL1连接SCL2。程序由CubeMX创建,运行初始化后,两个寄存器的初值见下图
看起来一切正常。
但是,由I2C1执行I2C1->CR1 |= I2C_CR1_START;作为主机发出Start信号之后,I2C1的SR1中的SB=1,I2C2的SR1理应有反应,可实际情况如下图
不知为何是I2C2的SR2的BUSY=1了。这让人觉得不可思议。两路I2C均设置了4.7k的上拉电阻,所有通信引脚均为开漏状态。
赞
0
收藏
0
评论
2
分享
发布时间:2021-1-3 11:15
举报
请先
登录
后回复
2个回答
bucker
回答时间:2021-1-3 17:15:01
a0a.1 32b0c
补充一点,硬件上是没有问题的。执行代码
HAL_I2C_Slave_Receive_IT (&hi2c2, recv, 5);
HAL_I2C_Master_Transmit_IT (&hi2c1, 0x14, send, 5);
从机是可以正确接收主机发过来的数据的,只是想让从机发信号主机收信号则出现无法完成的情况
赞
0
评论
回复
支持
反对
butterflyspring
回答时间:2021-1-12 15:32:22
a0a.1 32b0c
关于I2C寄存器中的SB位是针对master 的状态,可以从参考手册中找到。 另外,根据I2C通讯标准,从机是不能主动发起通讯的,是由主机发起读命令后,从机才可以发数据出来的。
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
HAL_I2C_Slave_Receive_IT (&hi2c2, recv, 5);
HAL_I2C_Master_Transmit_IT (&hi2c1, 0x14, send, 5);
从机是可以正确接收主机发过来的数据的,只是想让从机发信号主机收信号则出现无法完成的情况