久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 基于STM32驅動IIC0.96寸OLED屏 底層驅動+菜單程序源碼 [打印本頁]

作者: xiaolibo    時間: 2018-4-22 14:24
標題: 基于STM32驅動IIC0.96寸OLED屏 底層驅動+菜單程序源碼
本文針對IIC OLED屏底層驅動相關代碼
16X32,32X32,128X48等下面附帶相關實物圖
內置簡單的菜單程序,下面附帶實物圖
相關資料已經上傳



stm32單片機OLED菜單源程序如下:
  1. #define OLED_IIC_SCL  PBout(4) //SCL   串行時鐘
  2. #define OLED_IIC_SDA  PBout(3) //SDA  串行數據

  3. }
  4. void OLED_P16x32Ch(unsigned char x,unsigned char y,unsigned int N)
  5. {
  6.         unsigned char wm=0;
  7.         unsigned int adder=64*N;
  8.         OLED_Set_Pos(x , y);
  9.         for(wm = 0;wm < 16;wm++)
  10.         {
  11.                 OLED_WrDat(F16x32[adder]);
  12.                 adder += 1;
  13.         }
  14.         OLED_Set_Pos(x,y+1 );
  15.         for(wm = 0;wm <16;wm++)
  16.         {
  17.                 OLED_WrDat(F16x32[adder]);
  18.                 adder += 1;
  19.         }
  20. OLED_Set_Pos(x , y+2);
  21.         for(wm = 0;wm < 16;wm++)
  22.         {
  23.                 OLED_WrDat(F16x32[adder]);
  24.                 adder += 1;
  25.         }
  26.         OLED_Set_Pos(x,y+3 );
  27.         for(wm = 0;wm <16;wm++)
  28.         {
  29.                 OLED_WrDat(F16x32[adder]);
  30.                 adder += 1;
  31.         }                        
  32. }
  33. void OLED_P32x32Ch(unsigned char x,unsigned char y,unsigned int N)
  34. {
  35.         unsigned char wm=0;
  36.         unsigned int adder=128*N;
  37.         OLED_Set_Pos(x , y);
  38.         for(wm = 0;wm < 32;wm++)
  39.         {
  40.                 OLED_WrDat(F32x32[adder]);
  41.                 adder += 1;
  42.         }
  43.         OLED_Set_Pos(x,y+1 );
  44.         for(wm = 0;wm <32;wm++)
  45.         {
  46.                 OLED_WrDat(F32x32[adder]);
  47.                 adder += 1;
  48.         }
  49. OLED_Set_Pos(x , y+2);
  50.         for(wm = 0;wm < 32;wm++)
  51.         {
  52.                 OLED_WrDat(F32x32[adder]);
  53.                 adder += 1;
  54.         }
  55.         OLED_Set_Pos(x,y+3 );
  56.         for(wm = 0;wm <32;wm++)
  57.         {
  58.                 OLED_WrDat(F32x32[adder]);
  59.                 adder += 1;
  60.         }                        
  61. }
  62. void OLED_P128x48Ch(unsigned char x,unsigned char y,unsigned int N)
  63. {
  64.         unsigned char wm=0;
  65.         unsigned int adder=768*N;
  66.         OLED_Set_Pos(x , y);
  67.         for(wm = 0;wm < 128;wm++)
  68.         {
  69.                 OLED_WrDat(F128x48[adder]);
  70.                 adder += 1;
  71.         }
  72.         OLED_Set_Pos(x,y+1);
  73.         for(wm = 0;wm <128;wm++)
  74.         {
  75.                 OLED_WrDat(F128x48[adder]);
  76.                 adder += 1;
  77.         }
  78. OLED_Set_Pos(x , y+2);
  79.         for(wm = 0;wm < 128;wm++)
  80.         {
  81.                 OLED_WrDat(F128x48[adder]);
  82.                 adder += 1;
  83.         }
  84. OLED_Set_Pos(x,y+3 );
  85.         for(wm = 0;wm <128;wm++)
  86.         {
  87.                 OLED_WrDat(F128x48[adder]);
  88.                 adder += 1;
  89.         }  
  90. OLED_Set_Pos(x,y+4 );
  91.         for(wm = 0;wm <128;wm++)
  92.         {
  93.                 OLED_WrDat(F128x48[adder]);
  94.                 adder += 1;
  95.         }
  96. OLED_Set_Pos(x,y+5 );
  97.         for(wm = 0;wm <128;wm++)
  98.         {
  99.                 OLED_WrDat(F128x48[adder]);
  100.                 adder += 1;
  101.         }         
  102. }



  103. //  IIC協議    OLED屏 人機界面
  104. void lnterface(void)                          //人機界面
  105. {
  106.       
  107.         Status_Bar();                              
  108.         switch(Page_Sgin)      
  109.         {               
  110.                 case 0:
  111.                              Main_Menu(); break;
  112.                 case 2:
  113.                              Menu_2(); break;
  114.                 case 3:
  115.                              Menu_3();break;
  116.                
  117.                
  118.                 default : break;
  119.         }
  120.       
  121. }


  122. //主菜單
  123. void Main_Menu(void)
  124. {
  125.   WhenTheDisplay();                             //顯示時分秒
  126.         DayAndDayDisplay();                         //顯示年月日
  127.         OLED_P16x16Ch(0*16,6,11);                   //顯示 //菜
  128.         OLED_P16x16Ch(1*16,6,12);                   //顯示 //單
  129.         OLED_P16x16Ch(6*16,6,13);                   //顯示 //退      
  130.         OLED_P16x16Ch(7*16,6,14);                   //顯示 //出
  131.         if(KEY_Scan(Key_Selectio)==Determine_Choice)//判斷是否按下確定按鍵
  132.         {                           
  133.                 Page_Sgin=2;                              //頁面選擇置2
  134.                 OLED_P128x48Ch(0,2,0);                    //清除內容欄
  135.         }
  136. }

  137. void Menu_2(void)
  138. {
  139.         if(Choice==2||Choice==4||Choice==6)      
  140.         {

  141.                 OLED_P16x16Ch(0*16,Choice,44);              //選擇
  142.                 Display(2,0,0);
  143.                
  144.                
  145.                 switch(KEY_Scan(Key_Selectio))      
  146.                 {               
  147.                         case Superior_Choice:                     //上翻
  148.                                    OLED_P16x16Ch(0*16,Choice,37);
  149.                                    Choice-=2;
  150.                                    break;
  151.                         case Subordinate_Choice:                  //下翻
  152.                                    OLED_P16x16Ch(0*16,Choice,37);
  153.                                    Choice+=2;
  154.                                    break;
  155.                         case Determine_Choice:                    //確定
  156.                                    OLED_P128x48Ch(0,2,0);               //清除內容欄
  157.                              Page_Sgin=3;Choice=2;
  158.                                    break;
  159.                         case Return_Choice:                       //返回
  160.                                    OLED_P128x48Ch(0,2,0);
  161.                                    Page_Sgin=0;   
  162.                              break;
  163.                         default :
  164.                                    break;
  165.                 }
  166.                
  167.         }      
  168.         else if(Choice>6)Choice=2;
  169.         else if(Choice<2)Choice=6;
  170.       
  171.         OLED_ShowNum(6*16,6,Choice/2,1,12);
  172.         OLED_P6x8Str(6.5*16,7,"/");
  173.         OLED_P6x8Str(7*16,7,"10");         
  174. }
  175. void Menu_3(void)
  176. {
  177.         if(Choice==2||Choice==4||Choice==6)      
  178.         {
  179.                 OLED_P16x16Ch(0*16,Choice,44);              //選擇
  180.                 Display(2,0,0);
  181.                
  182.                 switch(KEY_Scan(Key_Selectio))      
  183.                 {               
  184.                         case Superior_Choice:                     //上翻
  185.                                    OLED_P16x16Ch(0*16,Choice,37);
  186.                                    Choice-=2;
  187.                                    break;
  188.                         case Subordinate_Choice:                  //下翻
  189.                                    OLED_P16x16Ch(0*16,Choice,37);
  190.                                    Choice+=2;
  191.                                    break;
  192.                         case Determine_Choice:                    //確定
  193.                                    OLED_P128x48Ch(0,2,0);               //清除內容欄
  194.                              Page_Sgin=3;Choice=2;
  195.                                    break;
  196.                         case Return_Choice:                       //返回
  197.                                    OLED_P128x48Ch(0,2,0);
  198.                                    Page_Sgin=2;Choice=2;  
  199.                              break;
  200.                         default :
  201.                                    break;
  202.                 }
  203.                
  204.         }      
  205.         else if(Choice>6)Choice=2;
  206.         else if(Choice<2)Choice=6;
  207.       
  208.         OLED_ShowNum(6*16,6,Choice/2,1,12);
  209.         OLED_P6x8Str(6.5*16,7,"/");
  210.         OLED_P6x8Str(7*16,7,"10");         
  211. }
  212.         
