成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

基于STM32的OLED屏顯示AHT20采集的溫濕度數(shù)據(jù)

vincent_xyb / 1540人閱讀

摘要:三小結(jié)本次實(shí)驗(yàn)在實(shí)現(xiàn)了溫濕度數(shù)據(jù)采集并通過串口顯示和利用屏數(shù)據(jù)顯示代碼的基礎(chǔ)上,完成屏顯示采集的溫濕度數(shù)據(jù)也并不復(fù)雜,其中,溫濕度數(shù)據(jù)采集的過程使用的是模擬,屏的數(shù)據(jù)顯示采用的是。


本實(shí)驗(yàn)使用的工具:
STM32野火mini開發(fā)板、AHT20溫濕度傳感器、0.96寸OLED顯示屏

一、實(shí)現(xiàn)溫濕度數(shù)據(jù)采集并通過串口顯示

目的:為了查看能否實(shí)現(xiàn)AHT20傳感器的溫濕度采集

具體操作過程請參考小編的另一篇博客:STM32基于I2C的AHT20溫濕度數(shù)據(jù)采集

二、實(shí)現(xiàn)將溫濕度采集數(shù)據(jù)顯示到OLED屏

本過程是基于上面實(shí)現(xiàn)串口顯示的工程上,進(jìn)行OLED屏數(shù)據(jù)顯示代碼的添加。

本實(shí)驗(yàn)完整工程代碼下載詳見參考鏈接。

1.代碼下載

點(diǎn)擊此鏈接進(jìn)行OLED數(shù)據(jù)顯示代碼的下載:
https://github.com/Sunlight-Dazzling/stm32_AHT20_OLED/tree/main/User/usart

下載完成后,添加到之前的工程項(xiàng)目里面

2.部分代碼的編寫

2.1. 顯示溫濕度的代碼

void read_AHT20(void){	uint8_t   i;	for(i=0; i<6; i++)	{		readByte[i]=0;	}	I2C_Start();	I2C_WriteByte(0x71);	ack_status = Receive_ACK();	readByte[0]= I2C_ReadByte();	Send_ACK();	readByte[1]= I2C_ReadByte();	Send_ACK();	readByte[2]= I2C_ReadByte();	Send_ACK();	readByte[3]= I2C_ReadByte();	Send_ACK();	readByte[4]= I2C_ReadByte();	Send_ACK();	readByte[5]= I2C_ReadByte();	SendNot_Ack();	//Send_ACK();	I2C_Stop();	if( (readByte[0] & 0x68) == 0x08 )	{		H1 = readByte[1];		H1 = (H1<<8) | readByte[2];		H1 = (H1<<8) | readByte[3];		H1 = H1>>4;		H1 = (H1*1000)/1024/1024;		T1 = readByte[3];		T1 = T1 & 0x0000000F;		T1 = (T1<<8) | readByte[4];		T1 = (T1<<8) | readByte[5];		T1 = (T1*2000)/1024/1024 - 500;		AHT20_OutData[0] = (H1>>8) & 0x000000FF;		AHT20_OutData[1] = H1 & 0x000000FF;		AHT20_OutData[2] = (T1>>8) & 0x000000FF;		AHT20_OutData[3] = T1 & 0x000000FF;	}	else	{		AHT20_OutData[0] = 0xFF;		AHT20_OutData[1] = 0xFF;		AHT20_OutData[2] = 0xFF;		AHT20_OutData[3] = 0xFF;		printf("lyy");	}	printf("/r/n");		printf("溫度:%d%d.%d",T1/100,(T1/10)%10,T1%10);	printf("濕度:%d%d.%d",H1/100,(H1/10)%10,H1%10);	printf("/r/n");	t=T1/10;	t1=T1%10;	a=(float)(t+t1*0.1);	h=H1/10;	h1=H1%10;	b=(float)(h+h1*0.1);	sprintf(strTemp,"%.1f",a);   //調(diào)用Sprintf函數(shù)把DHT11的溫度數(shù)據(jù)格式化到字符串?dāng)?shù)組變量strTemp中  	sprintf(strHumi,"%.1f",b);    //調(diào)用Sprintf函數(shù)把DHT11的濕度數(shù)據(jù)格式化到字符串?dāng)?shù)組變量strHumi中  	//printf(strTemp);	//printf("/r/n");	GUI_ShowCHinese(16,00,16,"溫濕度顯示",1);	GUI_ShowCHinese(16,20,16,"溫度",1);	GUI_ShowString(53,20,strTemp,16,1);	GUI_ShowCHinese(16,38,16,"濕度",1);	GUI_ShowString(53,38,strHumi,16,1);	delay_ms(1500);			delay_ms(1500);	delay_ms(1500);	delay_ms(1500);	}


2.2. 添加相應(yīng)的點(diǎn)陣表示代碼
對漢字進(jìn)行取??梢允褂靡韵骆溄樱ú挥孟螺d字模提取軟件):https://www.23bei.com/tool-218.html

