找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3287|回復(fù): 2
收起左側(cè)

溫度傳感器SHT1x和SHT2x的STM32源代碼

[復(fù)制鏈接]
ID:387922 發(fā)表于 2018-8-27 11:18 | 顯示全部樓層 |閱讀模式
溫度傳感器SHT1x和SHT2x的iic通信代碼,這都是從網(wǎng)上找的代碼,sht1x親測可用,sht2x時序也是準(zhǔn)確的。后續(xù)將呈現(xiàn)sht7x代碼

0.png

單片機(jī)源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "lcd.h"
  6. #include "SHT10.h"

  7. SHT1x sht1x; //定義傳感器結(jié)構(gòu)體

  8. int main(void)
  9. {

  10.     u8 t=0,error=0,checksum,value=0;
  11.     volatile u8 T_Display=0,H_Display=0;
  12.     u16 T_Value=0,H_Value=0;

  13.     delay_init(); //延時函數(shù)初始化
  14.         uart_init(9600); //USART1初始化
  15.         LED_Init(); //LED初始化
  16.     LCD_Init();   
  17.     SHT1x_Init();
  18.    
  19.     POINT_COLOR=RED;//設(shè)置字體為紅色
  20.         LCD_ShowString(60,120,200,16,16,"SHT1X Test");

  21.         POINT_COLOR=BLUE;//設(shè)置字體為藍(lán)色
  22.         LCD_ShowString(60,150,200,16,16,"Temp:   .   C");       
  23.         LCD_ShowString(60,170,200,16,16,"Humi:   .   %RH");       
  24.    
  25.     if(!SHT1X_read_statusreg(&value))
  26.     {
  27.         if(value&0x07)
  28.         {
  29.             for(value=5;value!=0;value--)
  30.             {
  31.                 if(!SHT1X_write_statusreg(0))break;
  32.                 else SHT1X_softreset();
  33.             }
  34.         }
  35.     }
  36.         while(1)
  37.         {  
  38. //------------------------讀取SHT1X傳感器數(shù)據(jù)--------------------------------------
  39.         error+=SHT1x_Measure( &T_Value,&checksum,0);  //measure temperature
  40.         error+=SHT1x_Measure( &H_Value,&checksum,1);  //measure humidity
  41.                        
  42.         if(error!=0)SHT1x_Reset(); //通訊故障,復(fù)位傳感器
  43.         else
  44.         {
  45.             sht1x.T_Result = T_Value;
  46.             sht1x.H_Result = H_Value;
  47.             SHT1X_Caculation1((float*)&sht1x.T_Result, (float*)&sht1x.H_Result );
  48.            
  49.             sht1x.Temperature=sht1x.T_Result;
  50.             sht1x.Humidity=(u16)sht1x.H_Result;
  51.             sht1x.DEW=SHT1X_dewpoint1(sht1x.T_Result, sht1x.H_Result);
  52.         }
  53. //------------------------------------------------------------------------------
  54.         

  55. //顯示函數(shù)處理         
  56. //-------------------溫度顯示-------------------------------------------------
  57.       
  58.         if(sht1x.Temperature<0)
  59.         {
  60.             LCD_ShowChar(60+40,150,'-',16,0);                        //顯示負(fù)號
  61.             sht1x.Temperature=-sht1x.Temperature;    //轉(zhuǎn)為正數(shù)
  62.         }
  63.         else LCD_ShowChar(60+40,150,' ',16,0);  //去掉負(fù)號
  64.         
  65.         LCD_ShowNum(60+40+8,150,sht1x.Temperature/100,2,16);        //顯示正數(shù)部分       
  66.         if((sht1x.Temperature%100)>=0 && (sht1x.Temperature%100)<=9 )
  67.         {
  68.             LCD_ShowNum(60+40+32,150,sht1x.Temperature%100,1,16);        //顯示小數(shù)部分        
  69.         }
  70.         else
  71.         {
  72.             LCD_ShowNum(60+40+32,150,sht1x.Temperature%100,2,16);        //顯示小數(shù)部分        
  73.         }
  74.         
  75. //-------------------------濕度顯示-----------------------------------------------
  76.         LCD_ShowNum(60+40+8,170,sht1x.Humidity/100,2,16);        //顯示正數(shù)部分            
  77.         if((sht1x.Humidity%100)>=0 && (sht1x.Humidity%100)<=9 )
  78.         {
  79.             LCD_ShowNum(60+40+32,170,sht1x.Humidity%100,1,16);        //顯示小數(shù)部分        
  80.         }
  81.         else
  82.         {
  83.             LCD_ShowNum(60+40+32,170,sht1x.Humidity%100,2,16);        //顯示小數(shù)部分        
  84.         }
  85. //--------------------------------------------------------------------------------        
  86.         t++;
  87.         if(t==20)
  88.         {
  89.                 t=0;
  90.                         LED0=!LED0;
  91.         }
  92.         }
  93. }
復(fù)制代碼

所有資料51hei提供下載:
溫度傳感器程序.rar (1.12 MB, 下載次數(shù): 54)


回復(fù)

使用道具 舉報

ID:62514 發(fā)表于 2020-3-21 09:06 | 顯示全部樓層
剛看到,希望可以使用。謝謝樓主。
回復(fù)

使用道具 舉報

ID:62514 發(fā)表于 2020-3-21 09:48 | 顯示全部樓層
怎么下載一次,再下載,還扣分呢?呵呵!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表