復制代碼

所有資料51hei提供下載:
PCtoLCD2002完美版.rar (702.05 KB, 下載次數: 480)
IIC驅動0.96寸OLED顯示實驗.rar (313.56 KB, 下載次數: 1607)



        
        
        


作者: 小胖波波    時間: 2018-4-22 21:01
非常不錯的程序,值得看看
作者: sxtz531    時間: 2018-6-16 12:38
感謝摟主,學習學習
作者: y12345678    時間: 2018-6-24 16:31
你好,請問這個程序是stm32f103的嗎?
作者: spdshmt    時間: 2018-6-27 10:07
很好的資料,正好學習需要
作者: sxtz531    時間: 2018-7-21 13:51
很好的資料,感謝摟主
作者: nb44444    時間: 2018-7-23 07:52
學習學習
作者: Ice_Fish    時間: 2018-8-31 20:23
找了好久!謝謝樓主的資源!
作者: 280431247    時間: 2018-9-8 19:03
66666感謝分享
作者: ebingyu    時間: 2018-10-10 10:18
學習了,謝謝樓主!
作者: lwdlwd    時間: 2018-10-18 19:09
打開后程序首先有錯誤  其次主程序都被注釋掉了 就留了它qq 什么意思
作者: candylife9    時間: 2018-11-1 13:42
不能用
作者: 127lo    時間: 2018-11-6 17:05
剛好需要,謝謝分享
作者: wxb世界第一    時間: 2018-11-6 21:52
謝謝樓主分享
作者: lucq7896    時間: 2018-11-7 09:00
在stm32f429要改哪些地方?
作者: 18217586953    時間: 2018-11-7 10:47
不錯,看看!
作者: morixinguan    時間: 2018-11-7 16:55
寫得真的不錯!
作者: 對對對啊    時間: 2018-11-14 11:51

