标题: stm32使用dht11传感器C语言程序while内只能执行一次读取? [打印本页]

作者: 北埼玉    时间: 2021-5-2 21:46
标题: stm32使用dht11传感器C语言程序while内只能执行一次读取?
弄了野火的c8t6核心板,使用了他们的dht11程序,同样的程序在我自己的工程里加上了希望实现串口显示温湿度的功能,但现在只能执行一次读取温湿度如图:
去掉delay的时候:

该怎么找到原因在哪里呢,改一天了,没有头绪。
附上代码:
  1. int main(void)
  2. {
  3.         DHT11_Data_TypeDef DHT11_Data;
  4.         
  5.         
  6.         /* 初始化系统定时器 */
  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.                         /*调用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. }
复制代码
最底下一行输出测试的是我在调试程序的时候外加的,不论有没有去掉delay “测试测试”都是不会输出的

有大佬可以提供一个思路吗附上两个程序压缩包,铭感五内。

2.png (25.59 KB, 下载次数: 72)

去掉delay时

去掉delay时

1.png (4.24 KB, 下载次数: 66)

有delay时

有delay时

代码.7z

833.75 KB, 下载次数: 6

包含我的程序以及参考野火的串口显示温度程序






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1