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

STM32G070 I2C主机只发送设备地址读测试是否产生stop位

[复制链接]
huahuahnu 提问时间:2025-7-29 16:48 / 未解决

程序主机配置NBYTES为0,AUTOEND为自动结束模式,发起读,抓波形发现不会产生stop位,是什么原因?

调用的函数是:

if (HAL_I2C_Master_Receive_IT(&hi2c1, (uint16_t)I2C_ADDRESS, (uint8_t *)aRxBuffer, 0) != HAL_OK)

{

Error_Handler();

}

收藏 评论4 发布时间:2025-7-29 16:48

举报

4个回答
老牛洋车 回答时间:2025-7-30 08:05:26

用逻辑分析仪抓取时序图看一下不就明白了。

butterflyspring 回答时间:2025-7-30 11:27:59
这边也测试了一下,结果和你的差不多,但是有其他发现

1. 当设备选择地址不匹配时,是有 STOP 信号的。如图1
2. 当设备地址匹配时,确实没有 STOP信号,如图2
3. 有趣的是当读取字节数是1的时候,无论地址是否匹配,那么都有STOP信号,所以读取字节数最好设置成1。如图3图4


Tek000.png Tek001.png Tek002.png Tek003.png
huahuahnu 回答时间:2025-7-30 14:35:42
butterflyspring 发表于 2025-7-30 11:27
这边也测试了一下,结果和你的差不多,但是有其他发现

1. 当设备选择地址不匹配时,是有 STOP 信号的。如 ...

如果主机只发送设备地址写,就可以产生停止位。
butterflyspring 回答时间:2025-8-8 15:47:42
huahuahnu 发表于 2025-7-30 14:35
如果主机只发送设备地址写,就可以产生停止位。

有种情况是EEPROM没有相应,没有ACK的时候,就不会有STOP


所以才会用不同的设备地址模拟来验证这种情况。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版