找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 5971|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

STM32系統(tǒng)操作溫濕度模塊并通過(guò)TFTLCD屏顯示源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
DHT11傳感器的數(shù)據(jù)口接在PG11管腳,電源接入開(kāi)發(fā)板上電源上,多大的電壓取決于你的DHT11傳感器模塊供電電壓。


單片機(jī)源程序如下:
  1. #include "system.h"
  2. #include "SysTick.h"
  3. #include "led.h"
  4. #include "usart.h"
  5. #include "tftlcd.h"
  6. #include "dht11.h"
  7. #include "smog.h"
  8. #include "adc.h"
  9. #include "sys.h"
  10. #include "delay.h"



  11. void data_pros()        //數(shù)據(jù)處理函數(shù)
  12. {
  13.         u8 t;
  14.         u32 temp_val=0;
  15.         u8 temp;              
  16.         u8 humi;
  17.         u8 temp_buf[3],humi_buf[3];
  18.         DHT11_Read_Data(&temp,&humi);
  19.         temp_buf[0]=temp/10+0x30;        
  20.         temp_buf[1]=temp%10+0x30;
  21.         temp_buf[2]='\0';
  22.         LCD_ShowString(55,60,tftlcd_data.width,tftlcd_data.height,16,temp_buf);
  23.                
  24.         humi_buf[0]=humi/10+0x30;        
  25.         humi_buf[1]=humi%10+0x30;
  26.         humi_buf[2]='\0';
  27.         LCD_ShowString(55,80,tftlcd_data.width,tftlcd_data.height,16,humi_buf);               




  28.         for(t=0;t<SMOG_READ_TIMES;t++)
  29.         {
  30.                 temp_val+=Get_Adc(SMOG_ADC_CHX);        //讀取ADC值
  31.                 delay_ms(5);
  32.         }
  33.         temp_val/=SMOG_READ_TIMES;//得到平均值
  34.         printf("Smog_ADC_Val:%d\r\n", temp_val);
  35.    // return (u16)temp_val;


  36. }

  37. int main()
  38. {
  39.         u8 i=0;
  40.         u16 adcx1,adcx2;
  41.         float temp;
  42.   delay_init();            //延時(shí)函數(shù)初始化         
  43.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)
  44.         SysTick_Init(72);
  45.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中斷優(yōu)先級(jí)分組 分2組
  46.         LED_Init();
  47.         USART1_Init(9600);
  48.         USART1_Init(115200);                 //串口初始化為115200
  49.         TFTLCD_Init();                        //LCD初始化
  50.         Smog_Init();
  51.         Adc_Init();                                  //ADC初始化

  52.         
  53.         LCD_Clear(BLACK);
  54.         
  55.         FRONT_COLOR=GREEN;
  56.         LCD_ShowString(10,10,tftlcd_data.width,tftlcd_data.height,16,"      STM32F103ZET6");
  57.         LCD_ShowString(10,30,tftlcd_data.width,tftlcd_data.height,16,"DHT11 Test");
  58.         LCD_ShowString(10,60,tftlcd_data.width,tftlcd_data.height,16,"Temp:   C");
  59.         LCD_ShowString(10,80,tftlcd_data.width,tftlcd_data.height,16,"Humi:   %RH");
  60.   
  61.         LCD_DrawLine( 0,  100, 279,  100);
  62.         
  63.         FRONT_COLOR=BLUE;//設(shè)置字體為藍(lán)色
  64.         LCD_ShowString(60,130,200,16,16,"ADC_CH0_VAL:");              
  65.         LCD_ShowString(60,150,200,16,16,"ADC_CH0_VOL:0.000V");
  66.   LCD_ShowString(60,190,200,16,16,"ADC_CH0_VAL:");              
  67.         LCD_ShowString(60,210,200,16,16,"ADC_CH0_VOL:0.000V");
  68.         
  69.         FRONT_COLOR=RED;
  70.         
  71.         while(DHT11_Init())        //檢測(cè)DHT-11是否存在
  72.         {
  73.                 LCD_ShowString(130,30,tftlcd_data.width,tftlcd_data.height,16,"Error   ");        
  74.                 delay_ms(500);               
  75.         }
  76.         LCD_ShowString(130,30,tftlcd_data.width,tftlcd_data.height,16,"Success");
  77.         
  78.         while(1)
  79.         {
  80.                
  81.                 i++;
  82.                 if(i%20==0)
  83.                 {
  84.                         led1=!led1;
  85.                         data_pros();           //讀取一次DHT11數(shù)據(jù)最少要大于100ms
  86.                 }
  87.                
  88.                 delay_ms(10);
  89.                         
  90.         }
  91.         while(1)
  92.         {
  93.                 adcx1=Get_Adc_Average(ADC_Channel_10,10);
  94.                 LCD_ShowxNum(156,130,adcx1,4,16,0);//顯示ADC的值
  95.                 temp=(float)adcx1*(3.3/4096);
  96.                 adcx1=temp;
  97.                 LCD_ShowxNum(156,150,adcx1,1,16,0);//顯示電壓值
  98.                 temp-=adcx1;
  99.                 temp*=1000;
  100.                 LCD_ShowxNum(172,150,temp,3,16,0X80);
  101.         
  102.         adcx2=Get_Adc_Average(ADC_Channel_11,10);
  103.                 LCD_ShowxNum(156,190,adcx2,4,16,0);//顯示ADC的值
  104.                 temp=(float)adcx2*(3.3/4096);
  105.                 adcx2=temp;
  106.                 LCD_ShowxNum(156,210,adcx2,1,16,0);//顯示電壓值
  107.                 temp-=adcx2;
  108.                 temp*=1000;
  109.                 LCD_ShowxNum(172,210,temp,3,16,0X80);
  110.         
  111.                 delay_ms(250);        
  112.   }
  113. }
  114.         
復(fù)制代碼

失敗的程序,求大神幫助:
缺文件,不能編譯.7z (179.73 KB, 下載次數(shù): 90)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩2
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:558088 發(fā)表于 2019-11-22 19:45 | 只看該作者
下載的東西里面很多都空的
回復(fù)

使用道具 舉報(bào)

板凳
ID:523117 發(fā)表于 2020-5-1 12:39 | 只看該作者
缺少很多頭文件和源文件
回復(fù)

使用道具 舉報(bào)

地板
ID:314410 發(fā)表于 2020-5-18 08:47 | 只看該作者
什么都沒(méi)有,空空如也
回復(fù)

使用道具 舉報(bào)

5#
ID:754532 發(fā)表于 2020-5-18 10:07 | 只看該作者
看了該帖子的很多評(píng)論,是不是樓主壓載錯(cuò)數(shù)據(jù)包了
回復(fù)

使用道具 舉報(bào)

6#
ID:516571 發(fā)表于 2020-10-29 10:51 | 只看該作者
yujingnihaoma 發(fā)表于 2020-5-18 10:07
看了該帖子的很多評(píng)論,是不是樓主壓載錯(cuò)數(shù)據(jù)包了

可能是壓縮包錯(cuò)了
回復(fù)

使用道具 舉報(bào)

7#
ID:516571 發(fā)表于 2021-5-9 00:28 | 只看該作者
壓縮文件確實(shí)是,后來(lái)核對(duì)源文件被誤刪了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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