[RISC-V MCU 创新应用比赛] 沁恒 CH32V103 12864 仿电脑风格 UI 界面

[复制链接]
3435|0
 楼主| gtbestom 发表于 2021-8-15 19:54 | 显示全部楼层 |阅读模式
想着给12864写个UI界面的,使用的是IIC接口12864液晶屏,节省了IO口但是液晶数据无法读回来,所以就在单片机中开辟了一个[8][128]数组,用了1k的RAM显存图像数据。
写了windows风格界面的窗体,支持 标题前插入图标,标题,最大化、最小化、叉叉图标。
支持任意大小横向进度条。
支持按钮,按钮标题,按钮按下放开效果。
支持文本下拉条,可显示在上下左右,自适应窗体大小。
支持多窗体显示,移动窗体,后面的窗体会覆盖前面的。

662356118ff5ca29fd.png

228246118ff8b3c723.png

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

  1.                       gs_form.Left = 0;
  2.                       gs_form.Top = 0;
  3.                       gs_form.Width = 128;
  4.                       gs_form.Height = 64;
  5.                       gs_form.BorderWidth = 2;
  6.                       gs_form.Caption = "Main Form";
  7.                       gs_form.CaptionHeight = 10;
  8.                       gs_form.State = MinButton | MaxButton | EndButton;
  9.                       gs_form.Style = 0;
  10.                       gs_form.Icon = 1;
  11.                       wzGUI_DrawForm(&gs_form);

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

  15.                   gs_button.x = 1;
  16.                   gs_button.y = 10;
  17.                   gs_button.width = 27;
  18.                   gs_button.hight = 11;
  19.                   gs_button.caption = "Menu";
  20.                   wzGUI_DrawButton(&gs_form,&gs_button);

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

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

  33.                   gs_button.x = 87;
  34.                   gs_button.y = 10;
  35.                   gs_button.width = 27;
  36.                   gs_button.hight = 11;
  37.                   gs_button.caption = "Home";
  38.                   wzGUI_DrawButton(&gs_form,&gs_button);

  39.                   wzGUI_DrawButtonDone(&gs_form,&gs_button);

  40.                   gs_probar.x = 6;
  41.                   gs_probar.y = 2;
  42.                   gs_probar.width = 102;
  43.                   gs_probar.hight = 5;
  44.                   wzGUI_DrawProgressBar(&gs_form,&gs_probar);
  45.                   wzGUI_DrawProgressBarSet(&gs_form,&gs_probar,80);

  46.                   gs_form.Left = 5;
  47.                   gs_form.Top = 29;
  48.                   gs_form.Width = 110;
  49.                   gs_form.Height = 31;
  50.                   gs_form.BorderWidth = 1;
  51.                   gs_form.Caption = "MsgBox";
  52.                   gs_form.CaptionHeight = 10;
  53.                   gs_form.State = EndButton;
  54.                   gs_form.Style = 0;
  55.                   gs_form.Icon = 0;
  56.                   wzGUI_DrawForm(&gs_form);

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

  60.                       OLED_SSD1306_DisBuf(gd_DispBuf);


您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

114

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部