打印
[RISC-V MCU 创新应用比赛]

沁恒 CH32V103 12864 仿电脑风格 UI 界面

[复制链接]
3225|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
想着给12864写个UI界面的,使用的是IIC接口12864液晶屏,节省了IO口但是液晶数据无法读回来,所以就在单片机中开辟了一个[8][128]数组,用了1k的RAM显存图像数据。
写了windows风格界面的窗体,支持 标题前插入图标,标题,最大化、最小化、叉叉图标。
支持任意大小横向进度条。
支持按钮,按钮标题,按钮按下放开效果。
支持文本下拉条,可显示在上下左右,自适应窗体大小。
支持多窗体显示,移动窗体,后面的窗体会覆盖前面的。



加入内存卡中文字库支持后,可以直接显示中文字符。

                      gs_form.Left = 0;
                      gs_form.Top = 0;
                      gs_form.Width = 128;
                      gs_form.Height = 64;
                      gs_form.BorderWidth = 2;
                      gs_form.Caption = "Main Form";
                      gs_form.CaptionHeight = 10;
                      gs_form.State = MinButton | MaxButton | EndButton;
                      gs_form.Style = 0;
                      gs_form.Icon = 1;
                      wzGUI_DrawForm(&gs_form);

                      gs_scrobar.direction = 0;
                  wzGUI_DrawScrollBar(&gs_form,&gs_scrobar);
                  wzGUI_DrawScrollBarSet(&gs_form,&gs_scrobar,4,2);

                  gs_button.x = 1;
                  gs_button.y = 10;
                  gs_button.width = 27;
                  gs_button.hight = 11;
                  gs_button.caption = "Menu";
                  wzGUI_DrawButton(&gs_form,&gs_button);

                  gs_button.x = 30;
                  gs_button.y = 10;
                  gs_button.width = 26;
                  gs_button.hight = 11;
                  gs_button.caption = "Set";
                  wzGUI_DrawButton(&gs_form,&gs_button);

                  gs_button.x = 58;
                  gs_button.y = 10;
                  gs_button.width = 27;
                  gs_button.hight = 11;
                  gs_button.caption = "Come";
                  wzGUI_DrawButton(&gs_form,&gs_button);

                  gs_button.x = 87;
                  gs_button.y = 10;
                  gs_button.width = 27;
                  gs_button.hight = 11;
                  gs_button.caption = "Home";
                  wzGUI_DrawButton(&gs_form,&gs_button);

                  wzGUI_DrawButtonDone(&gs_form,&gs_button);

                  gs_probar.x = 6;
                  gs_probar.y = 2;
                  gs_probar.width = 102;
                  gs_probar.hight = 5;
                  wzGUI_DrawProgressBar(&gs_form,&gs_probar);
                  wzGUI_DrawProgressBarSet(&gs_form,&gs_probar,80);

                  gs_form.Left = 5;
                  gs_form.Top = 29;
                  gs_form.Width = 110;
                  gs_form.Height = 31;
                  gs_form.BorderWidth = 1;
                  gs_form.Caption = "MsgBox";
                  gs_form.CaptionHeight = 10;
                  gs_form.State = EndButton;
                  gs_form.Style = 0;
                  gs_form.Icon = 0;
                  wzGUI_DrawForm(&gs_form);

                  DispBuf_SetFont(12);
                  DispBuf_SetXY(20,43);
                  DispBuf_Str("南京沁恒RISC-V");

                      OLED_SSD1306_DisBuf(gd_DispBuf);


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

104

帖子

0

粉丝