You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于STM32H503 I2C接收NACK时自动发送STOP的疑问

关于STM32 I2C发送器提前收到NACK时自动发送STOP的触发条件

根据RM0492 Rev3手册第1185页的I2C发送器相关描述:

当RELOAD=0且NBYTES[7:0]定义的数据字节数传输完成时,自动结束模式(AUTOEND=1)会自动发送STOP;软件结束模式(AUTOEND=0)会置位TC标志并拉低SCL线。此外还提到,当接收到NACK时,TXIS标志不会置位,会自动发送STOP条件,I2C_ISR寄存器的NACKF标志置位,若NACKIE位已置位则会产生中断。

针对疑问的明确结论:

  • 提前收到NACK时,无论AUTOEND配置为1还是0,I2C控制器都会自动发送STOP条件。
  • 这是I2C硬件的固定响应逻辑,不受AUTOEND模式影响:只要发送过程中收到从机返回的NACK,控制器会立即终止传输,自动生成STOP,同时置位NACKF标志(若开启NACKIE则触发中断),且不会置位TXIS标志。
  • 仅在正常完成NBYTES定义的字节传输时,AUTOEND的配置才会影响后续行为:AUTOEND=1自动发STOP,AUTOEND=0则置位TC并拉低SCL等待软件处理。

内容的提问来源于stack exchange,提问作者fbbf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 21:12:01