OpenEdv-开源电子网

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

急需求助各位大神 我是做毕业设计的 我是用DHT11测温湿度并报警 但是if(temperature>1000)这出问题了把1000改成40,40比当前温度高但是还是报警了我23号就答辩了。帮帮忙。

[复制链接]

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-5-19
在线时间
0 小时
发表于 2015-5-21 16:40:59 | 显示全部楼层 |阅读模式
5金钱
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h" 
#include "beep.h"  
#include "key.h"  
#include "exti.h"  
#include "wdg.h"  
#include "timer.h"  
#include "tpad.h"
#include "oled.h"  
#include "lcd.h"
#include "usmart.h"
#include "rtc.h"  
#include "wkup.h"
#include "adc.h"  
#include "dac.h"  
#include "dma.h"  
#include "24cxx.h"  
#include "flash.h"  
#include "rs485.h"  
#include "can.h"  
#include "touch.h"  
#include "remote.h"  
#include "joypad.h"
#include "adxl345.h"
#include "ds18b20.h"
#include "dht11.h"


int main(void)
{  
u8 t=0;
u8 temperature;      
u8 humidity;  
    
  
  Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,9600); //串口初始化为9600
delay_init(72);   //延时初始化 
LED_Init();   //初始化与LED连接的硬件接口
LCD_Init();   //初始化LCD
// BEEP_Init();         //初始化蜂鸣器端口
usmart_dev.init(72); //初始化USMART
  KEY_Init(); //按键初始化

  POINT_COLOR=RED;//设置字体为红色 
LCD_ShowString(60,50,200,16,16,"YUN NAN NONG DA");
LCD_ShowString(60,70,200,16,16,"JI KE XI");
LCD_ShowString(60,90,200,16,16,"NIE JIAN FENG");
LCD_ShowString(60,110,200,16,16,"2015/5/19");  
  while(DHT11_Init()) //DHT11初始化
{
LCD_ShowString(60,130,200,16,16,"DHT11 Error");
delay_ms(200);
LCD_Fill(60,130,239,130+16,WHITE);
  delay_ms(200);
}   
LCD_ShowString(60,130,200,16,16,"DHT11 OK");
POINT_COLOR=BLUE;//设置字体为蓝色 
  LCD_ShowString(60,150,200,16,16,"Temp:  C");  
  LCD_ShowString(60,170,200,16,16,"Humi:  %");  
while(1)
{        
  if(t%10==0)//每100ms读取一次
{  
DHT11_Read_Data(&temperature,&humidity); //读取温湿度值
   
LCD_ShowNum(60+40,150,temperature,2,16); //显示温度
LCD_ShowNum(60+40,170,humidity,2,16); //显示湿度
if(temperature>1000)
{
LCD_ShowString(60,190,200,16,16,"wen du guo gao");
BEEP_Init();         //初始化蜂鸣器端口
LED0=0;
BEEP=0;  
delay_ms(300);
LED0=1;  
BEEP=1;  
delay_ms(300);
 }
if( humidity>1000)
{  
LCD_ShowString(60,210,200,16,16,"shi du guo gao");

BEEP_Init();         //初始化蜂鸣器端口
LED0=0;
BEEP=0;  
delay_ms(300);
LED0=1;  
BEEP=1;  
delay_ms(300);
}  
}
}   
delay_ms(10);
t++;
if(t==20)
{
t=0;
LED0=!LED0;
}
return 0;

}











最佳答案

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

[mw_shl_code=c,true][/mw_shl_code] 首先你写在while(1)后面的程序永远不会执行,还有就是蜂鸣器初始化一次就够了。。。不用每次用到都初始化。 [mw_shl_code=c,true]if(temperature>1000)温度大于1000?[/mw_shl_code] [mw_shl_code=c,true]if(humidity>1000)湿度大于1000?[/mw_shl_code] 想想也知道不可能
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2013-6-1
在线时间
0 小时
发表于 2015-5-21 16:41:00 | 显示全部楼层
[mw_shl_code=c,true][/mw_shl_code]
首先你写在while(1)后面的程序永远不会执行,还有就是蜂鸣器初始化一次就够了。。。不用每次用到都初始化。
[mw_shl_code=c,true]if(temperature>1000)温度大于1000?[/mw_shl_code] [mw_shl_code=c,true]if(humidity>1000)湿度大于1000?[/mw_shl_code] 想想也知道不可能





回复

使用道具 举报

