找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6088|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

OLED花樣顯示之顯示菜單的STM32源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 837877663 于 2019-6-12 08:58 編輯

用STM32驅(qū)動(dòng)0.96寸OLED顯示屏顯示界面的程序,讓大家的界面更規(guī)則好看

單片機(jī)源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"         
  6. #include "usmart.h"        
  7. #include "OLED_I2C.h"
  8. extern unsigned char BMP1[];

  9. struct PAGE
  10. {
  11.         u8 page;                        //頁(yè)碼
  12.         u8* name1;                //字符串名
  13.         u8* name2;                //字符串名
  14.         u8* name3;                //字符串名
  15.         u8* name4;                //字符串名        
  16. };

  17. struct PAGE page_one,page_two,page_three;

  18. //創(chuàng)建三個(gè)頁(yè)面
  19. void Creat_Page()
  20. {
  21.         page_one.page=1;
  22.         page_one.name1="name";
  23.         page_one.name2="age";
  24.         page_one.name3="height";
  25.         page_one.name4 ="birthday";
  26.         
  27.         page_two.page=2;
  28.         page_two.name1="number";
  29.         page_two.name2="weight";
  30.         page_two.name3="quality";
  31.         page_two.name4 ="date";
  32.         
  33.         page_three.page=3;
  34.         page_three.name1="choose";
  35.         page_three.name2="judge";
  36.         page_three.name3="blanks";
  37.         page_three.name4="Short answer";
  38. }

  39. void Show_Page(u8 a)
  40. {
  41.         if(a==1)
  42.         {
  43.                 OLED_CLS();
  44.                 OLED_ShowNote(0,0,page_one.name1,2);
  45.                 OLED_ShowNote(0,2,page_one.name2,2);
  46.                 OLED_ShowNote(0,4,page_one.name3,2);
  47.                 OLED_ShowNote(0,6,page_one.name4,2);        
  48.         }
  49.         if(a==2)
  50.         {
  51.                 OLED_CLS();
  52.                 OLED_ShowNote(0,0,page_two.name1,2);
  53.                 OLED_ShowNote(0,2,page_two.name2,2);
  54.                 OLED_ShowNote(0,4,page_two.name3,2);
  55.                 OLED_ShowNote(0,6,page_two.name4,2);        
  56.         }
  57.         if(a==3)
  58.         {
  59.                 OLED_CLS();
  60.                 OLED_ShowNote(0,0,page_three.name1,2);
  61.                 OLED_ShowNote(0,2,page_three.name2,2);
  62.                 OLED_ShowNote(0,4,page_three.name3,2);
  63.                 OLED_ShowNote(0,6,page_three.name4,2);        
  64.         }
  65. }

  66. //LED狀態(tài)設(shè)置函數(shù)
  67. void led_set(u8 sta)
  68. {
  69.         LED1=sta;
  70. }
  71. //函數(shù)參數(shù)調(diào)用測(cè)試函數(shù)
  72. void test_fun()
  73. {
  74.         OLED_DrawBMP(0,0,128,8,(unsigned char *)BMP1);
  75. }         
  76. int main(void)
  77. {        
  78.          u8 h=0,y=0;
  79.         delay_init();                     //延時(shí)函數(shù)初始化         
  80.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);          //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  81.         uart_init(115200);                 //串口初始化為115200
  82.          LED_Init();                             //LED端口初始化
  83.         I2C_Configuration();
  84.         OLED_Init();
  85.         usmart_dev.init(SystemCoreClock/1000000);        //初始化USMART        
  86.         OLED_CLS();
  87.         Creat_Page();        
  88.          Show_Page(1);
  89.   while(1)
  90.         {        
  91.                 OLED_ShowStr(120,h,"<",2);               
  92.                 delay_ms(800);
  93.                 OLED_ShowStr(120,h," ",2);
  94.                 h=h+2;
  95.                 if(h>=8)
  96.                 {
  97.                         h=0;
  98.                         y++;
  99.                         if(y>=4)y=1;
  100.                         Show_Page(y);                        
  101.                 }
  102.         }                        
  103. }
復(fù)制代碼

所有資料51hei提供下載:
顯示界面.7z (208.94 KB, 下載次數(shù): 152)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:239620 發(fā)表于 2019-11-7 16:35 | 只看該作者
下載下來(lái)看一看
回復(fù)

使用道具 舉報(bào)

板凳
ID:306573 發(fā)表于 2019-11-8 17:02 | 只看該作者
下載學(xué)習(xí)學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

地板
ID:480037 發(fā)表于 2019-12-16 20:18 | 只看該作者
下來(lái)看看
回復(fù)

使用道具 舉報(bào)

5#
ID:286070 發(fā)表于 2020-6-2 22:16 | 只看該作者
感謝分享                  
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表