打印
[STM32L1]

DHT12 i2c读取 死循环

[复制链接]
楼主: chenjunt
手机看帖
扫描二维码
随时随地手机跟帖
61
未来AI| | 2025-1-17 10:24 | 只看该作者 回帖奖励 |倒序浏览
模块化信号是具有相等幅度和相位的信号,

使用特权

评论回复
62
AutoMotor| | 2025-1-17 19:10 | 只看该作者
修改等待有超时,同时要注意时许。

使用特权

评论回复
63
物联万物互联| | 2025-1-18 13:02 | 只看该作者
检查i2c初始化配置是否不正确

使用特权

评论回复
64
朝生| | 2025-1-18 21:21 | 只看该作者
等待修改超时,请注意时间限制。

使用特权

评论回复
65
芯路例程| | 2025-1-19 22:34 | 只看该作者
等待修改已超时。请注意时间限制。,

使用特权

评论回复
66
Amazingxixixi| | 2025-1-21 17:03 | 只看该作者
换软件模拟的

使用特权

评论回复
67
SophiaOP| | 2025-1-22 22:25 | 只看该作者
有没有小一点的模块啊

使用特权

评论回复
68
公羊子丹| | 2025-1-23 09:54 | 只看该作者
楼主检查过 I2C 地址没?DHT12 默认地址是 0x5C,别用错了。

使用特权

评论回复
69
周半梅| | 2025-1-23 09:56 | 只看该作者
死循环的话很可能是 ACK 没收到,看看线路上拉电阻有没有配置对?

使用特权

评论回复
70
帛灿灿| | 2025-1-23 09:58 | 只看该作者
STM32 的 I2C 容易卡在 HAL_I2C_Master_Transmit 或 HAL_I2C_Master_Receive,看看有没有超时处理。

使用特权

评论回复
71
童雨竹| | 2025-1-23 09:59 | 只看该作者
我之前也遇到过这种问题,最后发现是 DHT12 的电源供电不稳,加了个电容解决了。

使用特权

评论回复
72
万图| | 2025-1-23 10:01 | 只看该作者
PB6 和 PB7 是 I2C 的默认引脚,确认一下有没有被其他外设占用。

使用特权

评论回复
73
Wordsworth| | 2025-1-23 10:02 | 只看该作者
楼主试过逻辑分析仪抓波形吗?看看 I2C 信号有没有问题,比如时序不对。

使用特权

评论回复
74
Bblythe| | 2025-1-23 10:03 | 只看该作者
我觉得可能是初始化有问题,试着用 CubeMX 重新配置一下 I2C 看行不行。

使用特权

评论回复
75
Pulitzer| | 2025-1-23 10:05 | 只看该作者
STM32L52 的 I2C 时钟别开太高,DHT12 支持的最大频率只有 100kHz。

使用特权

评论回复
76
Uriah| | 2025-1-23 10:07 | 只看该作者
如果总是读不到数据,可以先试试用扫描工具看 DHT12 的地址能不能探测到。

使用特权

评论回复
77
Clyde011| | 2025-1-23 10:08 | 只看该作者
如果还不行,建议单步调试看看程序卡在哪个函数,可能是某个状态没处理好。

使用特权

评论回复
78
Amazingxixixi| | 2025-1-24 11:42 | 只看该作者
学习一下,提升技能,新年快乐

使用特权

评论回复
79
AIsignel| | 2025-1-25 06:14 | 只看该作者
pb6和pb7是i2c的默认引脚,确保它们不被其它外设占用。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则