摘要:三小結本次實驗在實現了溫濕度數據采集并通過串口顯示和利用屏數據顯示代碼的基礎上,完成屏顯示采集的溫濕度數據也并不復雜,其中,溫濕度數據采集的過程使用的是模擬,屏的數據顯示采用的是。
本實驗使用的工具:
STM32野火mini開發板、AHT20溫濕度傳感器、0.96寸OLED顯示屏
目的:為了查看能否實現AHT20傳感器的溫濕度采集
具體操作過程請參考小編的另一篇博客:STM32基于I2C的AHT20溫濕度數據采集
本過程是基于上面實現串口顯示的工程上,進行OLED屏數據顯示代碼的添加。
本實驗完整工程代碼下載詳見參考鏈接。
點擊此鏈接進行OLED數據顯示代碼的下載:
https://github.com/Sunlight-Dazzling/stm32_AHT20_OLED/tree/main/User/usart
下載完成后,添加到之前的工程項目里面
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); //調用Sprintf函數把DHT11的溫度數據格式化到字符串數組變量strTemp中 sprintf(strHumi,"%.1f",b); //調用Sprintf函數把DHT11的濕度數據格式化到字符串數組變量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. 添加相應的點陣表示代碼
對漢字進行取??梢允褂靡韵骆溄樱ú挥孟螺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函數
int main(void){ delay_init(); //延時函數初始化 uart_init(115200); IIC_Init(); NVIC_Configuration(); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級 OLED_Init(); //初始化OLED OLED_Clear(0); while(1) { read_AHT20_once(); OLED_Clear(0); delay_ms(1500); }}
點擊左上角的編譯按鈕進行編譯,生成相應的.hex文件
打開mcuisp軟件進行.hex文件燒錄
由于還沒有接上AHT20傳感器,故溫濕度顯示為0,另外,采集的速度可以自行進行設置,我這里設置的采集間隔比較長。
本次實驗在實現了溫濕度數據采集并通過串口顯示和利用OLED屏數據顯示代碼的基礎上,完成OLED屏顯示AHT20采集的溫濕度數據也并不復雜,其中,溫濕度數據采集的過程使用的是模擬I2C,OLED屏的數據顯示采用的是SPI。
1.https://blog.csdn.net/qq_43279579/article/details/111678857
2.https://blog.csdn.net/qq_54496810/article/details/121426752
3.完整工程代碼
提取碼:1234
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/124041.html
摘要:文章目錄一原理二實現顯示中文滾動顯示顯示字符串讀取溫濕度顯示溫濕度三結果開機顯示歡迎信息循環讀取溫濕度以及滾動顯示我的四總結五參考六源碼一原理的定義就是串行外圍設備接口。 ...
摘要:如圖所示在了解起始條件和停止條件后,我們再來看看在這個過程中數據的傳輸是如何進行的。四參考資料通過接口實現溫濕度的采集硬件和軟件區別 stm32通過I2C接口實現...
摘要:基于的與通信連接,實現溫濕度數據互傳,控制第一步,在實現將傳感器數據采集之后,并且完成配網步驟,可以正常通過模塊正常將數據發送到云平臺之后進行以下閱讀,上述內容可以跳轉到以下鏈接進行查看具體操作。 ...
摘要:命令為關閉顯示命令,為開啟顯示命令包含兩個字節,第一個為命令字,第二個為設置值,第二個字節的表示電荷泵的開關狀態,該位為開啟電荷泵,為則關閉。命令用于設置顯示時的起始列地址低四位。這也決定了字模選擇的取模方式為列行式。 ...
閱讀 1503·2021-11-22 09:34
閱讀 3320·2021-09-29 09:35
閱讀 562·2021-09-04 16:40
閱讀 2912·2019-08-30 15:53
閱讀 2582·2019-08-30 15:44
閱讀 2583·2019-08-30 14:10
閱讀 1328·2019-08-29 18:43
閱讀 2205·2019-08-29 13:26