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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7757|回復: 13
打印 上一主題 下一主題
收起左側

基于STM32F411CEU6的sht20溫濕度檢測程序,在OLED屏上顯示

  [復制鏈接]
跳轉到指定樓層
樓主
主控芯片是STM32F411CEU6,附件包含有1.3寸OLED屏和SHT20溫濕度傳感器資料,還有STM32F4XX參考手冊,原理圖只用到了部分元器件。我還用Word寫了個編程步驟用作參考。

  1. //以下是sht20.c文件內容
復制代碼
  1. #include "sht20.h"

  2. float Humidity,Temperature;
  3. TempHumiValue_t temp_humi_Value;
  4.   /*******************************************************************************
  5. * 函數名:SHT20_writeOneByte
  6. * 功能描述:寫一個字節
  7. * 作者:Jahol Fan  
  8. * 參數說明:  寫一個字節的數據
  9. * 返回值說明:返回的是應答信號
  10. * 修改記錄:
  11. *******************************************************************************/
  12. static u8 SHT20_writeOneByte(u8 dataToWrite)
  13. {
  14.     u8 ack;
  15.     IIC_Send_Byte(dataToWrite);
  16.     ack=IIC_Wait_Ack();
  17.     return ack;
  18. }

  19. /*******************************************************************************
  20. * 函數名:SHT20_softReset
  21. * 功能描述:SHT20軟件復位,主函數中調用
  22. * 作者:Jahol Fan  
  23. * 參數說明:  
  24. * 返回值說明:
  25. * 修改記錄:
  26. *******************************************************************************/
  27. void SHT20_softReset(void)
  28. {
  29.     IIC_Start();
  30.     SHT20_writeOneByte(SHT20_adder&0xfe);
  31.     SHT20_writeOneByte(0xfe);
  32.     IIC_Stop();
  33. }

  34. /*******************************************************************************
  35. * 函數名:SHT20_Init
  36. * 功能描述:初始化iic總線
  37. * 作者:Jahol Fan  
  38. * 參數說明:  
  39. * 返回值說明:成功返回測量的結果,失敗返回 1
  40. * 修改記錄:
  41. *******************************************************************************/
  42. void SHT20_Init(void)
  43. {
  44.     IIC_Init();
  45.     SHT20_softReset();
  46. }

  47. /*******************************************************************************
  48. * 函數名:SHT20_readOneByte
  49. * 功能描述:讀一個字節
  50. * 作者:Jahol Fan  
  51. * 參數說明:  
  52. * 返回值說明:
  53. * 修改記錄:
  54. *******************************************************************************/
  55. u8 SHT20_readOneByte(u8 ack)
  56. {
  57.     u8 temp;
  58.     temp=IIC_Read_OneByte();
  59.     iic_put_ack(ack);
  60.     return temp;
  61. }

  62. /*******************************************************************************
  63. * 函數名:SHT20_setResolution
  64. * 功能描述:寫寄存器,設置幀率
  65. * 作者:Jahol Fan  
  66. * 參數說明:  
  67. * 返回值說明:
  68. * 修改記錄:
  69. *******************************************************************************/
  70. static void SHT20_setResolution(void)
  71. {
  72.     IIC_Start();
  73.     if(SHT20_writeOneByte(SHT20_adder&0xfe)==ACK)
  74.     {
  75.         if(SHT20_writeOneByte(0xe6)==ACK)
  76.         {
  77.             if(SHT20_writeOneByte(0x83)==ACK);
  78.         }
  79.     }
  80.     IIC_Stop();         
  81. }

  82. /*******************************************************************************
  83. * 函數名:SHT20_readTemOrHum
  84. * 功能描述:讀取SHT20的溫度或讀取濕度測量值  
  85. * 作者:Jahol Fan  
  86. * 參數說明:  
  87. * 返回值說明:成功返回測量的結果,失敗返回 1
  88. * 修改記錄:
  89. *******************************************************************************/
  90. float SHT20_readTemOrHum(u8 commod)
  91. {
  92.     float temp;
  93.     u8 ack=1;
  94.     u8 MSB,LSB;
  95.     float Humidity,Temperature;
  96.     SHT20_setResolution();
  97.     IIC_Start();
  98.     ack=SHT20_writeOneByte(SHT20_adder&0xfe);
  99.     if(ack == ACK)                      //寫地址,并等待ACK
  100.     {
  101.         if(SHT20_writeOneByte(commod)==ACK)
  102.         {
  103.             do{
  104.                 delay_ms(6);
  105.                 IIC_Start();
  106.             }while(SHT20_writeOneByte(SHT20_adder|0x01)==NACK);

  107.             MSB = SHT20_readOneByte(ACK);//讀Data(MSB),給應答
  108.             LSB = SHT20_readOneByte(ACK);//讀Data(MSB),給應答
  109.             SHT20_readOneByte(NACK);
  110.             IIC_Stop();
  111.             LSB &= 0xfc;
  112.             temp=MSB*256+LSB;
  113.             if(commod==((u8)Hum_Comd))
  114.             {
  115.                 Humidity=(temp*125)/65536-6;
  116.                 return Humidity;
  117.             }
  118.             else if(commod==((u8)Tem_Comd))
  119.             {
  120.                 Temperature=(temp*175.72f)/65536-46.85f;
  121.                 return Temperature;
  122.             }
  123.         }
  124.     }
  125.     return FAIL;
  126. }

  127. /*******************************************************************************
  128. * 函數名:SHT20_readTemAndHum
  129. * 功能描述:讀取SHT20的溫度和濕度測量值  
  130. * 作者:Jahol Fan  
  131. * 參數說明:  
  132. * 返回值說明:成功返回測量的結果,失敗返回 1
  133. * 修改記錄:
  134. *******************************************************************************/
  135. TempHumiValue_t * SHT20_readTemAndHum(void)
  136. {
  137.         temp_humi_Value.humidity = SHT20_readTemOrHum(Hum_Comd);//讀取濕度
  138.         temp_humi_Value.temperature = SHT20_readTemOrHum(Tem_Comd);//讀取溫度
  139.         return &temp_humi_Value;
  140. }
