I2c无法正常工作
我有一个旧程序,在旧版本的STCubeMX固件上正常运行。将其迁移到新固件,I2C通信不正常,不知道啥原因截图如下https://community.st.com/t5/image/serverpage/image-id/28593i2DFAF49BA22054F6/image-size/large?v=v2&px=999固件版本差异导致的? 检查时钟源和GPIO配置是否正确。 回退固件版本或联系ST官方支持。 建议手动调整I2C配置参数,与旧版一致 新版固件可能更改了I2C的时钟源或时钟分频设置,导致通信速率不匹配。 检查HAL_RCCEx_PeriphCLKConfig(),I2C的时钟源配置是否正确。 用CubeMX重新生成代码,时钟树配置与旧版一致。 GPIO配置问题? 引脚的上下拉电阻是否启用? 检查中断优先级配置(HAL_NVIC_SetPriority())和DMA配置是否与旧版一致。如果使用DMA,确保DMA通道和传输方向配置正确。
检查I2C相关函数的调用方式是否与新版库的文档一致。尝试用旧版HAL库或LL库重新生成代码。
页:
[1]