硬汉嵌入式论坛

 找回密码
 立即注册
查看: 8791|回复: 18
收起左侧

[ThreadX全家桶] FMC屏支持ThreadX GUIX移植说明

  [复制链接]

1

主题

12

回帖

15

积分

新手上路

积分
15
发表于 2021-2-28 07:54:22 | 显示全部楼层 |阅读模式
硬汉哥,有没有考虑做一个支持FMC屏的Thread GUI移植说明,出于成本考虑好多项目也不需要用到LTDC和外置SDRAM的,内置资源就可以用上GUI也是一件美事。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2021-2-28 11:07:55 | 显示全部楼层
教程里面的OLED移植章节就是FMC驱动的

第3版emWin教程和ThreadX GUIX教程开工,双管齐下,GUIX更新至第23章(2021-02-07)
https://forum.anfulai.cn/forum.p ... 8429&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2021-2-28 13:21:43 | 显示全部楼层
谢谢,书是从前往后看,还是要看目录才行
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2021-2-28 20:47:10 | 显示全部楼层
再请教下,FMC是只能一个点一个点来画图吗,后面能不能用到DMA2D?
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2021-3-2 17:21:40 | 显示全部楼层
硬汉哥,你好。我基于V7-2021_GUIX OLED移植的程序,硬件是STM32H750VBT,用16位的FMC接口驱动480x320、RGB666的屏,初始化是可以正常点亮屏的(见图片1),但是用GUI驱动就总是显示黑屏(见图片2)。因为内置的内存不够,现在的GUI是设置为240x320的。
上传了代码,能不能帮检查一下是哪里的问题,谢谢。
另外还有几点疑问:1、屏是RGB666的时候也是选用16bpp吗?
2、如果用内置SRAM是不是要修改STM32_SCREEN_HANDLE   到0x24000000?
#define STM32_SCREEN_HANDLE   0x24000000 //LLG 0xC0000000
3、通过串口或是进入仿真状态看到的display_1_canvas_memory内容都是0x0,不知这样获取数据对不对。


1-bsp正常.png
2-gui不正常.png
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2021-3-2 17:55:21 | 显示全部楼层
上传不了附件,主要是怀疑这个


/* 获得OLED画布的地址 */
    p = (uint16_t *)display_1_canvas_memory;//LLG
   
//    p = (uint8_t *)display_1_canvas_memory;
   
    /* 将画布的内容绘制到OLED显存 */
    #if 1  //LLG
    for (x = 0 ; x< LCD_HEIGHT; x++)
    {
        for (y = 0 ; y < LCD_WIDTH; y++)
        {
//            OLED_PutPixel(x, y, 0xffff);//LLG用此句可以正常点亮屏
            OLED_PutPixel(x, y, *p++);//LLG用此句则全是黑屏
            if(x==0 && y==0)
            {
//                printf("stm32_monochrome_buffer_toggle start ,*p++=0x%x\r\n",*p);//打印出来全是0
            }
        }
    }
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2021-3-3 09:43:10 | 显示全部楼层
scnullg 发表于 2021-3-2 17:55
上传不了附件,主要是怀疑这个

这样的话,可以参考给我们V5板子做的例子,这个你参考应该还方便些

https://forum.anfulai.cn/forum.p ... hlight=%D7%BC%B1%B8



回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2021-3-3 15:49:20 | 显示全部楼层
好的,刚刚试出来了,要用这个函数才可以
_gx_display_driver_1555xrgb_setup(display, (VOID*)STM32_SCREEN_HANDLE, stm32_monochrome_buffer_toggle);

V5用的就是FMC,确实更适合些,谢谢硬汉哥。
回复

使用道具 举报

11

主题

705

回帖

738

积分

金牌会员

