|
這是一個(gè)簡(jiǎn)單的stm32f103c8t6核心板獲取溫濕度并通過(guò)串口輸出數(shù)據(jù)。
單片機(jī)源程序如下:
- #include "stm32f10x.h"
- #include "usart.h"
- #include "delay.h"
- #include "DHT11.h"
- /*
- *讀取溫濕度傳感器DHT11的值,并用串口打印出來(lái)
- */
- void clock_init(void);
- u8 temp = 0,humi = 0;
- /**************************************************************************
- 函數(shù)名:int main(void)
- 參數(shù)說(shuō)明:無(wú)
- 返回值:無(wú)
- 函數(shù)作用:主函數(shù)
- ***************************************************************************/
- int main(void)
- {
-
- clock_init();
- uart_init(115200); //初始化串口
- printf("wecome to DHT11");
-
-
- //初始化DHT11(有BUG,第一次上電總是失敗,按一下復(fù)位按鈕又能進(jìn)了)
- if(!DHT11_Init()){
- printf("\r\n EEROR! THE DHT11 HAS NO RESPOND...");
- //while(1);
- }
- printf("\r\n THE DHT11 HAS RESPOND");
- Delay_ms(10); //這里延時(shí)10ms主要是因?yàn),剛剛接收到響?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...");//由于是庫(kù)函數(shù)編程,不能準(zhǔn)確把握函數(shù)的執(zhí)行時(shí)間,
- //所以會(huì)經(jīng)常出現(xiàn)這條警告信息
- Delay_ms(100);
- }
-
- }
-
-
- /**************************************************************************
- 函數(shù)名:void clock_init(void)
- 參數(shù)說(shuō)明:無(wú)
- 返回值:無(wú)
- 函數(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 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
183.27 KB, 下載次數(shù): 36, 下載積分: 黑幣 -5
這是一個(gè)簡(jiǎn)單的stm32f103c8t6核心板獲取溫濕度并通過(guò)串口輸出數(shù)據(jù)
評(píng)分
-
查看全部評(píng)分
|