基本信息
源码名称:STM32+AM2302驱动代码(温湿度传感器)
源码大小:2.18M
文件格式:.rar
开发语言:C/C++
更新时间:2018-05-26
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
温湿度传感器AM2302驱动
u8 AM2302_Read_Data_u8(u8 *temp_h,u8 *temp_l,u8 *humi_h,u8 *humi_l)
{
u8 buf[5];
u8 i;
AM2302_Rst();
if(AM2302_Check()==0)
{
for(i=0;i<5;i )//读取40位数据
{
buf[i]=AM2302_Read_Byte();
}
if((buf[0] buf[1] buf[2] buf[3])==buf[4])
{
*humi_h=buf[0];
*humi_l=buf[1];
*temp_h=buf[2];
*temp_l=buf[3];
}
}else return 1;
return 0;
}
//从AM2302读取一次数据
//temp:温度值(范围:-20~80°)
//humi:湿度值(范围:0%~100%)
//返回值:0,正常;1,读取失败
u16 AM2302_Read_Data(float *temp,float *humi)
{
u8 buf[5];
u8 i;
AM2302_Rst();
if(AM2302_Check()==0)
{
for(i=0;i<5;i )//读取40位数据
{
buf[i]=AM2302_Read_Byte();
}
if((buf[0] buf[1] buf[2] buf[3])==buf[4])
{
*humi=buf[0]<<8|buf[1];//将高8位和低8位数据合并成16位,再转换成十进制数据
*temp=buf[2]<<8|buf[3];//将高8位和低8位数据合并成16位,再转换成十进制数据
}
}else return 1;
return 0;
}
温湿度传感器AM2302驱动
u8 AM2302_Read_Data_u8(u8 *temp_h,u8 *temp_l,u8 *humi_h,u8 *humi_l)
{
u8 buf[5];
u8 i;
AM2302_Rst();
if(AM2302_Check()==0)
{
for(i=0;i<5;i )//读取40位数据
{
buf[i]=AM2302_Read_Byte();
}
if((buf[0] buf[1] buf[2] buf[3])==buf[4])
{
*humi_h=buf[0];
*humi_l=buf[1];
*temp_h=buf[2];
*temp_l=buf[3];
}
}else return 1;
return 0;
}
//从AM2302读取一次数据
//temp:温度值(范围:-20~80°)
//humi:湿度值(范围:0%~100%)
//返回值:0,正常;1,读取失败
u16 AM2302_Read_Data(float *temp,float *humi)
{
u8 buf[5];
u8 i;
AM2302_Rst();
if(AM2302_Check()==0)
{
for(i=0;i<5;i )//读取40位数据
{
buf[i]=AM2302_Read_Byte();
}
if((buf[0] buf[1] buf[2] buf[3])==buf[4])
{
*humi=buf[0]<<8|buf[1];//将高8位和低8位数据合并成16位,再转换成十进制数据
*temp=buf[2]<<8|buf[3];//将高8位和低8位数据合并成16位,再转换成十进制数据
}
}else return 1;
return 0;
}