找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2888|回复: 7
打印 上一主题 下一主题
收起左侧

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

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


STM32(利用的是cubeide即hal库)的代码


cubeide的配置


51的代码


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

DTH11.rar (33.72 KB, 下载次数: 17)
temperatureandhumidity.7z (1 MB, 下载次数: 29)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

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

使用道具 举报

板凳
ID:301191 发表于 2021-12-21 23:48 | 只看该作者
顶一下
回复

使用道具 举报

地板
ID:301191 发表于 2021-12-22 22:48 | 只看该作者
顶一下
回复

使用道具 举报

5#
ID:966442 发表于 2021-12-23 19:46 | 只看该作者
有没有大佬帮帮萌新
回复

使用道具 举报

6#
ID:301191 发表于 2021-12-23 23:16 | 只看该作者
顶一下
回复

使用道具 举报

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

使用道具 举报

8#
ID:966442 发表于 2021-12-25 13:24 | 只看该作者
电子浪人 发表于 2021-12-23 19:46
有没有大佬帮帮萌新


有没有大佬帮帮萌新
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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