STM32F1 I2C硬件不稳定? 诡异?

硬被应需求改了 STM32F103C8 和 C6 共存的版子, 资源重新安排。
CubeIDE + HAL同样的码, 唯一不同是, I2C2 换到 I2C1, 读取 AT24C16 Error.

HAL_I2C_Mem_Write(&hi2c1, DevAddr, Reg,1, *data, length, 100 );
HAL_I2C_Mem_Read(&hi2c1, DevAddr, Reg, 1, *data, length, 100 );

诡异的是同一个 I2C Bus上另一个 I2C PCF8574 Write 正常。
怀疑硬件 ? 说 STM32F1 I2C硬件不稳定?
改用 Keil + Std Lib, 验证 I2C1, AT24C16+ PCF8574功能正常.
CubeIDE + HAL 对 I2C1 做了什么??
头痛ing….
这周末把之前的软件i2c , 拿来套吧.
STM32F103 I2C1 vs I2C2 , Std-Lib vs. HAL ?
这诡异的事, 就让他见鬼去吧! 没时间慢慢查了。

2022/07/26 STM32 Software I2C
2022/07/26 线索1: I2C 硬件 Clock 被中断? <参照实验单步执行, Debug Mode Ok.>

2023/03/03 Solution 待确认

  1. 确认将 I2C Pin output Freq = GPIO_SPEED_FREQ_HIGH
  2. I2C Clock Enable 需在 Init I2C 界面之前 ( CubeIDE Code Generation Function Bug? )
  3. I2C pin 硬件上需要有 外部 Pull-HIgh 电阻, 在 Soft-Init 之前, 将 信号SCL/SDA 拉成High.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值