久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11559|回復: 24
收起左側

STM32+SHT30(DS18B20)+0.96寸OLED(IIC)的溫度濕度顯示程序

  [復制鏈接]
ID:393699 發表于 2018-12-24 21:42 | 顯示全部樓層 |閱讀模式
自己寫的程序,顯示SHT30溫濕度模塊的溫濕度。
既有OLED(IIC接口)屏幕的溫濕度顯示,也有串口數據輸出。
為了作對比,我順便把DS18B20的溫度顯示也寫進去了,然后改下注釋也可輸出DS18B20溫度數據。
在此感謝51hei論壇的SHT30例程,把原來有錯誤的地方改了,寫了個完整的例程。
代碼沒怎么整理,不過加了必要的注釋,發出來分享下成果

制作出來的實物圖如下:
photo1.jpg

photo2.jpg

單片機源程序如下:
  1. //////////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  作    者   : Fish
  4. //  生成日期   : 2018-12-14
  5. //  最近修改   :
  6. //  功能描述   : 0.96寸OLED顯示SHD30溫濕度程序。
  7. //              顯示SHT30傳感器溫濕度數據,串口1也可以顯示。(USART1 PA9 PA10)
  8. //  單片機:STM32F103ZET6         晶振:72M
  9. //  說明: 串口發送溫濕度數據,我把DS18B20的程序也寫好了,
  10. //        簡單改改程序即可使用,默認使用SHD30傳感器顯示數據
  11. //              ----------------------------------------------------------------
  12. //              OLED屏
  13. //              GND   電源地
  14. //              VCC   接5V或3.3v電源
  15. //              SCL   接PB13(SCL)
  16. //              SDA   接PB15(SDA)
  17. //              RES   接PB11 如果是用4針iic接口這個腳可以不接

  18. //              SHD30溫濕度傳感器
  19. //              GND   電源地
  20. //              VCC   接5V或3.3v電源
  21. //              SCL   接PB6(SCL)
  22. //              SDA   接PB7(SDA)

  23. //              DS18B20傳感器
  24. //              GND   電源地
  25. //              VCC   接5V或3.3v電源
  26. //              DAT   接PB6(SCL)
  27. //              ----------------------------------------------------------------
  28. //   注意:部分源碼參考網上及論壇代碼,僅供學習交流使用         2018-12-14

  29. //////////////////////////////////////////////////////////////////////////////////

  30. #include "sys.h"
  31. #include "oled.h"
  32. #include "usart.h"
  33. #include "bmp.h"
  34. #include "sht30_dis.h"
  35. #include "bsp_SysTick.h"
  36. #include "bsp_ds18b20.h"

  37. extern float TemValue;
  38. extern float RhValue;
  39. char Tempbuf[100],RHbuf[100];

  40. int main(void)
  41.   {        
  42.                 uint8_t uc, ucDs18b20Id [8];               
  43.                 u8 t;
  44.                 char Temp[50];
  45.                 SysTick_Init();
  46.     uart_init(115200);         
  47.                 NVIC_Configuration();          //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級         LED_Init();                             //LED端口初始化
  48.                 Delay_ms(200);
  49.                 OLED_Init();                        //初始化OLED  
  50.                 OLED_Clear();
  51.     Delay_ms(200);

  52.                 OLED_DrawBMP(0,0,128,8,BMP1);  //圖片顯示(圖片顯示慎用,生成的字表較大,會占用較多空間,FLASH空間8K以下慎用)
  53.                 Delay_ms(3000);
  54.           OLED_Clear();
  55.     OLED_DrawBMP(0,0,128,8,BMP2);                        
  56.                 t=' ';
  57.                
  58.   printf("\r\n this is a SHT30 test demo \r\n");
  59.         
  60. //        while( DS18B20_Init() )        
  61. //                printf("\r\n no ds18b20 exit \r\n");
  62. //        
  63. //        printf("\r\n ds18b20 exit \r\n");
  64. //        
  65. //        
  66. //        DS18B20_ReadId ( ucDs18b20Id  );           
  67. //        
  68. //        printf("\r\nDS18B20 xuliehao: 0x");

  69. //        for ( uc = 0; uc < 8; uc ++ )            
  70. //         printf ( "%.2x", ucDs18b20Id [ uc ] );
  71.         Delay_ms(5000);
  72.         OLED_Clear();
  73.         while(1)
  74.         {               
  75.                   //溫度顯示電子時鐘
  76.             OLED_ShowCHinese(0,0,7);
  77.                   OLED_ShowCHinese(16,0,8);
  78.                   OLED_ShowCHinese(32,0,9);
  79.                   OLED_ShowCHinese(48,0,10);
  80.                   OLED_ShowCHinese(64,0,11);
  81.                   OLED_ShowCHinese(80,0,12);
  82.                   OLED_ShowCHinese(96,0,13);
  83.                   OLED_ShowCHinese(112,0,14);
  84.                
  85.                 printf ( "\r\nDS18b20 temp: %.2f'C\r\n", DS18B20_GetTemp_MatchRom ( ucDs18b20Id ) );                //DS18B20溫度顯示        
  86. //                sprintf(Temp,"Temp:%.2f'C\r\n",DS18B20_GetTemp_MatchRom ( ucDs18b20Id ));
  87. //                OLED_ShowString(6,3,Temp,16);
  88.                 SHT_GetValue();
  89.                 printf ("%s\r\n",Tempbuf);
  90.                 printf ("%s\r\n",RHbuf);
  91.                 OLED_ShowString(6,3,Tempbuf,16);
  92.                 OLED_ShowString(6,6,RHbuf,16);

  93.                 Delay_ms(500);

  94.         }         
  95.         
  96. }
  97.         
