|
這是一個簡單的stm32f103c8t6核心板獲取溫濕度并通過串口輸出數據。
單片機源程序如下:
- #include "stm32f10x.h"
- #include "usart.h"
- #include "delay.h"
- #include "DHT11.h"
- /*
- *讀取溫濕度傳感器DHT11的值,并用串口打印出來
- */
- void clock_init(void);
- u8 temp = 0,humi = 0;
- /**************************************************************************
- 函數名:int main(void)
- 參數說明:無
- 返回值:無
- 函數作用:主函數
- ***************************************************************************/
- int main(void)
- {
-
- clock_init();
- uart_init(115200); //初始化串口
- printf("wecome to DHT11");
-
-
- //初始化DHT11(有BUG,第一次上電總是失敗,按一下復位按鈕又能進了)
- if(!DHT11_Init()){
- printf("\r\n EEROR! THE DHT11 HAS NO RESPOND...");
- //while(1);
- }
- printf("\r\n THE DHT11 HAS RESPOND");
- Delay_ms(10); //這里延時10ms主要是因為,剛剛接收到響應信息,要等DHT11發送完信息
-
- while(1)
- {
- if(DHT11_Read_Data(&temp,&humi))
- printf("\r\n temp:%d,humi:%d",temp,humi);
- else
- printf("\r\n EEROR! THE DHT11 HAS NO RESPOND...");//由于是庫函數編程,不能準確把握函數的執行時間,
- //所以會經常出現這條警告信息
- Delay_ms(100);
- }
-
- }
-
-
- /**************************************************************************
- 函數名:void clock_init(void)
- 參數說明:無
- 返回值:無
- 函數作用:開啟高速外部時鐘,
- ADCCLK設置為12MHZ, SYSCLK設置為72Mhz,PCLK1設置為36MHZ,PKLC2設置為72mhz
- ***************************************************************************/
- void clock_init(void)
- {
- RCC->CR = 0x1010000;
- RCC->CFGR = 0x1DC402;
- }
復制代碼
所有代碼51hei附件下載:
|
-
-
DHT11C串口接收溫濕度信息.7z
2021-8-25 17:18 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
183.27 KB, 下載次數: 36, 下載積分: 黑幣 -5
這是一個簡單的stm32f103c8t6核心板獲取溫濕度并通過串口輸出數據
評分
-
查看全部評分
|