你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
HAL_I2C_Slave_Receive_IT (&hi2c2, recv, 5);
HAL_I2C_Master_Transmit_IT (&hi2c1, 0x14, send, 5);
从机是可以正确接收主机发过来的数据的,只是想让从机发信号主机收信号则出现无法完成的情况