[应用相关] 关于STM32使用硬件IIC无输出问题解决方法

[复制链接]
 楼主| AdaMaYun 发表于 2023-5-30 22:00 | 显示全部楼层 |阅读模式
网上查了一下说是硬件bug,经过以下操作忽然可以使用了,但没有复现bug。
方法如下:
1、HAL_I2C_MspInit函数中的__HAL_RCC_I2C1_CLK_ENABLE()提前到__HAL_RCC_GPIOB_CLK_ENABLE()前面。
2、提高系统时钟频率。后来尝试降回内部时钟的8MHz,bug没有复现


vivilyly 发表于 2023-6-7 12:50 | 显示全部楼层
STM32的IIC通讯有个bug
lihuami 发表于 2023-6-8 13:32 | 显示全部楼层
stm32硬件i2c缺陷解决方法
linfelix 发表于 2023-6-8 14:24 | 显示全部楼层
需要检查是否有其他设备正在使用I2C总线,并将其释放。
mollylawrence 发表于 2023-6-8 22:09 | 显示全部楼层
检查I2C从设备地址是否正确,并根据需要进行修改。
Mowergy 发表于 2023-6-11 15:24 | 显示全部楼层
检查一下有没有其他设备正在使用I2C总线
chenqianqian 发表于 2023-6-11 15:35 来自手机 | 显示全部楼层
是时钟没有配置对吧
Jacquetry 发表于 2023-6-11 22:19 | 显示全部楼层
硬件iic好像有点问题吧
zerorobert 发表于 2023-6-13 20:37 | 显示全部楼层
在使用硬件I2C通信时,需要了解相关的寄存器和操作方法,并结合实际应用场景进行相应的设置和调试。
hudi008 发表于 2023-6-13 21:25 | 显示全部楼层
想用IIC的话,就用软件模拟吧。
macpherson 发表于 2023-6-13 21:51 | 显示全部楼层
因为ack信号时间很短暂,一旦错过了这个短暂的ACK信号,STM32就挂了。
Stahan 发表于 2023-6-13 22:59 | 显示全部楼层
是不是有其他设备没释放啊
10299823 发表于 2023-6-14 10:58 | 显示全部楼层
如果配置错误,可能会导致通信失败。此时需要检查I2C引脚的配置是否正确,并根据需要进行修改。
primojones 发表于 2023-6-14 14:11 | 显示全部楼层
在使用硬件I2C通信时,需要正确设置I2C时钟频率。
louliana 发表于 2023-6-19 10:36 | 显示全部楼层
看看时序图,按照时序图写程序              
wengh2016 发表于 2023-6-19 13:12 | 显示全部楼层
stm的i2c设计很难用              
51xlf 发表于 2023-6-19 14:13 | 显示全部楼层
在使用硬件I2C通信时,如果I2C总线被其他设备占用,可能会导致通信失败。
Pretext 发表于 2023-6-19 19:08 | 显示全部楼层
别用硬件的了呗,用内部8MHz晶振多不好啊。
朝生 发表于 2023-6-19 19:08 | 显示全部楼层
【1、HAL_I2C_MspInit函数中的__HAL_RCC_I2C1_CLK_ENABLE()提前到__HAL_RCC_GPIOB_CLK_ENABLE()前面。】这个只是初始化的时候用的吧。
芯路例程 发表于 2023-6-19 19:09 | 显示全部楼层
我觉得IIC还是别用硬件的了,随时容易出现问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

301

主题

2540

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部