当前位置:首页 > 物联网 > 小熊派开源社区
[导读]现在市面上有很多成熟的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,
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

企业级AI操作系统将上下文、编排与执行相统一,赋能受管控的AI员工自主化、规模化地完成真实业务任务。 集成语音AI的AI OS支持超低延迟下的自然语音交互...

关键字: COM MOTION NVIDIA 开源

上海2026年1月8日 /美通社/ -- 北京时间2026年1月8日,启明创投投资企业、中国通用人工智能(AGI)的开拓者与引领者智谱成功登陆港交所,成为“全球大模型第一股”。智谱(02513.HK)发行价为116.20...

关键字: 模型 LM 开源 多模

北京2025年12月22日 /美通社/ -- 近日,软通动力旗下自主品牌软通华方正式发布开源鸿蒙智慧屏新品,这款搭载软通天鸿操作系统6的商显大屏,以"硬件+系统+应用"全栈国产化架构添补了行业空白,成...

关键字: 开源 智慧屏 全栈 鸿蒙

北京2025年12月22日 /美通社/ -- 近日,软通动力在自主创新产品发布会上正式发布"软通天鸿操作系统6"。该操作系统由软通动力子公司鸿湖万联基于OpenHarmony社区版深度定制而成,是一款...

关键字: 开源 操作系统 全栈 鸿蒙

北京2025年12月22日 /美通社/ -- 12月20日晚,中央广播电视总台与广东省人民政府联合主办,深圳市人民政府、央视频、总台广东总站共同承办的《鸿蒙星光盛典》,正式在CCTV-2、CCTV-3、央视频、央视新闻、...

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

北京2025年12月18日 /美通社/ -- 12月17日,软通动力在北京隆重举办"开源鸿蒙•智绘未来"主题发布会,正式推出软通天鸿操作系统6与软通华方开源鸿蒙智慧屏两款核心产品。本次活动通过产品发布...

关键字: 开源 鸿蒙 智慧屏 OS

上海2025年12月16日 /美通社/ -- 12月15日-16日,2025中国汽车软件大会于上海嘉定开幕。会上,行业首个覆盖自动驾驶全栈的开源中间件——天元OS跨域中间件正式全栈开源发布,黑芝麻智能作为共建单位,黑芝麻...

关键字: 开源 中间件 全栈 OS

北京2025年11月10日 /美通社/ -- 11月6日至9日,2025年世界互联网大会乌镇峰会在中国浙江乌镇成功举办。历经十一年发展,乌镇峰会已成为在中国举办的规模最大、层...

关键字: AI IBM 开源 智能体

北京2025年11月10日 /美通社/ -- 11月6日至9日,2025年世界互联网大会乌镇峰会在中国浙江乌镇成功举办。历经十一年发展,乌镇峰会已成为在中国举办的规模最大、层...

关键字: IBM 开源 AI 智能体

江苏昆山2025年10月23日 /美通社/ -- 第十八届中国纸业发展大会在青岛盛大开幕,400余位行业领袖与专家共襄盛会,共话纸业的可持续未来。作为大会首日晚宴环节,"福伊特之夜"以主题 "...

关键字: XCELL 可持续发展 人工智能 开源
关闭