標(biāo)題: stm32使用dht11傳感器C語言程序while內(nèi)只能執(zhí)行一次讀取? [打印本頁]

作者: 北埼玉    時間: 2021-5-2 21:46
標(biāo)題: stm32使用dht11傳感器C語言程序while內(nèi)只能執(zhí)行一次讀取?
弄了野火的c8t6核心板,使用了他們的dht11程序,同樣的程序在我自己的工程里加上了希望實現(xiàn)串口顯示溫濕度的功能,但現(xiàn)在只能執(zhí)行一次讀取溫濕度如圖:
去掉delay的時候:

該怎么找到原因在哪里呢,改一天了,沒有頭緒。
附上代碼:
  1. int main(void)
  2. {
  3.         DHT11_Data_TypeDef DHT11_Data;
  4.         
  5.         
  6.         /* 初始化系統(tǒng)定時器 */
  7.         SysTick_Init();

  8.         USART_Config();//初始化串口1
  9.         printf("\r\n***dht11 溫濕度傳感器***\r\n");

  10.         /*初始化DTT11的引腳*/
  11.         DHT11_Init ();
  12.         
  13.         while(1)
  14.         {        
  15.                         /*調(diào)用DHT11_Read_TempAndHumidity讀取溫濕度,若成功則輸出該信息*/
  16.                         if( DHT11_Read_TempAndHumidity ( & DHT11_Data ) == SUCCESS)
  17.                         {
  18.                                 printf("\r\n讀取DHT11成功!\r\n\r\n濕度為%d.%d %RH ,溫度為 %d.%d℃ \r\n",\
  19.                                 DHT11_Data.humi_int,DHT11_Data.humi_deci,DHT11_Data.temp_int,DHT11_Data.temp_deci);
  20.                         }                        
  21.                         else
  22.                         {
  23.                                 printf("Read DHT11 ERROR!\r\n");
  24.                         }
  25.                         Delay_ms(2000);
  26.                         printf("\r\n測試測試");


  27.         }

  28.         
  29. }
復(fù)制代碼
最底下一行輸出測試的是我在調(diào)試程序的時候外加的,不論有沒有去掉delay “測試測試”都是不會輸出的

有大佬可以提供一個思路嗎附上兩個程序壓縮包,銘感五內(nèi)。

2.png (25.59 KB, 下載次數(shù): 72)

去掉delay時

去掉delay時

1.png (4.24 KB, 下載次數(shù): 66)

有delay時

有delay時

代碼.7z

833.75 KB, 下載次數(shù): 6

包含我的程序以及參考野火的串口顯示溫度程序






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1