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

uboot初始化IIC1,跳转到应用程序中后,先读一字节AT24C04的数据,然后初始化IIC1(未复位),再读一字节AT24C04时,有概率一直检测到IIC处于busy状态。

[复制链接]
#YDJ666yyds_is_ 提问时间:2025-6-26 17:13 / 未解决

uboot初始化IIC1,跳转到应用程序中后,先读一字节AT24C04的数据,然后初始化IIC1(未复位),再读一字节AT24C04时,有概率一直检测到IIC处于busy状态。

IIC1总线只有STM32F405RGT6和AT24C04,IIC总线有10K的上拉电阻。

以下三种方式可降低出busy的概率:

1)跳转到应用程序中后,若先进行IIC1初始化(未复位),再去读一字节数据则正常;

2)跳转到应用程序中后,若IIC1初始化前,先复位一下,则后续读一字节数据正常;

3)跳转到应用程序中后,若不再初始化IIC1,则IIC通信正常。

但仍不清楚为什么原本程序有概率出现busy的状态。

收藏 评论2 发布时间:2025-6-26 17:13

举报

2个回答
废鱼 回答时间:前天 21:47

用逻辑分析仪或者示波器看一下波形,是不是SDA或者CLK一直拉低导致到。如果是,说明之前的操作有异常导致的。在操作前重新初始化IIC,再进行正常操作。

butterflyspring 回答时间:昨天 14:45
根据手册描述和I2C 协议特点,如果总线上有一定幅值的扰动,推测会被高速硬件识别到。

从而被认为总线在工作busy。

STM32F4 I2C BUSY .PNG
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版