STM32F103 學習STM32自帶RTC的使用,SSD1306 OLED顯示,DHT11數據
IMG_20201128_215758.jpg (4.3 MB, 下載次數: 79)
下載附件
2020-11-28 22:07 上傳
單片機源程序如下:
- #include "delay.h"
- #include "sys.h"
- #include "oled.h"
- #include "bmp.h"
- #include "rtc.h"
- #include "dht11.h"
- int main(void)
- { u8 t;
- delay_init(); //延時函數初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設置中斷優先級分組2 //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
- OLED_Init(); //初始化OLED
- OLED_ColorTurn(0);//0正常顯示,1 反色顯示
- OLED_DisplayTurn(0);//0正常顯示 1 屏幕翻轉顯示
- OLED_Clear();
-
- while(RTC_Init()) //RTC初始化 ,一定要初始化成功
- {
- OLED_ShowString(8,6,"RTC ERROR! ",16,1);
- OLED_Refresh();
- delay_ms(800);
- OLED_Clear();
- OLED_ShowString(8,6,"RTC Trying... ",8,1);
- OLED_Refresh();
- delay_ms(800);
- OLED_Clear();
- }
-
- OLED_ShowString(8,6,"RTC OK! ",8,1);
- OLED_Refresh();
- delay_ms(800);
- OLED_Clear();
- OLED_ShowChinese(25,4,9,12,1);//12*12 年
- OLED_ShowChinese(50,4,10,12,1);//12*12 月
- OLED_ShowChinese(76,4,2,12,1);//12*12 日
- OLED_ShowChinese(0,52,11,12,1);//12*12 溫
- OLED_ShowChinese(13,52,13,12,1);//12*12 度
- OLED_ShowChinese(69,52,12,12,1);//12*12 濕
- OLED_ShowChinese(82,52,13,12,1);//12*12 度
- OLED_ShowChinese(48,52,14,12,1);//12*12 ℃
- OLED_ShowChinese(116,52,15,12,1);//12*12 %
- //OLED_DrawCircle(100,26,18);
- OLED_Refresh();
- while(1)
- {
- if(t!=calendar.sec)
- {
- t=calendar.sec;
- OLED_ShowString(28,19,":",24,1);
- OLED_ShowNum(0,5,calendar.w_year,4,12,1);
- OLED_ShowNum(38,5,calendar.w_month,2,12,1);
- OLED_ShowNum(63,5,calendar.w_date,2,12,1);
- OLED_Refresh();
- //switch(calendar.week)
- //{
- // case 0:
- // OLED_ShowChinese(62,1,2,12,0); //12*12 日
- // break;
- // case 1:
- // OLED_ShowChinese(62,1,3,12,0); //12*12 一
- // break;
- // case 2:
- // OLED_ShowChinese(62,1,4,12,0); //12*12 二
- // break;
- // case 3:
- // OLED_ShowChinese(62,1,5,12,0); //12*12 三
- // break;
- // case 4:
- // OLED_ShowChinese(62,1,6,12,0); //12*12 四
- // break;
- // case 5:
- // OLED_ShowChinese(62,1,7,12,0); //12*12 五
- // break;
- // case 6:
- // OLED_ShowChinese(62,1,8,12,0); //12*12 六
- // break;
- //}
- OLED_ShowNum(4,20,calendar.hour,2,24,1);
- OLED_ShowNum(40,20,calendar.min,2,24,1);
- OLED_ShowNum(68,32,calendar.sec,2,12,1);
- OLED_Refresh();
- if(DHT11_ReadData()) //如果DHT11讀取到數據了,那么就顯示
- {
- OLED_ShowNum(32,52,DHT11_GetTemp()/256,2,12,1); //輸出溫度
- OLED_ShowNum(100,52,DHT11_GetHem()/256,2,12,1); //輸出濕度
- }
- else //若DHT11采集不成功,那么就失敗
- {
- OLED_ShowString(32,52,"??",12,1);
- OLED_ShowString(100,52,"??",12,1);
- }
- delay_ms(500);
- delay_ms(500); //延時,避免刷新DHT11數據太塊
- }
- }
- }
復制代碼
所有資料51hei提供下載:
RTC+dht11+OLED.rar
(361.17 KB, 下載次數: 99)
2020-11-28 22:09 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|