OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8725|回复: 8

求助大佬阿波罗f429OLED 屏幕显示DHT11温湿度一直是固定数值的问题

[复制链接]

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2020-10-2
在线时间
20 小时
发表于 2020-12-8 22:13:40 | 显示全部楼层 |阅读模式
1金钱
又来向大佬求助了,参考过论坛里的大佬的帖子和网上的资料,OLED 屏幕显示出的一直是Error!或者一直显示温度和湿度36,不知道怎么解决,以下是main程序,OLED 和dht11的程序均来自原子哥的源程序




#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "oled.h"
#include "dht11.h"
/************************************************
ALIENTEK 阿波罗STM32F429开发板实验11
OLED显示实验-HAL库函数版
技术支持:www.openedv.com
淘宝店铺:http://eboard.taobao.com
关注微信公众平台微信号:"正点原子",免费获取STM32资料。
广州市星翼电子科技有限公司  
作者:正点原子 @ALIENTEK
************************************************/




int main(void)
{
    u8 t=0;
        u8         temp;   
        u8  humi;       
    HAL_Init();              //初始化HAL库
       
    Stm32_Clock_Init(360,25,2,8);   //设置时钟,180Mhz
    delay_init(180);                //初始化延时函数
    uart_init(115200);              //初始化USART
    LED_Init();                     //初始化LED
    OLED_Init();                        //初始化OLED
   


        while(DHT11_Init())
        {
                 OLED_ShowString(0,12,"Error!",12);
                delay_ms(200);
                OLED_Refresh_Gram();                //更新显示到OLED
                 delay_ms(200);
        }
        OLED_ShowString(0,12,"DHT11 OK!",12);
        OLED_Refresh_Gram();                //更新显示到OLED
        OLED_ShowString(0,24,"   C",12);               
        OLED_ShowString(0,40,"   %",12);  
    while(1)
    {
                 if(t%10==0)                        //每100ms读取一次
                {                                                                          
                        DHT11_Read_Data(&temp,&humi);        //读取温湿度值                                            
                        OLED_ShowNum(0,24,(u32)temp,2,12);//显示温度                        
                        OLED_ShowNum(0,40,humi,2,12);                //显示湿度
                        OLED_Refresh_Gram();                //更新显示到OLED                        
                }   
                t++;
                if(t>'~')t=' ';  
                delay_ms(500);
                LED0=!LED0;
        }
}


主要的问题是为什么一直显示36而没有其他数值显示
IMG_20201208_214550.jpg

最佳答案

查看完整内容[请看2#楼]

仿真或者printf()打印,看看temp和humi的值是变化的不,如果不过,有可能是你读数据出错了 需要检查读数据部分的代码了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10560
金钱
10560
注册时间
2017-2-18
在线时间
1911 小时
发表于 2020-12-8 22:13:41 | 显示全部楼层
仿真或者printf()打印,看看temp和humi的值是变化的不,如果不过,有可能是你读数据出错了
需要检查读数据部分的代码了
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2020-12-9 13:47:02 | 显示全部楼层
检查一下 应答信号是否正常,可以在应答信号多加点延迟。
回复

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2020-10-2
在线时间
20 小时
 楼主| 发表于 2020-12-9 19:35:47 | 显示全部楼层
jiangyy 发表于 2020-12-9 13:47
检查一下 应答信号是否正常,可以在应答信号多加点延迟。

有点不大清楚,是哪里的应答信号
回复

使用道具 举报

53

主题

567

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2099
金钱
2099
注册时间
2017-2-11
在线时间
306 小时
发表于 2020-12-10 15:22:02 | 显示全部楼层
DIOPLUS 发表于 2020-12-9 19:35
有点不大清楚,是哪里的应答信号

不是有起始信号,结束信号,读信号,写信号,应答信号吗?看看  应答信号那块
回复

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2020-10-2
在线时间
20 小时
 楼主| 发表于 2020-12-10 20:36:35 | 显示全部楼层
peng1554 发表于 2020-12-9 23:16
仿真或者printf()打印,看看temp和humi的值是变化的不,如果不过,有可能是你读数据出错了
需要检查读数 ...

谢谢大佬,按照你的思路通过printf果然是显示不出数据,问题是出现在原子哥dht11里面,源程序还用到了pcf8574的IO口,现已解决,非常感谢!
回复

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2020-10-2
在线时间
20 小时
 楼主| 发表于 2020-12-10 20:37:09 | 显示全部楼层
jiangyy 发表于 2020-12-10 15:22
不是有起始信号,结束信号,读信号,写信号,应答信号吗?看看  应答信号那块

感谢感谢
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2020-5-28
在线时间
13 小时
发表于 2021-5-24 12:36:02 | 显示全部楼层
请问博主是怎么解决的?能否详细解答一下,感谢
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2022-4-15
在线时间
2 小时
发表于 2022-7-15 12:27:09 | 显示全部楼层
楼主,请问你还有这个F429操控7脚oled的代码吗
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 12:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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