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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版