积分
738
发表于 2021-3-3 16:56:24 | 显示全部楼层
scnullg 发表于 2021-3-3 15:49
好的,刚刚试出来了,要用这个函数才可以
_gx_display_driver_1555xrgb_setup(display, (VOID*)STM32_SCRE ...

请教一下,移植到H750只用了内部RAM吗?
回复

使用道具 举报

1

主题

12

回帖

15

积分

新手上路

积分
15
 楼主| 发表于 2021-3-3 17:48:19 | 显示全部楼层
是的,现在只是用240x320的屏,分辨率太大的话内存就不够用了
回复

使用道具 举报

10

主题

100

回帖

130

积分

初级会员

积分
130
发表于 2021-4-23 11:24:02 | 显示全部楼层
昨天尝试移植ThreadX和GUIX!差点失败,最后看到这个帖子终于成功!
为了节省编译时间,都是采用库移植。
成功使用GUIX Studio 生成的文件显示了一个窗口,一个按钮,一个文字。
生成的总文件将近120KB,对于我们做小项目的来说太奢侈!
想请教一下老大,可以单独使用它的画板,自己绘图来实现自己的窗口吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2021-4-24 11:01:14 | 显示全部楼层
`dc2018 发表于 2021-4-23 11:24
昨天尝试移植ThreadX和GUIX!差点失败,最后看到这个帖子终于成功!
为了节省编译时间,都是采用库移植。
...

可以做裁剪,默认我发的例子都没有做裁剪,看下map文件,做个优化比较方便。
回复

使用道具 举报

10

主题

100

回帖

130

积分

初级会员

积分
130
发表于 2021-4-25 08:21:01 | 显示全部楼层
eric2013 发表于 2021-4-24 11:01
可以做裁剪,默认我发的例子都没有做裁剪,看下map文件,做个优化比较方便。

谢谢!
昨天又瞎捣鼓了一天!
本来冲着GUIX的强大绘图功能来的,
结果发现并没有想象中强!
比如不可以绘制渐变弧形,没有高分辨率坐标功能(导致绘制多叶片弧形,丑的一败涂地)
画圆不可以渐变填充。
优点就是能快速设计好窗口框架。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2021-4-25 09:09:16 | 显示全部楼层
`dc2018 发表于 2021-4-25 08:21
谢谢!
昨天又瞎捣鼓了一天!
本来冲着GUIX的强大绘图功能来的,

你说的圆弧渐变色什么的,都没问题。

之前我做的移植:

ThreadX GUIX在STM32H7上的极速刷屏体验
https://v.qq.com/x/page/b09804xtvda.html
回复

使用道具 举报

0

主题

48

回帖

48

积分

新手上路

积分
48
发表于 2021-4-25 09:29:46 | 显示全部楼层
eric2013 发表于 2021-4-25 09:09
你说的圆弧渐变色什么的,都没问题。

之前我做的移植:

圆弧渐变色目前还不支持,demo里的圆弧渐变是通过图片实现的。
回复

使用道具 举报

10

主题

100

回帖

130

积分

初级会员

积分
130
发表于 2021-4-25 10:14:57 | 显示全部楼层
eric2013 发表于 2021-4-25 09:09
你说的圆弧渐变色什么的,都没问题。

之前我做的移植:

老大!
可以帮我看看怎么实现高分辨坐标功能吗?这个弧形是红色4度,间隔4度,已开机抗锯齿,绘制出来 有的大,有的小,很不一致。
在emwin如果不启用高分辨率坐标,也是出现这个问题。
这个GUIX应该如何解决呢?

今天早上我还研究了一下AppWizard发现跟GUIX Studio 不在一个级别,果断放弃了。

另外有GUIX的所有绘图函数使用实例说明吗?
我去官网也没找到有,英文不太好

高密度弧形绘制

高密度弧形绘制

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2021-4-26 12:13:20 | 显示全部楼层
Ting 发表于 2021-4-25 09:29
圆弧渐变色目前还不支持,demo里的圆弧渐变是通过图片实现的。

对,是图片。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2021-4-26 12:15:55 | 显示全部楼层
`dc2018 发表于 2021-4-25 10:14
老大!
可以帮我看看怎么实现高分辨坐标功能吗?这个弧形是红色4度,间隔4度,已开机抗锯齿,绘制出来  ...

你这个还是直接贴图方便。绘制太慢了。

https://docs.microsoft.com/en-us/azure/rtos/guix/chapter-4
回复

使用道具 举报

1

主题

71

回帖

74

积分

初级会员

积分
74
发表于 2022-1-21 14:14:56 | 显示全部楼层
GUIX移植必需用显存那么大的内存做画布吗?这样对小内存,带显存的大屏不大友好。
emwin lvgl 都没有这样 的需求。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-15 07:32 , Processed in 0.051520 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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