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