OLED顯示溫濕度DHT11,有時間又加了個電子時鐘。
程序借鑒了里面一位道友,他程序應該能成功,但仿真有問題。
我稍微改了一下,仿真問題沒有解決:溫濕度只能顯示00,年份只能是1970,沒有顯示設置時間。
看實物圖
51hei圖片20210105103547.jpg (77.81 KB, 下載次數: 57)
下載附件
2021-1-5 10:43 上傳
51hei圖片20210105103553.jpg (73.36 KB, 下載次數: 52)
下載附件
電子時鐘溫濕度顯示
2021-1-5 10:44 上傳
時間修改在RTC.C中RTC_Set設置時間
main.c程序
- #include "delay.h"
- #include "sys.h"
- #include "oled.h"
- #include "bmp.h"
- #include "rtc2.h"
- #include "dht11.h"
- int main(void)
- {
- int wendu=0,shidu=0;
- u8 t;
- delay_init(); //精準延時初始化
- OLED_Init(); //OLED初始化
- OLED_ShowPicture(0,0,128,64,BMP3,1); //開機畫面龍貓
- OLED_Refresh(); //更新顯存到OLED
- RTC_Init(); //TRC初始化
- delay_ms(1000); //延時
- OLED_ColorTurn(0);//0正常顯示,1 反色顯示
- OLED_DisplayTurn(0);//0正常顯示 1 屏幕翻轉顯示
- //delay_ms(500);
- OLED_Clear(); //清屏
- OLED_ShowChinese(45,2,9,12,1);//12*12 年
- OLED_ShowChinese(70,2,10,12,1);//12*12 月
- OLED_ShowChinese(96,2,2,12,1);//12*12 日
- OLED_ShowChinese(0,51,11,12,1);//12*12 溫
- OLED_ShowChinese(13,51,13,12,1);//12*12 度
- OLED_ShowChinese(69,51,12,12,1);//12*12 濕
- OLED_ShowChinese(82,51,13,12,1);//12*12 度
- OLED_ShowChinese(48,51,14,12,1);//12*12 ℃
- OLED_ShowChinese(116,51,15,12,1);//12*12 %
- OLED_Refresh();
- while(1)
- {
- if(t!=calendar.sec)
- {
- t=calendar.sec;
- OLED_ShowNum(20,3,calendar.w_year,4,12,1); //輸出2021
- OLED_ShowNum(58,3,calendar.w_month,2,12,1); //輸出月份
- OLED_ShowNum(83,3,calendar.w_date,2,12,1); //輸出日期
- OLED_ShowString(51,17,":",24,1); //:
- OLED_DrawLine(10,16,117,16,1); //輸出上橫線
- OLED_DrawLine(13,19,114,19,1);
-
- OLED_DrawLine(10,16,10,48,1); //輸出左豎線
- OLED_DrawLine(13,19,13,45,1);
-
- OLED_DrawLine(117,16,117,48,1); //輸出右豎線
- OLED_DrawLine(114,19,114,45,1);
-
- OLED_DrawLine(10,48,117,48,1); //輸出下豎線
- OLED_DrawLine(13,45,114,45,1);
- OLED_Refresh();
-
- OLED_ShowNum(27,20,calendar.hour,2,24,1); //輸出時
- OLED_ShowNum(63,20,calendar.min,2,24,1); // 輸出分
- OLED_ShowNum(91,29,calendar.sec,2,12,1); //輸出秒
- OLED_Refresh();
- if(DHT11_ReadData(&shidu,&wendu)) //如果DHT11讀取到數據了,那么就顯示
- {
- OLED_ShowNum(32,51,wendu,2,12,1); //輸出溫度
- OLED_ShowNum(100,51,shidu,2,12,1); //輸出濕度
- }
- // else //若DHT11采集不成功,那么就失敗
- // {
- // OLED_ShowString(32,51,"??",12,1);
- // OLED_ShowString(100,51,"??",12,1);
- // }
- delay_ms(500);
- //delay_ms(500); //延時,避免刷新DHT11數據太塊
- }
- }
- //OLED_ScrollDisplay(11,4,1);
- }
復制代碼 全部程序51hei下載地址:
stm32OLED.7z
(234.13 KB, 下載次數: 256)
2021-1-5 16:12 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|