找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2787|回復: 7
打印 上一主題 下一主題
收起左側

STM32單片機+LCD1602無法實時顯示DHT11的溫濕度 附51與CubeIDE程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:966442 發(fā)表于 2021-12-21 15:47 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
問題的現(xiàn)象:LCD1602可以顯示溫濕度,但是改變DHT11的值,LCD1602并不能改變數(shù)字,相當于只讀了一次,我的代碼是根據(jù)51單片機寫的,51都成功了我以為可以放在STM32(代碼用的是hal庫,然后的話是用cubeide寫的,不是標準庫)上,但是沒想到還會有錯誤,代碼中出現(xiàn)的printf()是利用串口來查看代碼有沒有卡在某個地方上。我現(xiàn)在所知道的卡死的函數(shù)是:void DHT11_receive()和unsigned char DHT11_rec_byte(),其他地方的話雖然都能打印出來但是都是過一陣子才打印過一陣子才打印。下面我會給出仿真圖和代碼,以及附上51的代碼(經(jīng)仿真可以運行)供大佬對比一下我錯誤的STM32代碼。
原理圖部分:


STM32(利用的是cubeide即hal庫)的代碼


cubeide的配置


51的代碼


我會把51和32的壓縮包一起發(fā)過來 1602.rar (73.03 KB, 下載次數(shù): 32)

DTH11.rar (33.72 KB, 下載次數(shù): 17)
temperatureandhumidity.7z (1 MB, 下載次數(shù): 29)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:966442 發(fā)表于 2021-12-21 21:27 | 只看該作者
我把32的代碼與51的代碼,對比了半天,我死活想不明白,為什么LCD不能實時更新數(shù)據(jù)。我想破腦袋都想不通,為什么這兩個函數(shù)串口打印不出來
回復

使用道具 舉報

板凳
ID:301191 發(fā)表于 2021-12-21 23:48 | 只看該作者
頂一下
回復

使用道具 舉報

地板
ID:301191 發(fā)表于 2021-12-22 22:48 | 只看該作者
頂一下
回復

使用道具 舉報

5#
ID:966442 發(fā)表于 2021-12-23 19:46 | 只看該作者
有沒有大佬幫幫萌新
回復

使用道具 舉報

6#
ID:301191 發(fā)表于 2021-12-23 23:16 | 只看該作者
頂一下
回復

使用道具 舉報

7#
ID:966442 發(fā)表于 2021-12-24 13:04 | 只看該作者
今天早上刷牙洗臉之際,我突然想出了一個辦法,既然程序遇到while就被卡住,那么我就在while再寫點東西讓他強行往下面走,雖然可能造成時序有點亂,但是LCD1602終于可以實時顯示溫濕度了,但是就是有一個小毛病,就是我在調溫濕度的時候,這個LCD1602有時候會變成00,不過很快又變成溫濕度,但是后面偶爾又會變成0,這樣往復,請問有什么辦法解決嘛
回復

使用道具 舉報

8#
ID:966442 發(fā)表于 2021-12-25 13:24 | 只看該作者


有沒有大佬幫幫萌新
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表