DHT11的温湿度采集程序为什么验证错误
我的程序库文件是DHT.h,所以把原来的dht11.h改成DHT.h,和下面的程序改了一点原来的程序是这样的
#include <dht11.h>
#define Temperature_COMMAND0x10 //采集命令字
#define Humidity_COMMAND 0x11 //采集命令字
/*-----( Declare objects )-----*/
dht11 DHT11;
/*-----( Declare Constants, Pin Numbers )-----*/
#define DHT11PIN 2
byte comdata={0}; //定义数组数据,存放串口接收数据
void receive_data(void); //接受串口数据
void test_do_data(void); //测试串口数据是否正确,并更新数据
void setup()
{
Serial.begin(9600);
}
void loop()
{
while (Serial.available() > 0) //不断检测串口是否有数据
{
receive_data(); //接受串口数据
test_do_data(); //测试数据是否正确并更新标志位
}
}
void receive_data(void)
{
int i ;
for(i=0;i<3;i++)
{
comdata =Serial.read();
//延时一会,让串口缓存准备好下一个字节,不延时可能会导致数据丢失,
delay(2);
}
}
void test_do_data(void)
{
if(comdata == 0x55) //0x55和0xAA均为判断是否为有效命令
{
if(comdata == 0xAA)
{
switch (comdata)
{
case Temperature_COMMAND:
DHT11.read(DHT11PIN);
Serial.println((float)DHT11.temperature, 2);
break;
case Humidity_COMMAND:
DHT11.read(DHT11PIN);
Serial.println((float)DHT11.humidity, 2);
break;
}
}
}
}
这是我改过之后,但是出现了验证问题
求大神解救
#include <DHT.h>
#define Temperature_COMMAND0x10 //采集命令字
#define Humidity_COMMAND 0x11 //采集命令字
/*-----( Declare objects )-----*/
DHT DHT11;
/*-----( Declare Constants, Pin Numbers )-----*/
#define DHT11PIN 2
byte comdata={0}; //定义数组数据,存放串口接收数据
void receive_data(void); //接受串口数据
void test_do_data(void); //测试串口数据是否正确,并更新数据
void setup()
{
Serial.begin(9600);
}
void loop()
{
while (Serial.available() > 0) //不断检测串口是否有数据
{
receive_data(); //接受串口数据
test_do_data(); //测试数据是否正确并更新标志位
}
}
void receive_data(void)
{
int i ;
for(i=0;i<3;i++)
{
comdata =Serial.read();
//延时一会,让串口缓存准备好下一个字节,不延时可能会导致数据丢失,
delay(2);
}
}
void test_do_data(void)
{
if(comdata == 0x55) //0x55和0xAA均为判断是否为有效命令
{
if(comdata == 0xAA)
{
switch (comdata)
{
case Temperature_COMMAND:
DHT11.read(DHT11PIN);
Serial.println((float)DHT11.temperature, 2);
break;
case Humidity_COMMAND:
DHT11.read(DHT11PIN);
Serial.println((float)DHT11.humidity, 2);
break;
}
}
}
}
请问那里没有编译通过,我这里没有库文件,能否发一份 你好,我是用了你的代码进行测试,目前没有发现问题,上下两组代码均编译通过,不知你遇到了什么问题 我是从官网上下载的dht11文件,然后手动将里面所有的(包括文件名)都改成了DHT没有发现问题 zjz5717 发表于 2016-4-20 17:59 static/image/common/back.gif
我是从官网上下载的dht11文件,然后手动将里面所有的(包括文件名)都改成了DHT没有发现问题
请问可以给我那个官网网址吗,我重新下载一个库文件我看行不行
zhushimao 发表于 2016-4-20 20:19 static/image/common/back.gif
请问可以给我那个官网网址吗,我重新下载一个库文件我看行不行
Arduino:1.6.8 (Windows 7), 开发板:"Arduino/Genuino Uno"
C:\Users\Zhenyu\Desktop\5.4娓╂箍搴﹂噰闆哱Arduino\Arduino.ino: In function 'void test_do_data()':
Arduino:49: error: 'class DHT' has no member named 'read'
In file included from C:\Users\Zhenyu\Desktop\5.4娓╂箍搴﹂噰闆哱Arduino\Arduino.ino:1:0:
C:\Program Files\Arduino\libraries\arduino-DHT-master/DHT.h:85:9: error: 'float DHT::temperature' is protected
float temperature;
^
Arduino:50: error: within this context
Arduino:53: error: 'class DHT' has no member named 'read'
In file included from C:\Users\Zhenyu\Desktop\5.4娓╂箍搴﹂噰闆哱Arduino\Arduino.ino:1:0:
C:\Program Files\Arduino\libraries\arduino-DHT-master/DHT.h:86:9: error: 'float DHT::humidity' is protected
float humidity;
^
Arduino:54: error: within this context
exit status 1
'class DHT' has no member named 'read'
在文件 -> 首选项开启
“编译过程中显示详细输出”选项
这份报告会包含更多信息。
不知道怎么回事,总是编译错误 zhushimao 发表于 2016-4-20 21:31 static/image/common/back.gif
Arduino:1.6.8 (Windows 7), 开发板:"Arduino/Genuino Uno"
C:\Users\Zhenyu\Desktop\5.4娓╂箍搴﹂噰 ...
根据你提供的错误信息呢,初步判断是因为你的库文件编译不通过造成的,建议你考虑换一个库文件 本帖最后由 zjz5717 于 2016-4-21 16:48 编辑
给你两个库你看着用吧
页:
[1]