13

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2014-4-9
在线时间
9 小时
发表于 2015-5-21 16:41:00 | 显示全部楼层
DHT的数据格式你搞对了吗?我印象中DHT读出来的数是要除10?100?1000?才是实际值?比如32.5度读出来的是325这样?模糊的印象,好久没搞了。也许你可以把自己读出来的温度显示出来,和普通温度计的读数做个对比就简单明了很多了。
大海啊,全是水; 骏马啊,四条腿。
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-5-19
在线时间
0 小时
 楼主| 发表于 2015-5-21 18:25:04 | 显示全部楼层
我知道不可能 我的本意是如果温度大于设定值比如40什么的但是DHT11传感器度的温度是20但是if(humidity>40)还是会报警。这是什么情况。
回复

使用道具 举报

20

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2013-6-1
在线时间
0 小时
发表于 2015-5-21 18:29:04 | 显示全部楼层
回复【3楼】聂小刀:
---------------------------------
你到底想表达啥啊。。。到底是要设定温度报警上限还是温湿度都要设置?你可以在if里面再写if
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-5-19
在线时间
0 小时
 楼主| 发表于 2015-5-21 18:30:01 | 显示全部楼层
温湿度都要设置
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-5-19
在线时间
0 小时
 楼主| 发表于 2015-5-21 18:31:09 | 显示全部楼层
if(humidity>40)我这样表达正确吗?
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-5-19
在线时间
0 小时
 楼主| 发表于 2015-5-21 18:31:51 | 显示全部楼层
就是我设置的温室度上限还没达到 他就开始报警
回复

使用道具 举报

20

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2013-6-1
在线时间
0 小时
发表于 2015-5-21 18:34:51 | 显示全部楼层
回复【7楼】聂小刀:
---------------------------------
humidity是湿度...
按你写的程序,if(temperature>1000)和if(humidity>1000)其中有一个达到,蜂鸣器就会响
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-5-19
在线时间
0 小时
 楼主| 发表于 2015-5-21 18:36:59 | 显示全部楼层
恩 但是我把1000改成40,蜂鸣器就会响,但是实际温度只是2o多,但是蜂鸣器还是响了。
回复

使用道具 举报

20

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2013-6-1
在线时间
0 小时
发表于 2015-5-21 18:38:04 | 显示全部楼层
回复【9楼】聂小刀:
---------------------------------
怎么就说不清呢。。。你把湿度那个也改了?
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-5-19
在线时间
0 小时
 楼主| 发表于 2015-5-21 18:42:29 | 显示全部楼层
恩 我把温、湿度都改了,改成40,但是蜂鸣器还是响了这是什么情况。你看我把代码里的1000都改成40,还有什么问题吗?
回复

使用道具 举报

20

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2013-6-1
在线时间
0 小时
发表于 2015-5-21 18:43:23 | 显示全部楼层
回复【11楼】聂小刀:
---------------------------------
大哥 = = 你会C语言的基本语法不?你湿度超40了,蜂鸣器也会叫啊
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-5-19
在线时间
0 小时
 楼主| 发表于 2015-5-21 18:44:53 | 显示全部楼层
对啊湿度超过40也会叫我就不知道是什么情况,所以我就把他改成1000了。
回复

使用道具 举报

20

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2013-6-1
在线时间
0 小时
发表于 2015-5-21 18:46:56 | 显示全部楼层
回复【13楼】聂小刀:
---------------------------------
断点调试会吗?debug,然后单步运行看看
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-5-19
在线时间
0 小时
 楼主| 发表于 2015-5-21 18:47:46 | 显示全部楼层
大哥我QQ是1290021639要不加个好友,指导指导我。
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-5-19
在线时间
0 小时
 楼主| 发表于 2015-5-21 18:49:44 | 显示全部楼层
不会啊 这个
回复

使用道具 举报

16

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2012-3-20
在线时间
9 小时
发表于 2015-5-22 15:16:51 | 显示全部楼层
自己好好看看你的“u8 t=0;u8 temperature; u8 humidity;  ”这几个变量,都是什么类型的?u8是什么?unsigned char啊!它最大是多少?255啊!你1000得用什么类型的变量?好好想想这个C语言入门问题吧。遇到问题别总哭天抢地的,细心分析才是王道。
无往而不胜!
回复

使用道具 举报

3

主题

13

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-5-19
在线时间
0 小时
 楼主| 发表于 2015-5-22 20:24:14 | 显示全部楼层
回复【17楼】ArchiChain:
---------------------------------
大哥 牛逼  除以10就对了  多谢啊
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2021-3-22
在线时间
0 小时
发表于 2021-3-22 15:34:22 | 显示全部楼层
打卡,插个眼
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-29 06:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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