|
分享一個DHT11的溫濕度測量程序和數(shù)字溫濕度傳感器DHT11技術(shù)手冊.pdf
單片機源程序如下:
- #include<stm32f10x.h>
- #include<SysTick.h>
- #include<GPIO.h>
- #include<DHT11.h>
- /*復(fù)位DHT11*/
- void Init_Dht11()
- {
- /*設(shè)置GPIO為輸出口*/
- Gpio_Config_Mode_Out();
- /*拉低總線*/
- DHT11_DQ_OUT_Low;
- /*延遲18US*/
- Delay_us(18);
- /*復(fù)位總線*/
- DHT11_DQ_OUT_High;
- /*設(shè)置GPIO為輸入口*/
- Gpio_Config_Mode_In();
- /*等待復(fù)位信號*/
- while(DHT11_DQ_IN);
- /*等待高電平*/
- while(!DHT11_DQ_IN);
- /*等待低電平 準(zhǔn)備輸出*/
- while(DHT11_DQ_IN);
- }
- /*讀一個字節(jié)*/
- u8 Read_One_Byte()
- {
- u8 i=0;
- u8 a=0x01;
- u8 b=0;
- for(i=0;i<8;i++)
- {
- /*設(shè)置GPIO為輸入口*/
- Gpio_Config_Mode_In();
- /*等待高電平*/
- while(!DHT11_DQ_IN);
- /*延遲30us*/
- Delay_us(30);
- if(DHT11_DQ_IN==1)
- {
- b=b<<1;
- b=b|a;
- /*等待低電平*/
- while(DHT11_DQ_IN);
- }
- else
- {
- b=b<<1;
- }
- }
- return(b);
- }
- u16 Read()
- {
- u8 a=0;
- u8 b=0;
- u8 c=0;
- u16 d=0;
- /*復(fù)位DHT11*/
- Init_Dht11();
- /*讀出整數(shù)部分*/
- a=Read_One_Byte();
- /*讀出小數(shù)部分*/
- b=Read_One_Byte();
- /*讀出整數(shù)部分*/
- c=Read_One_Byte();
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
DHT11驅(qū)動.rar
(2.17 MB, 下載次數(shù): 22)
2018-2-8 16:36 上傳
點擊文件名下載附件
DHT11側(cè)溫濕度程序
|
|