小学生
最后登录1970-1-1
在线时间 小时
注册时间2021-5-4
|
本帖最后由 北埼玉 于 2021-5-5 00:18 编辑
直接使用MINI开发板的示例程序可以成功读取,但是复制到我自己建立的工程下后,while(1)里的内容,即读取温湿度功能,只能执行一次。注释掉Delay_ms(2000)后,连续读取温湿度可以成功,只是会输出很多条错误信息,这个大概是因为温湿度传感器的读取时间的问题吧。
所以想问问各位大佬,是不是延时函数得改一改?
新手,不会debug找问题,在网上也没搜到解决办法,谢谢大家!
main.c
- #include "main.h"
- /**
- * [url=home.php?mod=space&uid=41770]@brief[/url] 主函数
- * @param 无
- * @retval 无
- */
- int main(void)
- {
- DHT11_Data_TypeDef DHT11_Data;
-
-
- /* 初始化系统定时器 */
- SysTick_Init();
- LED_GPIO_Config();
- USART_Config();//初始化串口1
- printf("\r\n***dht11 温湿度传感器***\r\n");
- /*初始化DTT11的引脚*/
- DHT11_Init ();
-
- while(1)
- {
- /*调用DHT11_Read_TempAndHumidity读取温湿度,若成功则输出该信息*/
- if( DHT11_Read_TempAndHumidity ( & DHT11_Data ) == SUCCESS)
- {
- printf("\r\n读取DHT11成功!\r\n\r\n湿度为%d.%d %RH ,温度为 %d.%d℃ \r\n",\
- DHT11_Data.humi_int,DHT11_Data.humi_deci,DHT11_Data.temp_int,DHT11_Data.temp_deci);
- }
- else
- {
- printf("Read DHT11 ERROR!\r\n");
- }
-
- Delay_ms(2000);
- }
-
- }
复制代码 main.h
- #ifndef _MAIN_H_
- #define _MAIN_H_
- #include "stm32f10x.h"
- #include <stdio.h>
- #include "led.h"
- #include "delay.h"
- #include "dht11.h"
- #include "usart.h"
- #include "SysTick.h"
- #include "beep.h"
- #endif
复制代码
补充:在delay函数后面加上printf函数作为测试,不输出。 |
|