復制代碼
0.png

所有資料51hei提供下載:
Keil代碼0.96OLED_STM32F103ZE_IIC.7z (259.54 KB, 下載次數: 644)

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:474232 發表于 2019-3-7 11:00 | 顯示全部樓層
很好,值得學習與探討!
回復

使用道具 舉報

ID:499463 發表于 2019-4-6 20:12 | 顯示全部樓層
多謝分享
回復

使用道具 舉報

ID:507046 發表于 2019-4-8 15:32 | 顯示全部樓層
很不錯
回復

使用道具 舉報

ID:507046 發表于 2019-4-8 15:32 | 顯示全部樓層

多謝分享
回復

使用道具 舉報

ID:508534 發表于 2019-4-10 12:07 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:395480 發表于 2019-4-14 00:42 來自手機 | 顯示全部樓層
很好 東西不錯
回復

使用道具 舉報

ID:89772 發表于 2019-5-2 09:03 | 顯示全部樓層
需要看下。。。。
回復

使用道具 舉報

ID:423234 發表于 2019-5-3 23:08 | 顯示全部樓層
多謝分享
回復

使用道具 舉報

ID:125831 發表于 2019-5-6 14:59 | 顯示全部樓層
學習學習,謝謝樓主
回復

使用道具 舉報

ID:337997 發表于 2019-10-11 15:54 | 顯示全部樓層
我用這個程序出不來第二張圖是為什么?一直卡在第一張圖
回復

使用道具 舉報

ID:690275 發表于 2020-2-5 16:29 | 顯示全部樓層
好貼,感謝分享,想拿來測試一下是否可以使用
回復

使用道具 舉報

ID:118286 發表于 2020-4-8 16:14 | 顯示全部樓層
Keil uVision4打不開
回復

使用道具 舉報

ID:729970 發表于 2020-4-17 01:43 | 顯示全部樓層
謝謝樓主分享 受教了
回復

使用道具 舉報

ID:208271 發表于 2020-4-26 22:00 | 顯示全部樓層
很好的程序,直接運行完全不用改。
感謝樓主!
回復

使用道具 舉報

ID:473907 發表于 2020-4-27 16:19 | 顯示全部樓層
不錯的資料,有空試試
回復

使用道具 舉報

ID:368810 發表于 2020-5-14 10:44 | 顯示全部樓層
wifingtta 發表于 2020-4-26 22:00
很好的程序,直接運行完全不用改。
感謝樓主!

里面只是程序嗎,帶仿真嗎?
回復

使用道具 舉報

ID:483223 發表于 2020-5-15 09:28 | 顯示全部樓層
正在學習,謝謝分享
回復

使用道具 舉報

ID:483223 發表于 2020-5-15 09:35 | 顯示全部樓層
很好的軟件設計,謝謝分享!
回復

使用道具 舉報

ID:483223 發表于 2020-5-15 14:51 | 顯示全部樓層
大神,代碼中 sht30_dis_init( ) 初始化函數在哪調用的?是否工程不完整?我移植到STM32F407上讀不到數據!
回復

使用道具 舉報

ID:784999 發表于 2020-6-20 15:53 | 顯示全部樓層
只有DS18B20也可以吧
回復

使用道具 舉報

ID:797023 發表于 2020-7-4 11:05 | 顯示全部樓層
不錯,代碼有點亂
回復

使用道具 舉報

ID:1051855 發表于 2022-11-15 17:39 | 顯示全部樓層
樓主為啥我這點三個畫面沒有顯示數據,你的最終數據保存在哪里呀
回復

使用道具 舉報

ID:1053578 發表于 2022-11-23 17:33 | 顯示全部樓層
很好,值得學習與探討!
回復

使用道具 舉報

ID:1068301 發表于 2023-4-10 21:09 | 顯示全部樓層
為什么F10x.h編譯缺少“}”
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美精品一区二区 | 久久久久亚洲精品中文字幕 | 黄网站涩免费蜜桃网站 | 欧美精品在线播放 | 亚洲欧洲成人 | 亚洲一级淫片 | 全免费a级毛片免费看视频免 | 欧美成人第一页 | 538在线精品| 成人久久18免费网站图片 | av网站观看 | 国产黄色电影 | 91精品国产91久久久 | 最新一级毛片 | 97久久精品 | 日韩区| 国产精品视频久久久 | 亚洲精品一区中文字幕乱码 | 日韩插插 | 国产精品国产三级国产aⅴ原创 | 精品国产一区二区三区性色av | 久久久观看 | 国产亚洲精品久久19p | 欧美精品综合在线 | 国产精品久久久久久久久久久久冷 | 99久久99久久精品国产片果冰 | 超碰成人免费 | 中文字幕 国产 | 欧美久久国产 | 国产成人精品视频 | 国产区在线看 | 色又黄又爽网站www久久 | 九色在线观看 | 精品欧美一区免费观看α√ | 我爱操| 在线看国产 | av大片 | 337p日本欧洲亚洲大胆鲁鲁 | 国产一区二区在线播放 | 91精品久久久久久久久久入口 | 超碰精品在线 |