非常不錯的程序,值得看看
作者: 血洗無涯    時間: 2018-11-14 23:19
好好學習學習,感謝您的分享
作者: ddd123321    時間: 2018-11-16 13:55
謝謝分享呀,正好用上啦,棒棒棒!
作者: li247085736    時間: 2018-11-16 21:33
謝謝分享

作者: lyh01    時間: 2018-11-18 01:13
很好的資料
作者: 1113634577    時間: 2018-12-12 20:09
感謝分享,測試一下,豎排陰反選菜單去掉顯示“確定”簡潔些
作者: lwf1    時間: 2018-12-13 19:44
很好的資源,下載看看
作者: cyrs    時間: 2018-12-13 22:29
我就是懶靜等成品
作者: zjk995063909    時間: 2018-12-16 22:17
謝謝樓主的分享啦。不過我怎么燒進去沒反應呢。。
作者: tonyhy1975    時間: 2018-12-19 22:50
謝謝分享,值得學習
作者: rivamed    時間: 2018-12-20 10:50
謝謝樓主分享,我好好學習一下
作者: tonyhy1975    時間: 2018-12-20 12:21
謝謝分享,不錯資料
作者: 1113634577    時間: 2018-12-25 18:01
下載學習一下
作者: 墨魚腌肉    時間: 2018-12-26 16:14
看著不錯;有需求會回來
作者: Darkness1206    時間: 2019-1-10 14:43
謝謝分享
作者: lrf32535604    時間: 2019-1-14 09:13
謝謝樓主分享
作者: xode    時間: 2019-2-10 09:19
謝謝樓主分享
作者: 周鵬    時間: 2019-2-16 15:10
內容太棒了!非常的工整!謝謝!
作者: gh001    時間: 2019-2-21 07:32
很好的資料,多給些資料
作者: 莫名的前行    時間: 2019-2-21 10:46
不錯,學習學習
作者: 瘋子單行    時間: 2019-2-23 11:31
不錯  我的下載上就是閃屏
作者: 1843    時間: 2019-4-11 17:14
學習參考一下
作者: jz21zfr    時間: 2019-4-12 22:46
好好學習學習,感謝您的分享
作者: 2376024940    時間: 2019-4-14 11:35
非常感謝樓主的開源分享精神,正好我也在學習32驅動OLED屏,這是一個很好的教程。但是我在使用樓主的分享的程序時,并沒有正常的驅動我的OLED顯示,最初只是修改了IIC的端口,32的型號也是與樓主的樣,可最終還是沒能驅動成功!
作者: 2376024940    時間: 2019-4-15 19:28
想問一下樓主,這個時間顯示是顯示的圖片吧?不是實時顯示系統時間的?這個顯示大字體的函數不能實時的顯示RTC時鐘?
作者: wjdfcm    時間: 2019-5-1 12:09
xiexiedalaofenxiang
作者: psyren    時間: 2019-5-3 21:22

