91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-07-01
  • 語言: 其他
  • 標簽: AHT10??

資源簡介

AHT10溫濕度驅動程序。STM32正點原子模擬IIC驅動,可以參考邏輯使用,頭文件未上傳,,,,,

資源截圖

代碼片段和文件信息

#include?“aht10.h“
#include?“myiic.h“
#include?“timer.h“
#include?“delay.h“
#include?“usart.h“
u8?READstatus;
static?u16?AHT10DelayCount;
float?TempOldfRH;
u8?AHTstatus;
u32?RHdata;
u32?TEMPdata;
uint64_t?REVdata;
u16?TIMcount;
/*************************
函數名:AHT10Init()
函數說明:AHT10傳感器初始化程序
輸入:無
輸出:
其他:
*************************/
void?AHT10Init()
{
u8?Initcount;
Initcount=0x0;
IIC_Init();
delay_ms(200);
IIC_Start();
IIC_Send_Byte(0x70); //寫
IIC_Wait_Ack();
IIC_Send_Byte(0xe1); //寫系統配置寄存器,初始化命令:0xe1
IIC_Wait_Ack();
IIC_Send_Byte(0x08);
IIC_Wait_Ack();
IIC_Send_Byte(0x00);
IIC_Wait_Ack();
IIC_Stop();
delay_ms(500);
while(?(ReadAHT10_Statue()&0x68)!=0x08?) // 設備閑,NOR模式,已校準,跳出循環
{
AHT10SofeReset();
delay_ms(500);

IIC_Start();
IIC_Send_Byte(0x70); //寫
IIC_Wait_Ack();
IIC_Send_Byte(0xe1); //寫系統配置寄存器,初始化命令:0xe1
IIC_Wait_Ack();
IIC_Send_Byte(0x08);
IIC_Wait_Ack();
IIC_Send_Byte(0x00);
IIC_Wait_Ack();
IIC_Stop();
delay_ms(500);
Initcount++;
if(Initcount>5)?break;
}

AHTstatus=0x0;
REVdata=0x0;
}
/*************************
函數名:u8?ReadAHT10_Statue()
函數說明:AHT10傳感器狀態寄存器讀取
輸入:無
輸出:AHT10狀態寄存器
其他:
*************************/
u8?ReadAHT10_Statue()
{
u8?AHT10Status;
IIC_Start();
IIC_Send_Byte((0x38<<1)+1); ?//讀
IIC_Wait_Ack();
AHT10Status=IIC_Read_Byte(0);?
IIC_Stop();
return?AHT10Status;
}

/*************************
函數名:AHT10_Star_measure()
函數說明:AHT10傳感器啟動測量命令
輸入:無
輸出:
其他:
*************************/
u8?AHT10_Star_measure()
{
IIC_Start();
IIC_Send_Byte(0x70); //寫
IIC_Wait_Ack();
// if(IIC_Wait_Ack()==0x01)?{IIC_Stop(); return?0; }
IIC_Send_Byte(0xac);?//發觸發指令
IIC_Wait_Ack();
// if(IIC_Wait_Ack()==0x01)?{IIC_Stop(); return?0; }
IIC_Send_Byte(0x33);??//以下是發送觸發測量的固定指令0x33
IIC_Wait_Ack();
// if(IIC_Wait_Ack()==0x01)?{IIC_Stop(); return?0; } //發送完0X33后,傳感器無應答?????
IIC_Send_Byte(0x00);
IIC_Wait_Ack();
IIC_Stop();
return?1;

}
/*************************
函數名:Temp_RH_Read()
函數說明:接收AHT10傳感器溫濕度數據
輸入:
輸出:傳感器數據
其他:
*************************/
void?Temp_RH_Read()
{
IIC_Start();
IIC_Send_Byte(0x71); //0x70地址+1讀
if(IIC_Wait_Ack()==0x01)?{IIC_Stop(); return?; }
AHTstatus=IIC_Read_Byte(1); //讀狀態寄存器
//---------receive?5byte?data
REVdata=0x0;
REVdata|=IIC_Read_Byte(1);? //1
REVdata<<=8;
REVdata|=IIC_Read_Byte(1); //2
REVdata<<=8;
REVdata|=IIC_Read_Byte(1); //3
REVdata<<=8;
REVdata|=IIC_Read_Byte(1); //4
REVdata<<=8;
REVdata|=IIC_Read_Byte(0); //5
IIC_Stop();
RHdata=REVdata>>20;
TEMPdata=REVdata&0xfffff; //Bit0~Bit20是溫度數據
}

/*************************
函數名:ADT10_Calulate()
函數說明:計算AHT10傳感器數據,得到溫度與濕度
輸入:
返回:溫度值,單位攝氏度
其他:
*************************/
float?ADT10_Calulate()
{
u8?u8cnt;
float?ftemp;
u16?Now_TIMcount;

if(READstatus==0x0)?
{
while((ReadAHT10_Statue()&0x80)==0x80)?
{
AHT10Init(); //出現錯誤,重啟AHT

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4839??2019-09-23?13:26??aht10.c

?????文件????????450??2019-09-18?16:37??aht10.h

-----------?---------??----------?-----??----

?????????????????5289????????????????????2


評論

共有 條評論