tinyos学习笔记11--DHT11驱动及测试程序

时间:2022-12-18 05:48:19

测试平台:CC2538cb(群主师父的杰作)

1.测试效果图

      忙活了几天终于把这款DHT11温湿度的传感器的驱动及测试程序搞定了,最后一个步骤犯了一个相当可笑的错误,把测量到的温度的数据当成了湿度的数据,把湿度的数据当成温度的数据。看结果,越看不对劲,误差怎么可能这么大了?温度是41C,湿度是14%RH。o(∩_∩)o 哈哈,搞了半天把温湿度数据的位置看反了...

tinyos学习笔记11--DHT11驱动及测试程序


2.DHT11模块温湿度模块的使用

      关于DHT11模块温湿度模块的使用,有兴趣的可以看我找到的网上的一篇文档。

      http://blog.csdn.net/ourrtems/article/details/50848894


3.驱动程序(需要完整驱动及测试程序的留下邮箱,就算给捧个场咯tinyos学习笔记11--DHT11驱动及测试程序

<span style="font-size:18px;">/*******************************************************************************
从DHT11读取一个字节
*******************************************************************************/
void Read8Bit(void)
{
static uint16_t OverTimeCnt = 0;
uint8_t i,tmpBit;
uint8_t delay;

for(i=0;i<8;i++)
{
//OverTimeCnt = 2;
//while((Get_dht11_DQ() == 0)&&OverTimeCnt++);
while(!Get_dht11_DQ());

delay = 110;
while(--delay); //主机拉低至少18ms
if(Get_dht11_DQ() == 0)
tmpBit = 0;
else
tmpBit = 1;

//OverTimeCnt = 2;
//while((Get_dht11_DQ() == 1)&&OverTimeCnt++); //等待读到的“1”或“0”的高电平结束
while(Get_dht11_DQ());


if(OverTimeCnt==1) //超时则跳出for循环
break;

tmp8BitValue<<=1;
tmp8BitValue|=tmpBit; //0
}
}

/*******************************************************************************
读取DHT11温度、湿度值
*******************************************************************************/
void ReadValue(uint8_t *sv)
{
static uint16_t OverTimeCnt = 0;
uint16_t delay;

ReSet_dht11_DQ();
delay = 50000000;
while(--delay); //主机拉低至少18ms

Set_dht11_DQ();
delay = 100;
while(--delay); //总线由上拉电阻拉高 主机延时20us-40us

if(Get_dht11_DQ() == 0)
{
//OverTimeCnt = 2;
//while((Get_dht11_DQ() == 0)&&OverTimeCnt++);

//OverTimeCnt = 2;
//while((Get_dht11_DQ() == 1)&&OverTimeCnt++);

while(!Get_dht11_DQ());
while(Get_dht11_DQ());

//数据接收状态
Read8Bit();
sv[0] = tmp8BitValue;

Read8Bit();
sv[1]=tmp8BitValue;

Read8Bit();
sv[2]=tmp8BitValue;

Read8Bit();
sv[3]=tmp8BitValue;

Read8Bit();
CheckSum = tmp8BitValue;

if(CheckSum == sv[0]+sv[1]+sv[2]+sv[3])
{
CheckSum = 0xff;
}
}
else
{
sv[0] = 0xaa;
sv[2] = 0x55;
}
}</span>

By:霜月孤鸟

2016.3.10