问题的现象: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)
|