当前位置:首页 > 公众号精选 > 小熊派开源社区
[导读]现在市面上有很多成熟的GUI,对STemWin也是闻名许久了,今天我们就带大家来在小熊派上移植开源GUISTemWin。废话不多说,先上效果图:该Demo用GUIBuilder工具画了一个Listview的控件以及三个Text控件以及一个Image控件,最后保存生成代码拷贝到Ke...

在市面上有很多成熟的GUI,对STemWin也是闻名许久了,今天我们就带大家来在小熊派上移植开源GUI STemWin。

废话不多说,先上效果图:


该Demo用GUIBuilder工具画了一个Listview的控件以及三个Text控件以及一个Image控件,最后保存生成代码拷贝到Keil MDK后编译下载到小熊派上运行。

1、STemWin简介

STemWin是SEGGER公司授权给意法半导体(ST)公司,使用ST芯片的用户可免费使用STemWin,关于STemWin的显示效果,有兴趣的可自行百度搜索查看。

1.1 下载并熟悉官网最新版本的STemWin


解压后得到以下目录,移植STemWin最主要关心的是Libraies目录下的与STemWin相关的库文件,其它的多数是ST官网的一些Demo例程,暂时用不着,如下图所示:

简单介绍下以下几个目录:

2、小熊派移植STemWin

2.1 移植STemWin到小熊派

2.1.1 添加STemWin软件包到带LCD的基础工程

首先需要一个源码工程,这个直接从小熊派源码包拿就行了,不需要重新去写,我们本次移植的是不带操作系统的。

解压,然后在工程目录下创建两个和STemWin相关的目录:

将1.1下载的STemWin软件包整个拷贝到STemWin这个目录下。

2.1.2 添加STemWin相关库及文件到Keil MDK


这个app.c用来存放GUIBuilder软件生成的代码,最后通过调用STemWin的CreateWindow函数来展示界面。

2.1.3 修改STemWin所需要的内存空间

位于GUIConf.c文件:

#define GUI_NUMBYTES (16*1024)//0x200000 //设置EMWIN内存大小
注意:如果该参数设置太大的话Keil会报空间不够的错误,这里我们根据需求,将其设置为16*1024即可,它分配的其实是一块静态连续的内存空间:

2.1.4 配置LCD及STemWin相关

位于LCDConf_FlexColor_Template.c文件:

在这个文件中,我们需要包含LCD驱动文件,小熊派已经实现好了,我们直接拿过来用就行了。

#inlcude "lcd.h"
注意lcd.h中并没有写命令和写数据的函数声明,这里我们需要将lcd.c修改一下,然后在lcd.h导出这两个函数,才能给LCDConf_FlexColor_Template.c使用。

(1)修改LCD显示分辨率

//更改显示分辨率
#define XSIZE_PHYS 240 // To be adapted to x-screen size
#define YSIZE_PHYS 240 // To be adapted to y-screen size

(2)实现写指令、写数据、写多个数据、读多个数据接口

注意,官方给的模板默认是一次2个字节的写入,而小熊派LCD是SPI OLED(ST7789),实现的接口是一次只写1个字节的数据,所以我们要将接口改成1个字节的写入,否则显示会有问题。 

/********************************************************************
*
* LcdWriteReg 写寄存器
*
* Function description:
* Sets display register
*/
static void LcdWriteReg(U8 Data)
{
// ... TBD by user
LCD_Write_Cmd(Data);
}

/********************************************************************
*
* LcdWriteData 写数据
*
* Function description:
* Writes a value to a display register
*/
static void LcdWriteData(U8 Data)
{
// ... TBD by user
LCD_Write_Data(Data);
}

/********************************************************************
*
* LcdWriteDataMultiple 写多个数据
*
* Function description:
* Writes multiple values to a display register.
*/
static void LcdWriteDataMultiple(U8 * pData, int NumItems)
{
while (NumItems--)
{
// ... TBD by user
LCD_Write_Data(*pData );
}
}

