本帖最后由 837877663 于 2019-6-12 08:58 编辑
用STM32驱动0.96寸OLED显示屏显示界面的程序,让大家的界面更规则好看
单片机源程序如下:
- #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;
- //创建三个页面
- 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状态设置函数
- void led_set(u8 sta)
- {
- LED1=sta;
- }
- //函数参数调用测试函数
- void test_fun()
- {
- OLED_DrawBMP(0,0,128,8,(unsigned char *)BMP1);
- }
- int main(void)
- {
- u8 h=0,y=0;
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
- 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);
- }
- }
- }
复制代码
所有资料51hei提供下载:
显示界面.7z
(208.94 KB, 下载次数: 152)
|