很好的資料,正好學習需要
作者: 否定11    時間: 2019-6-4 20:50
感謝分享,但是有錯誤怎么辦?
作者: willy926234097    時間: 2019-6-5 09:48
感謝分享!學習中!!
作者: 陳仕祥    時間: 2019-6-18 22:38
謝謝樓主分享
作者: lsh574    時間: 2019-6-20 15:13
感謝摟主,學習學習
作者: qq646926493    時間: 2019-7-21 17:41
謝謝分析~~學習一下~
作者: utt    時間: 2019-7-22 15:13
好好學習學習,感謝您的分享
作者: 18172467016    時間: 2019-7-23 21:24
硬核oled
作者: zwll    時間: 2019-8-5 14:16
好東西
作者: 遷就    時間: 2019-8-5 16:54
謝謝分享
作者: chenmingsi    時間: 2019-8-9 17:05
還行呀,不錯不錯
作者: yazhoulong    時間: 2019-8-11 12:53
找了好久!謝謝樓主的資源!
作者: 嘿嘿嘿迷麟    時間: 2019-8-11 15:09
謝謝樓主,有沒有f4的IIC通信的oled例程啊

作者: 那個誰和誰    時間: 2019-8-23 12:04
很好,值得參考。
作者: linraochang    時間: 2019-9-7 22:51
切換不了界面
作者: bmsi001    時間: 2019-9-12 18:16
哪里下載
作者: yiyedd    時間: 2019-9-23 20:38
非常不錯的程序,值得看看
作者: kjhisu    時間: 2019-11-27 00:54
終于找到你
作者: a4270    時間: 2019-11-29 15:34
感謝摟主,學習學習
作者: caiweijie    時間: 2019-12-25 16:36
謝謝分享,不錯資料
作者: caiweijie    時間: 2019-12-25 17:33
剛好需要,參考參考
作者: fk192313871    時間: 2019-12-25 21:06
感謝 很詳細 幫助很大
作者: leihh2005    時間: 2019-12-26 09:37
感謝摟主,學習學習
作者: eluo    時間: 2020-1-5 11:42
NICE,樓主
作者: ben0148    時間: 2020-1-13 11:36
正好需要啊,可是沒黑幣了!!!
作者: 31261265    時間: 2020-1-17 18:35
還需要配置其他東西嗎
作者: suilian6617    時間: 2020-1-18 08:16
謝謝分享,值得學習
作者: 零丁洋    時間: 2020-3-10 15:58
下下來看看,感覺就是那個模塊附贈的示例程序啊,不過還是感謝分享了!
作者: 34歲老學生    時間: 2020-3-10 23:58
不錯,學習了
作者: schidler    時間: 2020-3-13 04:20
不錯,不錯,很想看看
作者: 123123啊    時間: 2020-3-20 18:39
感謝分享
作者: zhangkaiy1220    時間: 2020-4-14 10:39
不錯的資料,點贊

作者: ZMLZML1009    時間: 2020-4-24 17:55
你的電量,信號,藍牙顯示是怎么通過PC2002生成的?字符模式還是圖片模式?
作者: l68715553    時間: 2020-4-25 16:56
不錯的資料,點贊
作者: mm1113512    時間: 2020-6-2 23:03

謝謝分享,不錯資料
作者: yangyue01    時間: 2020-11-5 17:05
學習下,跑跑看看
作者: HJJ079    時間: 2021-5-15 01:06
打開只有樓主的的QQ,沒看到上面那些功能呢。是要改掉注釋嗎

作者: jery_li    時間: 2022-1-3 21:49
很好的一個例程,學到很多
作者: dashiwork    時間: 2022-1-6 19:57
確實想學習液晶,參考一下程序




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产三级在线观看视频 | 亚洲天堂男人天堂 | 美女黄色小说 | 欧美精品一 | 黄色av免费在线观看 | 亚洲福利一区 | 欧美专区在线观看 | 色天使在线视频 | 欧美精品一区在线 | 国产欧美精品一区 | 国产自在线 | 在线观看日韩视频 | 一级免费黄色片 | 日韩精品少妇 | 看片黄全部免费 | 欧美在线观看一区二区三区 | 日本精品久久久 | 国产精品久久久久久久 | 成人午夜在线观看 | 国产成人精品亚洲男人的天堂 | 日本一级一片免费视频 | 看片地址 | 一级做a视频 | 久久午夜影院 | 国产成人精品一区二区三区在线观看 | 亚洲专区一区 | 国产精品主播一区二区 | 日本丰满肉感bbwbbwbbw | 亚洲精品免费在线 | 一级毛片免费播放 | 亚洲欧美精品 | 黄色特级毛片 | 日韩精品国产精品 | 国产欧美日韩综合 | 欧美日本在线观看 | 成人看片免费 | 97视频免费观看 | 伊人激情网 | 黄色一级在线观看 | 一区二区三区四区av | 日韩欧美自拍 |