国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

ELEOK

標(biāo)題: stm32f103戰(zhàn)艦v3 OLED顯示時(shí)間源程序 [打印本頁(yè)]

作者: 路漫漫    時(shí)間: 2020-6-5 10:41
標(biāo)題: stm32f103戰(zhàn)艦v3 OLED顯示時(shí)間源程序
(適用正點(diǎn)原子的開(kāi)發(fā)板)主要是在OLED 屏幕上實(shí)時(shí)時(shí)間,如果時(shí)間不準(zhǔn)時(shí),可以先使用實(shí)驗(yàn)15 RTC實(shí)驗(yàn)  然后燒寫(xiě)進(jìn)開(kāi)發(fā)板,在XCOM串口調(diào)試助手發(fā)送命令如:RTC_Set(2020,06,04,23,25,30)  即可完成RTC校準(zhǔn)!!!!
完整源碼: STM32f103戰(zhàn)艦v3OLED顯示時(shí)間.7z (200.05 KB, 售價(jià): 1 E幣)

部分源碼:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "oled.h"
  6. #include "rtc.h"  
  7.         
  8. int main(void)
  9. {        u8 t=0;
  10.         delay_init();                     //延時(shí)函數(shù)初始化         
  11.         RTC_Init();                                  //RTC初始化
  12.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  13.          LED_Init();                             //LED端口初始化
  14.         OLED_Init();                        //初始化OLED      
  15.   OLED_ShowString(0,0,"ALIENTEK",24);  

  16.         OLED_Refresh_Gram();                //更新顯示到OLED

  17.         while(1)
  18.         {               
  19.                  OLED_Refresh_Gram();
  20.                 delay_ms(500);
  21.                 LED0=!LED0;
  22.                 if(t!=calendar.sec)
  23.                 {
  24.                         t=calendar.sec;
  25.                         OLED_ShowNum(0,24,calendar.w_year,4,12);  
  26.                           OLED_ShowString(24,24, "-",12);
  27.                         if(calendar.w_month<10)
  28.                          {        
  29.                                  OLED_ShowNum(30,24,0,1,12);
  30.                            OLED_ShowNum(36,24,calendar.w_month,1,12);
  31.                          }else OLED_ShowNum(36,24,calendar.w_month,2,12);  
  32.                           OLED_ShowString(42,24, "-",12);
  33.                          if(calendar.w_date<10)
  34.                          {
  35.                                  OLED_ShowNum(48,24,0,1,12);
  36.                            OLED_ShowNum(54,24,calendar.w_date,1,12);  
  37.                          }else OLED_ShowNum(48,24,calendar.w_date,2,12);  
  38.                         switch(calendar.week)
  39.                         {
  40.                                 case 0:
  41.                                                  OLED_ShowString(64,24,"Sunday",12);  
  42.                                         break;
  43.                                 case 1:
  44.                                                 OLED_ShowString(64,24,"Monday",12);
  45.                                         break;
  46.                                 case 2:
  47.                                                 OLED_ShowString(64,24,"Tuesday",12);
  48.                                         break;
  49.                                 case 3:
  50.                                          OLED_ShowString(64,24,"Wednesday",12);
  51.                                         break;
  52.                                 case 4:
  53.                                         OLED_ShowString(64,24,"Thursday",12);
  54.                                         break;
  55.                                 case 5:
  56.                                         OLED_ShowString(64,24,"Friday",12);
  57.                                         break;
  58.                                 case 6:
  59.                                         OLED_ShowString(64,24,"Saturday",12);
  60.                                         break;  
  61.                         }
  62.                         if(calendar.hour<10)
  63.                         {
  64.                          OLED_ShowNum(0,36,0,1,16);
  65.                          OLED_ShowNum(8,36,calendar.hour,1,16);
  66.                         }else
  67.                         OLED_ShowNum(0,36,calendar.hour,2,16);
  68.                         
  69.                         OLED_ShowString(16,36,":",16);
  70.                         
  71.                         if(calendar.min<10)
  72.                         {
  73.                          OLED_ShowNum(24,36,0,1,16);
  74.                          OLED_ShowNum(32,36,calendar.min,1,16);
  75.                         }else                        
  76.                   OLED_ShowNum(24,36,calendar.min,2,16);  
  77.                         
  78.             OLED_ShowString(40,36,":",16);
  79.                         
  80.                         if(calendar.sec<10)
  81.                         {
  82.                          OLED_ShowNum(48,36,0,1,16);
  83.                          OLED_ShowNum(56,36,calendar.sec,1,16);
  84.                         }else OLED_ShowNum(48,36,calendar.sec,2,16);  
  85.                         LED0=!LED0;
  86.                 }        
  87.                 delay_ms(10);                                                                  
  88.         };  
  89.                
  90. }
復(fù)制代碼








歡迎光臨 ELEOK (http://m.afoofa.cn/) Powered by Discuz! X5.0