復制代碼

全部資料51hei下載地址:
代碼: STM32F4_OLED_SHT20.7z (450.16 KB, 下載次數: 270)
pdf資料: 溫濕度檢測所有資料.7z (15.97 MB, 下載次數: 228)

評分

參與人數 3黑幣 +60 收起 理由
你好123... + 5 贊一個!
xcAxZxxzxczxczc + 5 贊一個!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏11 分享淘帖 頂5 踩
回復

使用道具 舉報

沙發
ID:527886 發表于 2019-5-6 19:11 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:427851 發表于 2019-5-11 11:13 | 只看該作者
很棒,可以學習
回復

使用道具 舉報

地板
ID:128531 發表于 2019-5-11 17:56 | 只看該作者

很棒
回復

使用道具 舉報

5#
ID:287636 發表于 2019-10-22 17:31 | 只看該作者
謝謝分享
回復

使用道具 舉報

6#
ID:259996 發表于 2019-12-20 11:57 | 只看該作者
頂!!
回復

使用道具 舉報

7#
ID:643127 發表于 2020-2-22 21:39 | 只看該作者
很棒,值得下載
回復

使用道具 舉報

8#
ID:747092 發表于 2020-5-8 17:34 | 只看該作者
怎么沒有測試代碼
回復

使用道具 舉報

9#
ID:413728 發表于 2020-6-8 22:13 | 只看該作者
厲害啊寫寄存器
回復

使用道具 舉報

10#
ID:362795 發表于 2021-4-14 00:10 來自手機 | 只看該作者
溫度讀取的速度比濕度慢很多,不是很靈敏。并且溫度小數都是3或者7的往上升或下降,都沒有其它小數了
回復

使用道具 舉報

11#
ID:978992 發表于 2022-3-18 16:00 | 只看該作者

好資料,51黑有你更精彩!!!
回復

使用道具 舉報

12#
ID:1048011 發表于 2022-10-17 17:22 | 只看該作者
很棒,值得下載
回復

使用道具 舉報

13#
ID:1048397 發表于 2022-10-25 14:13 | 只看該作者
好資料!收藏了慢慢看。
回復

使用道具 舉報

14#
ID:884998 發表于 2023-2-9 00:54 | 只看該作者
我讀溫度的時候,LSB經常就是0xFF,這正常嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99热国产在线播放 | 久久综合久久综合久久 | 日日综合 | 91久久精品一区二区二区 | com.国产| 午夜精品久久久久久久99黑人 | 欧美精品一区二区三 | 欧美激情a∨在线视频播放 成人免费共享视频 | 亚洲视频中文字幕 | 黄网站在线观看 | 国产伦精品一区二区三区照片91 | 国产欧美精品一区二区三区 | 国产精品 亚洲一区 | 久久综合99 | 久久精品色视频 | 综合二区 | 成人3d动漫一区二区三区91 | 国产高清免费在线 | 天堂资源最新在线 | 九一国产精品 | 欧美精品v国产精品v日韩精品 | 成人免费观看视频 | 91佛爷在线观看 | 国产精品免费在线 | 亚洲狠狠爱 | 日日综合| 免费看a | 国产精品96久久久久久 | 欧美激情在线精品一区二区三区 | 亚洲不卡视频 | 亚洲免费视频网站 | 精品久久精品 | 欧美午夜一区 | 国产精品久久久乱弄 | 婷婷五月色综合香五月 | 国产精品揄拍一区二区久久国内亚洲精 | 综合久久av | 麻豆久久久久 | 日韩av手机在线观看 | 岛国av免费在线观看 | 久久国产精品免费 |