搜索
bottom↓
12
返回列表 发新帖
楼主: miaoguoqiang

比较容易移植的uGUI,只有2个文件,分享一下

  [复制链接]

出0入0汤圆

发表于 2018-6-19 16:59:17 | 显示全部楼层
不错,支持下,我来学习下!

出0入0汤圆

发表于 2018-6-19 17:24:02 | 显示全部楼层
不错,来学习

出0入0汤圆

发表于 2018-6-21 11:57:05 | 显示全部楼层
测试了下目前还不会实现汉字显示跟数值显示输入。大家可以多交流交流!

出0入0汤圆

发表于 2018-11-13 22:36:27 | 显示全部楼层
不错,来学习

出0入0汤圆

发表于 2018-11-13 23:00:21 | 显示全部楼层
找个时间试试

出0入0汤圆

发表于 2018-11-29 22:20:08 | 显示全部楼层
miaoguoqiang 发表于 2018-5-7 12:05
简单例程:头文件自己包含

例程里的按键处理和主楼贴里的按键UG_Button_CLICK 参数数量不一致

出0入0汤圆

 楼主| 发表于 2018-11-30 09:42:07 | 显示全部楼层
cat_li 发表于 2018-11-29 22:20
例程里的按键处理和主楼贴里的按键UG_Button_CLICK 参数数量不一致

后来直接去掉了一个参数了。

出0入0汤圆

发表于 2018-11-30 10:18:57 | 显示全部楼层
厉害 啊 效果 很好啊

出0入0汤圆

发表于 2018-11-30 11:08:10 | 显示全部楼层
看我移植的效果~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2018-11-30 11:08:46 | 显示全部楼层
改成了8bt的屏~

出250入8汤圆

发表于 2018-12-2 14:38:12 | 显示全部楼层
ui 记号,好东东,学习下。

出0入0汤圆

发表于 2018-12-31 14:07:20 | 显示全部楼层
miaoguoqiang 发表于 2018-5-7 12:05
简单例程:头文件自己包含

ugui 加上窗口功能,编译后ro_data大小有114k,请问你的也是这样吗?

出0入0汤圆

发表于 2018-12-31 16:44:46 | 显示全部楼层

横屏怎么搞得

出0入0汤圆

发表于 2019-1-2 15:47:30 | 显示全部楼层

配置0X36寄存器,自己可以看下ILI9341 的datasheet~

出0入0汤圆

发表于 2019-1-3 18:11:54 | 显示全部楼层
收藏,感谢分享

出0入8汤圆

发表于 2019-1-4 18:52:55 | 显示全部楼层
请问楼主,用下面这些语句,还是输出不了,大家看看是怎么回事,文件编码已经改为UTF-8,与这个有关系吗   
UG_FontSelect (&FONT_8X12);
    UG_ConsoleSetBackcolor (COLOR_BLACK) ;
    UG_ConsoleSetForecolor ( COLOR_WHITE) ;
    UG_ConsolePutString ( "System i n i t i a l i z e d ! \n") ;
    UG_SetBackcolor (COLOR_BLACK);
    UG_SetForecolor (COLOR_RED);
    UG_PutChar ( 'X', 20, 20, COLOR_RED, COLOR_BLACK ) ;
    UG_PutString (0, 0, "uGUI Test");

出0入8汤圆

发表于 2019-1-5 07:14:29 来自手机 | 显示全部楼层
ziziy 发表于 2018-5-8 17:40
这个定义在config.h里面已经定义过,程序本身编译没错,但是运行到这一句时后面就代码就不运行了,字符也 ...

我现在字符也显示不出来,你当时是怎么解决的

出0入16汤圆

发表于 2019-1-5 14:45:40 来自手机 | 显示全部楼层
SUPER_CRJ 发表于 2018-5-5 15:41
谢谢分享,现在在用emWin,但是emWin暂时只能用在ARM内核中,这个日后可以使用在STM8,其它的单片机中。 ...

需要付费吗?做成产品的话

出590入992汤圆

发表于 2019-1-5 18:50:08 | 显示全部楼层
TigerFish 发表于 2019-1-5 14:45
需要付费吗?做成产品的话

STM32和NXP的都有与SEGGER合作,推出专用的ST-EMWIN和NXP-EMWIN,不需要付费

出0入0汤圆

 楼主| 发表于 2019-1-7 09:43:15 | 显示全部楼层
了无 发表于 2019-1-5 07:14
我现在字符也显示不出来,你当时是怎么解决的

首先保证移植的驱动是正常的,比如画点,画矩形函数正常。
其次,FONT_8X12必须已经定义。

出0入0汤圆

发表于 2019-1-7 10:29:58 | 显示全部楼层
谢谢分享,测试下。

出0入8汤圆

发表于 2019-1-7 10:48:31 | 显示全部楼层
miaoguoqiang 发表于 2019-1-7 09:43
首先保证移植的驱动是正常的,比如画点,画矩形函数正常。
其次,FONT_8X12必须已经定义。 ...

