本帖最后由 899 于 2022-4-7 11:01 編輯
請各位大佬幫忙看看問題出在哪里,一直卡在dht11的初始化,就是主函數main.c的
while(DHT11_Init()) {
printf("\r\n DHT11 init error");
delay_ms(50);
}
dht11.jpg (12.02 KB, 下載次數: 80)
下載附件
2022-4-7 10:57 上傳
開發板為 STM32F103ZET6
傳感器 DHT11 3線
接線正確 電源線接5v 3.3v都嘗試過 數據線接的為PG11
使用的例程為正點原子的DHT11代碼 代碼如下
dht11.c代碼為:
- #include "dht11.h"
- #include "delay.h"
復制代碼 dht11.h
- #ifndef __DHT11_H
- #define __DHT11_H
- #include "sys.h"
- #define DHT11_IO_IN() {GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=8<<12;}
- #define DHT11_IO_OUT() {GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=3<<12;}
- #define DHT11_DQ_OUT PGout(11)
- #define DHT11_DQ_IN PGin(11)
- u8 DHT11_Init(void);//3õê¼»ˉDHT11
- u8 DHT11_Read_Data(u8 *temp,u8 *humi);
- u8 DHT11_Read_Byte(void);
- u8 DHT11_Read_Bit(void);
- u8 DHT11_Check(void);
- void DHT11_Rst(void);
- #endif
復制代碼
main.c
- #include"stm32f10x.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "dht11.h"
- int main(void)
- {
- u8 temperature,humidity;
- delay_init();
- uart_init(115200);
- LED_Init();
- printf("\r\n system init");
-
- while(DHT11_Init()) {
- printf("\r\n DHT11 init error");
- delay_ms(50);
- }
- printf("DHT11 init\n");
-
- while(1) {
- if(!DHT11_Read_Data(&temperature,&humidity)) {
- printf("\r\n t: %d ,h: %d",temperature,humidity);
- }else printf("READ ERROR");
- LED0=!LED0;
- delay_ms(300);
- }
- }
復制代碼
|