/********************************************************************
*
* LcdReadDataMultiple 读多个点
*
* Function description:
* Reads multiple values from a display register.
*/
static void LcdReadDataMultiple(U8 * pData, int NumItems)
{
while (NumItems--)
{
// ... TBD by user
//没有读点函数,留空
}
}

(3)修改LCD_X_Config函数

void LCD_X_Config(void)
{
GUI_DEVICE * pDevice;
CONFIG_FLEXCOLOR Config = {0};
GUI_PORT_API PortAPI = {0};
// Set display driver and color conversion
pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_M565, 0, 0);
// Display driver configuration, required for Lin-driver
LCD_SetSizeEx (0, XSIZE_PHYS, YSIZE_PHYS);
LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS);
// Orientation
//Config.Orientation = GUI_SWAP_XY | GUI_MIRROR_Y;
Config.Orientation = 0 ;
Config.NumDummyReads = 2;
GUIDRV_FlexColor_Config(pDevice,
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

业内消息,近日马斯克旗下 AI 初创企业 xAI 发布新闻稿,宣布正在开源 3140 亿参数的混合专家模型 Grok-1,该模型遵循 Apache 2.0 协议开放模型权重和架构,号称是“迄今为止全球参数量最大的开源大语...

关键字: 马斯克 大模型 开源 OpenAI ChatGPT xAI Grok-1 Grok

开源免专利芯片技术RISC-V成为美中科技战的新战场。华盛顿过去几个月一直在讨论限制中国获取RISC-V技术,认为中国利用RISC-V绕过了美国对华芯片出口管制。上个月众议院一个委员会建议成立一个跨部门政府委员会研究RI...

关键字: RISC-V 开源

众所周知,寒武纪是地球生物大爆发的一个关键期。寒武纪地球气候发生了明显的变化,从冰期转变为了温暖的温带气候,为生物提供了良好的生存环境,从而促进了生物的大量繁殖和多样化,而这种生物学上的进化和开源软件的发展有着异曲同工之...

关键字: 开源 寒武纪 处理器

北京2023年9月22日 /美通社/ -- 华为全联接大会2023期间,华为举办了"昇思MindSpore AI框架:引领大模型&科学智能原生创新"主题论坛,软通动力数字化创新服务线高级副总裁...

关键字: DSP AI 模型 开源

北京2023年9月22日 /美通社/ -- 随着人工智能、云计算等技术的快速发展,算力需求爆发,服务器设计呈现多元异构特征,如何快速适配多种通用计算处理器、多种异构加速器和各类部件,实现服务器高效、稳定、可靠运行,对服务...

关键字: 三星 开源 英特尔 PEN

北京2023年9月18日 /美通社/ -- 9月17日,828 B2B企业节软通动力主题日,第二届软通动力"917转型"企动日峰会以"云上新生态,数智新动力"为主题在北京软通动力总...

关键字: 华为云 数字化 石墨 开源

(全球TMT2023年9月12日讯)近日,2023中国国际数字经济博览会数字雄安论坛在石家庄国际会展中心举办。软通动力子公司鸿湖万联受邀参加本次论坛,软通动力集团高级副总裁、鸿湖万联的总经理秦张波代表鸿湖万联分别与雄安...

关键字: 鸿蒙 开源 操作系统 闸机

北京2023年9月12日 /美通社/ -- 近日,以"智能 绿色 创新 -- 打造未来典范之城"为主题的2023中国国际数字经济博览会数字雄安论坛在石家庄国际会展中心举办。作为开源生态的先锋军,软通动...

关键字: 开源 鸿蒙 操作系统 闸机

深圳2023年9月8日 /美通社/ -- 近日,超算领域国际顶级会刊SC23公布了论文入选名单,由微众银行区块链团队发表的论文——《FISCO-BCOS:An Enterprise-grade Permissioned...

关键字: 区块链 OS 开源 联盟链

北京2023年8月31日 /美通社/ -- "大模型的未来在于行业应用",对此业界已经达成了共识,下一步则是如何将大模型在行业中落地。 于是,我们能够看到,既前一阶段的基础大模型之后,近来又掀起了行...

关键字: 模型 ICT 开源 IDC
关闭
关闭