嗯,问题已经找到了,是文件格式或者编辑器的问题,把代码中的回车搞掉了,导致好多行代码被//  给错误注释掉了

出0入0汤圆

发表于 2019-1-8 09:20:37 | 显示全部楼层

你好,请问横竖屏切换是怎么实现的?

出0入0汤圆

发表于 2019-1-8 09:23:20 | 显示全部楼层
楼主,请问怎么做横屏竖屏切换?

出0入0汤圆

发表于 2019-1-8 09:52:19 | 显示全部楼层
路过,了解了。

出0入0汤圆

 楼主| 发表于 2019-1-8 11:09:34 | 显示全部楼层
ZBLAMDZ 发表于 2019-1-8 09:23
楼主,请问怎么做横屏竖屏切换?

横竖,是你自己驱动初始化更改的,修改横竖之后,写上对应的分辨率长宽就行了。

出0入0汤圆

发表于 2019-1-8 13:19:24 | 显示全部楼层
有没有界面编辑的上位机软件,在代码里算位置太累

出0入0汤圆

发表于 2019-1-9 08:50:17 | 显示全部楼层
收藏,这个真的是简洁。

出0入36汤圆

发表于 2019-1-11 00:19:22 来自手机 | 显示全部楼层
请教楼主,注册画线函数的话,画斜线是不是还得搞个算法?

出0入0汤圆

 楼主| 发表于 2019-1-11 10:21:47 | 显示全部楼层
redworlf007 发表于 2019-1-11 00:19
请教楼主,注册画线函数的话,画斜线是不是还得搞个算法?

你提供的画线函数肯定是得支持任意两点之间的画线。如果用不上斜线,就提供直线的就可以了,把 x或y坐标统一

出0入36汤圆

发表于 2019-1-11 15:44:09 | 显示全部楼层
miaoguoqiang 发表于 2019-1-11 10:21
你提供的画线函数肯定是得支持任意两点之间的画线。如果用不上斜线,就提供直线的就可以了,把 x或y坐标 ...

你看这个函数 void UG_DrawLine( UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_COLOR c )


   /* Is hardware acceleration available? */
   if ( gui->driver[DRIVER_DRAW_LINE].state & DRIVER_ENABLED )
   {
      if( ((UG_RESULT(*)(UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_COLOR c))gui->driver[DRIVER_DRAW_LINE].driver)(x1,y1,x2,y2,c) == UG_RESULT_OK ) return;
   }

   dx = x2 - x1;
   dy = y2 - y1;
   dxabs = (dx>0)?dx:-dx;
   dyabs = (dy>0)?dy:-dy;
   sgndx = (dx>0)?1:-1;
   sgndy = (dy>0)?1:-1;
   x = dyabs >> 1;
   y = dxabs >> 1;
   drawx = x1;
   drawy = y1;

   gui->pset(drawx, drawy,c);

如果没有注册硬件画线函数,就用他里面的自带的画线函数,所以注册了描点函数后,就不用注册画线函数也可以的,不知道我说的对不对。

出0入0汤圆

 楼主| 发表于 2019-1-12 12:47:40 | 显示全部楼层
redworlf007 发表于 2019-1-11 15:44
你看这个函数 void UG_DrawLine( UG_S16 x1, UG_S16 y1, UG_S16 x2, UG_S16 y2, UG_COLOR c )

是的。用自己的画线函数 可以优化一下画横竖线算法。

出0入36汤圆

发表于 2019-1-15 17:51:03 | 显示全部楼层
miaoguoqiang 发表于 2019-1-12 12:47
是的。用自己的画线函数 可以优化一下画横竖线算法。

请教一下楼主,我用的是SSD1322的驱动芯片,每4位表示一个像素,每个像素就是16级灰度。

UG_Init( &gui, (void (*)(UG_S16,UG_S16,UG_COLOR))Draw_Point, 256, 64 );

这个里面的UG_COLOR 怎么处理?

出0入0汤圆

发表于 2019-1-16 09:46:25 | 显示全部楼层
看起来不错!感谢分享!

出0入0汤圆

 楼主| 发表于 2019-1-16 10:35:47 | 显示全部楼层
redworlf007 发表于 2019-1-15 17:51
请教一下楼主,我用的是SSD1322的驱动芯片,每4位表示一个像素,每个像素就是16级灰度。

