ST意法半导体
直播中

的撒的

9年用户 730经验值
擅长:可编程逻辑
私信 关注
[问答]

请问如何为STM32H7配置I2C速度?

我正在寻找一种在运行时将 HAL I2C 库时钟速度更改为 100k 或 400k 或 1M 的方法。
我尝试了以下......
hi2c1.Init.ClockSpeed = 100000;
但是,在编译时,编译器无法识别该参数。









回帖(1)

高淑贤

2022-12-30 10:29:02
I2C 速度配置基于 I2C_TIMINGR 寄存器内容。
所以,在HAL结构中,需要对参数hi2c1.Init.Timing进行适当的编程:
hi2c1.Init.Timing = I2C_TIMING;
I2C_TIMING 值取决于:


  • I2C 时钟源
  • 您需要设置的速度
  • 上升和下降时间
  • 过滤器的配置

可以使用 STM32CubeMX 接口计算出合适的值:您会看到系统会根据您提供的输入内容建议合适的 TIMINGR 值。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分