找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2155|回复: 7
收起左侧

STM32单片机+LCD1602无法实时显示DHT11的温湿度 附51与CubeIDE程序

[复制链接]
ID:966442 发表于 2021-12-21 15:47 | 显示全部楼层 |阅读模式
问题的现象:LCD1602可以显示温湿度,但是改变DHT11的值,LCD1602并不能改变数字,相当于只读了一次,我的代码是根据51单片机写的,51都成功了我以为可以放在STM32(代码用的是hal库,然后的话是用cubeide写的,不是标准库)上,但是没想到还会有错误,代码中出现的printf()是利用串口来查看代码有没有卡在某个地方上。我现在所知道的卡死的函数是:void DHT11_receive()和unsigned char DHT11_rec_byte(),其他地方的话虽然都能打印出来但是都是过一阵子才打印过一阵子才打印。下面我会给出仿真图和代码,以及附上51的代码(经仿真可以运行)供大佬对比一下我错误的STM32代码。
原理图部分:
7.png

STM32(利用的是cubeide即hal库)的代码
8.png 9.png 10.png 11.png 12.png 13.png 14.png 15.png 16.png 17.png 18.png 19.png

cubeide的配置
20.png

51的代码
21.png 22.png 23.png 24.png 25.png 26.png 27.png 28.png

我会把51和32的压缩包一起发过来 1602.rar (73.03 KB, 下载次数: 30)
回复

使用道具 举报

ID:966442 发表于 2021-12-21 21:27 | 显示全部楼层
我把32的代码与51的代码,对比了半天,我死活想不明白,为什么LCD不能实时更新数据。我想破脑袋都想不通,为什么这两个函数串口打印不出来
回复

使用道具 举报

ID:301191 发表于 2021-12-21 23:48 | 显示全部楼层
顶一下
回复

使用道具 举报

ID:301191 发表于 2021-12-22 22:48 | 显示全部楼层
顶一下
回复

使用道具 举报

ID:966442 发表于 2021-12-23 19:46 | 显示全部楼层
有没有大佬帮帮萌新
回复

使用道具 举报

ID:301191 发表于 2021-12-23 23:16 | 显示全部楼层
顶一下
回复

使用道具 举报

ID:966442 发表于 2021-12-24 13:04 | 显示全部楼层
今天早上刷牙洗脸之际,我突然想出了一个办法,既然程序遇到while就被卡住,那么我就在while再写点东西让他强行往下面走,虽然可能造成时序有点乱,但是LCD1602终于可以实时显示温湿度了,但是就是有一个小毛病,就是我在调温湿度的时候,这个LCD1602有时候会变成00,不过很快又变成温湿度,但是后面偶尔又会变成0,这样往复,请问有什么办法解决嘛 50.png 51.png
回复

使用道具 举报

ID:966442 发表于 2021-12-25 13:24 | 显示全部楼层
电子浪人 发表于 2021-12-23 19:46
有没有大佬帮帮萌新


有没有大佬帮帮萌新
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表