UG_Init( &gui, ...

只能自己写算法了。给你贴一个RGB转灰度的算法。

方法一:
    对于彩色转灰度,有一个很著名的心理学公式:

                          Gray = R*0.299 + G*0.587 + B*0.114

方法二:

     而实际应用时,希望避免低速的浮点运算,所以需要整数算法。
     注意到系数都是3位精度的没有,我们可以将它们缩放1000倍来实现整数运算算法:

                          Gray = (R*299 + G*587 + B*114 + 500) / 1000

     RGB一般是8位精度,现在缩放1000倍,所以上面的运算是32位整型的运算。注意后面那个除法是整数 除法,所以需要加上500来实现四舍五入。
      就是由于该算法需要32位运算,所以该公式的另一个变种很流行:

                          Gray = (R*30 + G*59 + B*11 + 50) / 100

方法三:

上面的整数算法已经很快了,但是有一点仍制约速度,就是最后的那个除法。移位比除法快多了,所以可以将系数缩放成2的整数幂。
习惯上使用16位精度,2的16次幂是65536,所以这样计算系数:

                          0.299 * 65536 = 19595.264 ≈ 19595
                          0.587 * 65536 + (0.264) = 38469.632 + 0.264 = 38469.896 ≈ 38469
                          0.114 * 65536 + (0.896) =   7471.104 + 0.896 = 7472

可能很多人看见了,我所使用的舍入方式不是四舍五入。四舍五入会有较大的误差,应该将以前的计算结果的误差一起计算进去,舍入方式是去尾法:

写成表达式是:

                          Gray = (R*19595 + G*38469 + B*7472) >> 16

2至20位精度的系数:

                          Gray = (R*1 + G*2 + B*1) >> 2
                          Gray = (R*2 + G*5 + B*1) >> 3
                          Gray = (R*4 + G*10 + B*2) >> 4
                          Gray = (R*9 + G*19 + B*4) >> 5
                          Gray = (R*19 + G*37 + B*8) >> 6
                          Gray = (R*38 + G*75 + B*15) >> 7
                          Gray = (R*76 + G*150 + B*30) >> 8
                          Gray = (R*153 + G*300 + B*59) >> 9
                          Gray = (R*306 + G*601 + B*117) >> 10
                          Gray = (R*612 + G*1202 + B*234) >> 11
                          Gray = (R*1224 + G*2405 + B*467) >> 12
                          Gray = (R*2449 + G*4809 + B*934) >> 13
                          Gray = (R*4898 + G*9618 + B*1868) >> 14
                          Gray = (R*9797 + G*19235 + B*3736) >> 15
                          Gray = (R*19595 + G*38469 + B*7472) >> 16
                          Gray = (R*39190 + G*76939 + B*14943) >> 17
                          Gray = (R*78381 + G*153878 + B*29885) >> 18
                          Gray = (R*156762 + G*307757 + B*59769) >> 19
                          Gray = (R*313524 + G*615514 + B*119538) >> 20

仔细观察上面的表格,这些精度实际上是一样的:3与4、7与8、10与11、13与14、19与20
所以16位运算下最好的计算公式是使用7位精度,比先前那个系数缩放100倍的精度高,而且速度快:

                          Gray = (R*38 + G*75 + B*15) >> 7

其实最有意思的还是那个2位精度的,完全可以移位优化:

                          Gray = (R + (WORD)G<<1 + B) >> 2

出0入0汤圆

发表于 2019-1-18 21:23:48 | 显示全部楼层
这个不错,搞来试试先。

出0入0汤圆

发表于 2019-1-23 17:28:20 | 显示全部楼层
楼主,您好!冒昧请教您一个问题。
小菜我在移植楼主推荐的uGui使用时发现,一个页面需要定时刷新是时候(刷新内容比较多),会出现轻微的闪屏现象,楼主可否遇到?
接口用的硬件FSMC(主频72M)

出0入12汤圆

发表于 2019-1-23 19:07:17 | 显示全部楼层

用cfree5.0+ege15.04环境模拟了一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-1-23 20:16:57 | 显示全部楼层
谢谢,分享

出0入20汤圆

发表于 2020-4-12 20:48:12 | 显示全部楼层
很不错啊,有空试试,谢谢分享

出0入0汤圆

发表于 2020-4-13 13:24:14 | 显示全部楼层
谢谢分享!!!

出0入0汤圆

发表于 2020-4-13 16:03:49 | 显示全部楼层
谢谢分享!!!

出0入0汤圆

发表于 2020-12-17 17:28:31 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2020-12-17 18:58:28 | 显示全部楼层
这个真有可能用得上,先mark,再说谢谢!

出0入0汤圆

发表于 2020-12-17 23:02:15 | 显示全部楼层
谢谢楼主分享!

出0入0汤圆

发表于 2021-1-28 14:13:29 | 显示全部楼层
不错,来学习

出0入0汤圆

发表于 2021-1-29 10:58:28 | 显示全部楼层
谢谢楼主分享,下载来学习学习。

出0入0汤圆

发表于 2021-2-4 10:08:08 | 显示全部楼层
轻量级,可以

出0入0汤圆

发表于 2021-5-18 20:25:31 | 显示全部楼层
为啥我的划线,画点可以,就是出现不了窗口和按钮呢?

出0入0汤圆

发表于 2021-5-31 14:03:02 | 显示全部楼层
只有2个文件啊  希望以后能用上

出0入0汤圆

发表于 2021-7-2 16:15:45 | 显示全部楼层
短小精干,这个GUI的确不错,可朔空间很大,也容易切入

出75入8汤圆

发表于 2021-11-13 08:31:07 | 显示全部楼层
不错,后面看看.

出0入0汤圆

发表于 2021-11-18 16:49:23 | 显示全部楼层
有移植代码吗?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 17:57

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表