STM32 SHT10温湿度显示不正常?
用51单片机调试正常,改成stm32后温度总在40左右无规律变化,无法升温,湿度显示0.1(最小值)有时会4.X或2.X无规律芯片STM32F103RBT6 用1602显示 shT105V供电
占个楼,增加下人气
根据你的描述,无法判断到底是硬件还是软件的问题。
所以建议调试方法:
1:首先查看你的STM32接SHT10接线是否正确;有否虚焊、焊反的情况;SHT10用i2c通信,上拉电阻是否接好,是否接成了强上拉?
2:其次确认你的STM32下是否还在使用51MCU那种模拟I2C方式来读取SHT10数据。如果是直接抄SHT的例程,因为普通51没有I2C模块,SHT的例程是根据51的特点来写,但用到STM32就不一样了。因为两者的默认IO结构不同。如果你STM32配置的IO输入是上拉输入的话,那么很可能跟外部的I2C上拉电阻并联,I2C信号输入的上拉等效电阻就变小,形成了强上拉,这杨你得到的数据就有问题。所以,STM32的程序要根据硬件电路来改写。
3:如果是用STM32的I2C模块来读取SHT10数据,或者用模拟I2C方式读取并排除了上述强上拉等电路问题。就要通过查看数据寄存器来分析是什么问题。最好是用有JLINK 或 ULINK2等仿真调试器,在程序上设断点运行到读取的I2C数据的那个地方,查看和Datasheet上的信息是否一致。
如果没有仿真器,那先确保串口通信是正常的。然后在程序中,嵌入串口输出程序,把I2C的buf的寄存器或者自定义的模拟I2C接收寄存器的数据发送到计算机上,在分析数据是否正确。
……
现在只能想到这么多。
调试硬件呢有一种很简便也很重要的方法 科学变量法。先分两大步,硬件,软件。硬件查看连接,先检查模块,测试下看结果,若不行,再查看下板子,测试下结果,依次类推啦,电源供电什么的。 软件部分分开调试,先检查数据解算部分,人为给定一个值,测试能否得到正确的温度。然后检查读取数据部分,观察从模块读出的数据是否正确
Ps没用过这个模块,说不对的地方请指正
先从硬件开始检查,从布线,焊接等等,看看硬件上有没有问题,然后再看看检查软件上的问题,一般都是这样做的
不知道是硬件还是软件问题
