|
本帖最后由 837877663 于 2019-6-12 08:58 編輯
用STM32驅(qū)動(dòng)0.96寸OLED顯示屏顯示界面的程序,讓大家的界面更規(guī)則好看
單片機(jī)源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "usart.h"
- #include "usmart.h"
- #include "OLED_I2C.h"
- extern unsigned char BMP1[];
- struct PAGE
- {
- u8 page; //頁碼
- u8* name1; //字符串名
- u8* name2; //字符串名
- u8* name3; //字符串名
- u8* name4; //字符串名
- };
- struct PAGE page_one,page_two,page_three;
- //創(chuàng)建三個(gè)頁面
- void Creat_Page()
- {
- page_one.page=1;
- page_one.name1="name";
- page_one.name2="age";
- page_one.name3="height";
- page_one.name4 ="birthday";
-
- page_two.page=2;
- page_two.name1="number";
- page_two.name2="weight";
- page_two.name3="quality";
- page_two.name4 ="date";
-
- page_three.page=3;
- page_three.name1="choose";
- page_three.name2="judge";
- page_three.name3="blanks";
- page_three.name4="Short answer";
- }
- void Show_Page(u8 a)
- {
- if(a==1)
- {
- OLED_CLS();
- OLED_ShowNote(0,0,page_one.name1,2);
- OLED_ShowNote(0,2,page_one.name2,2);
- OLED_ShowNote(0,4,page_one.name3,2);
- OLED_ShowNote(0,6,page_one.name4,2);
- }
- if(a==2)
- {
- OLED_CLS();
- OLED_ShowNote(0,0,page_two.name1,2);
- OLED_ShowNote(0,2,page_two.name2,2);
- OLED_ShowNote(0,4,page_two.name3,2);
- OLED_ShowNote(0,6,page_two.name4,2);
- }
- if(a==3)
- {
- OLED_CLS();
- OLED_ShowNote(0,0,page_three.name1,2);
- OLED_ShowNote(0,2,page_three.name2,2);
- OLED_ShowNote(0,4,page_three.name3,2);
- OLED_ShowNote(0,6,page_three.name4,2);
- }
- }
- //LED狀態(tài)設(shè)置函數(shù)
- void led_set(u8 sta)
- {
- LED1=sta;
- }
- //函數(shù)參數(shù)調(diào)用測(cè)試函數(shù)
- void test_fun()
- {
- OLED_DrawBMP(0,0,128,8,(unsigned char *)BMP1);
- }
- int main(void)
- {
- u8 h=0,y=0;
- delay_init(); //延時(shí)函數(shù)初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
- uart_init(115200); //串口初始化為115200
- LED_Init(); //LED端口初始化
- I2C_Configuration();
- OLED_Init();
- usmart_dev.init(SystemCoreClock/1000000); //初始化USMART
- OLED_CLS();
- Creat_Page();
- Show_Page(1);
- while(1)
- {
- OLED_ShowStr(120,h,"<",2);
- delay_ms(800);
- OLED_ShowStr(120,h," ",2);
- h=h+2;
- if(h>=8)
- {
- h=0;
- y++;
- if(y>=4)y=1;
- Show_Page(y);
- }
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
顯示界面.7z
(208.94 KB, 下載次數(shù): 152)
2019-6-10 00:22 上傳
點(diǎn)擊文件名下載附件
界面歷程
|
評(píng)分
-
查看全部評(píng)分
|