硬汉嵌入式论坛

 找回密码
 立即注册
搜索
查看: 214|回复: 4
收起左侧

[STM32H7] i2c1使用,初始化顺利,但是接的EEprom引脚没有波形

[复制链接]

30

主题

63

回帖

153

积分

初级会员

积分
153
发表于 2026-10-16 20:50:52 | 显示全部楼层 |阅读模式
版主和各位大佬好


       我现在在调试i2c接口,用的是h743-zi,144pin,从cubemx配置提示的信息,引脚也是pb6和pb7,外加了上拉电阻

        初始换化过程中,在线仿真都顺利,因为还有其他的模块在运行。程序也进入了主while(1)的循中。

        现在的问题是发现读取外部eeprom的时候,好像没有读上来,我就用示波器观察,好像scl和sda都没有信号输出。

        会是什么问题?

        读取eeprom的驱动程序,在之前的在h743vi上面跑通过。唯一的区别是h743vi的主频480M,现在的主频是400M,
        
        我也尝试了对iic的工作频率尝试不同的设置,比如100K,400K,还有1000K,好像都不行

       问题出在哪里了?

谢谢大家
回复

使用道具 举报

13

主题

532

回帖

571

积分

金牌会员

积分
571
发表于 7 天前 | 显示全部楼层
这种情况我一般会这么做,
1。检查I2C1的时钟给了没,复位信号撤销了没?都在RCC时钟操作这一块,
最简单的验证办法是打开外设寄存器,看下寄存器可以修改不?随便找到I2C的设置寄存器,随便勾选一下看能修改不,如果修改不了说明时钟不对
2。检查I2C1的最基础配置,比如是否使能,有对应的EN位吧,
3。对照手册,检查I2C相关所有寄存器配置是否正确?到这一步差不多就知道问题原因了。
回复

使用道具 举报

42

主题

267

回帖

393

积分

高级会员

积分
393
发表于 7 天前 | 显示全部楼层
本帖最后由 LinY 于 2026-10-17 09:14 编辑

扫一下I2C 看下有没有识别到设备,如果识别到了比对下addr对不对

[C] 纯文本查看 复制代码
void ScanI2C(I2C_HandleTypeDef* hi2c)
{
  HAL_StatusTypeDef ret;
  for (uint8_t addr = 0x08; addr <= 0x77; addr++)
  {
    ret = HAL_I2C_IsDeviceReady(hi2c, addr << 1, 1, 2);
    if (ret == HAL_OK)
    {
      printf("[I2C SCAN] -> Active I2C device at 0x%02X\n", addr);
    }
  }
}

回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124425
QQ
发表于 5 天前 | 显示全部楼层
主机驱动,推荐软件模拟,所有平台通用,没有移植的烦恼
回复

使用道具 举报

30

主题

63

回帖

153

积分

初级会员

积分
153
 楼主| 发表于 3 天前 | 显示全部楼层
谢谢大家的建议。
确实换成了软件模拟。三个i2c设备都驱动成功了。

谢谢@eric2013。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-10-24 07:50 , Processed in 1.092309 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表