"溫",0x00,0x00,0x23,0xF8,0x12,0x08,0x12,0x08,0x83,0xF8,0x42,0x08,0x42,0x08,0x13,0xF8,  0x10,0x00,0x27,0xFC,0xE4,0xA4,0x24,0xA4,0x24,0xA4,0x24,0xA4,0x2F,0xFE,0x00,0x00,/*"溫",10*/"濕",0x00,0x00,0x27,0xF8,0x14,0x08,0x14,0x08,0x87,0xF8,0x44,0x08,0x44,0x08,0x17,0xF8,  0x11,0x20,0x21,0x20,0xE9,0x24,0x25,0x28,0x23,0x30,0x21,0x20,0x2F,0xFE,0x00,0x00,/*"濕",12*/"度",0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x3F,0xFC,0x22,0x20,0x22,0x20,  0x23,0xE0,0x20,0x00,0x2F,0xF0,0x24,0x10,0x42,0x20,0x41,0xC0,0x86,0x30,0x38,0x0E,/*"度",11*/"顯",0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,  0x04,0x40,0x44,0x44,0x24,0x44,0x14,0x48,0x14,0x50,0x04,0x40,0xFF,0xFE,0x00,0x00,/*"顯",13*/"示",0x00,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x01,0x00,  0x01,0x00,0x11,0x10,0x11,0x08,0x21,0x04,0x41,0x02,0x81,0x02,0x05,0x00,0x02,0x00,/*"示",14*/


2.3. main函數(shù)

int main(void){		delay_init();	    	       //延時(shí)函數(shù)初始化    	  	uart_init(115200);	 	IIC_Init();		  	NVIC_Configuration(); 	   //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級 		OLED_Init();			         //初始化OLED  	OLED_Clear(0); 	while(1)	{		read_AHT20_once();		OLED_Clear(0); 		delay_ms(1500);  }}

3.編譯并燒錄

點(diǎn)擊左上角的編譯按鈕進(jìn)行編譯,生成相應(yīng)的.hex文件

打開mcuisp軟件進(jìn)行.hex文件燒錄

4.運(yùn)行結(jié)果


由于還沒有接上AHT20傳感器,故溫濕度顯示為0,另外,采集的速度可以自行進(jìn)行設(shè)置,我這里設(shè)置的采集間隔比較長。

三、小結(jié)

本次實(shí)驗(yàn)在實(shí)現(xiàn)了溫濕度數(shù)據(jù)采集并通過串口顯示和利用OLED屏數(shù)據(jù)顯示代碼的基礎(chǔ)上,完成OLED屏顯示AHT20采集的溫濕度數(shù)據(jù)也并不復(fù)雜,其中,溫濕度數(shù)據(jù)采集的過程使用的是模擬I2C,OLED屏的數(shù)據(jù)顯示采用的是SPI。

四、參考鏈接

1.https://blog.csdn.net/qq_43279579/article/details/111678857
2.https://blog.csdn.net/qq_54496810/article/details/121426752
3.完整工程代碼
提取碼:1234

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/124041.html

相關(guān)文章

  • STM32F103基于spi實(shí)現(xiàn)OLED顯示

    摘要:文章目錄一原理二實(shí)現(xiàn)顯示中文滾動顯示顯示字符串讀取溫濕度顯示溫濕度三結(jié)果開機(jī)顯示歡迎信息循環(huán)讀取溫濕度以及滾動顯示我的四總結(jié)五參考六源碼一原理的定義就是串行外圍設(shè)備接口。 ...

    xfee 評論0 收藏0
  • stm32通過I2C接口實(shí)現(xiàn)濕度AHT20采集

    摘要:如圖所示在了解起始條件和停止條件后,我們再來看看在這個(gè)過程中數(shù)據(jù)的傳輸是如何進(jìn)行的。四參考資料通過接口實(shí)現(xiàn)溫濕度的采集硬件和軟件區(qū)別 stm32通過I2C接口實(shí)現(xiàn)...

    chengtao1633 評論0 收藏0
  • 基于STM32ESP8266 WIFI與ONENET通信連接(2),云平臺以及手機(jī)APP數(shù)據(jù)顯示

    摘要:基于的與通信連接,實(shí)現(xiàn)溫濕度數(shù)據(jù)互傳,控制第一步,在實(shí)現(xiàn)將傳感器數(shù)據(jù)采集之后,并且完成配網(wǎng)步驟,可以正常通過模塊正常將數(shù)據(jù)發(fā)送到云平臺之后進(jìn)行以下閱讀,上述內(nèi)容可以跳轉(zhuǎn)到以下鏈接進(jìn)行查看具體操作。 ...

    antz 評論0 收藏0
  • STM32 硬件IIC OLED

    摘要:命令為關(guān)閉顯示命令,為開啟顯示命令包含兩個(gè)字節(jié),第一個(gè)為命令字,第二個(gè)為設(shè)置值,第二個(gè)字節(jié)的表示電荷泵的開關(guān)狀態(tài),該位為開啟電荷泵,為則關(guān)閉。命令用于設(shè)置顯示時(shí)的起始列地址低四位。這也決定了字模選擇的取模方式為列行式。 ...

    luck 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<