你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STemWin上GUI_Builder和电阻触摸屏详细移植

[复制链接]
lvpeng-1619958 发布时间:2018-1-19 16:27
l 本文的设置前提是STemWin已经移植成功
l 感谢原子的电阻触摸例程
电阻触摸屏设置
一、准备TOUCH驱动文件
Touch.c touch.h:需包含基本触摸屏初始化程序(TP_Init())和读取坐标函数(TP_Read_XOY(CMD)CMD是命令)
二、添加GUI_X_Touch.cSTemWin
配置文件中的接口程序,只需配置以下两个函数:
int  GUI_TOUCH_X_MeasureX(void)
{
                return TP_Read_XOY(0XD0);  //CMD_RDX=0XD0,代表读取x轴命令
}
int  GUI_TOUCH_X_MeasureY(void)
{       
                return TP_Read_XOY(0X90);  //CMD_RDX=0X90,代表读取y轴命令
}
三、添加触摸校准(必须的一步)
本例子没有设置横屏显示,所以只在LCD_X_Confg()函数中添加了下面两行代码
GUI_TOUCH_Calibrate(GUI_COORD_X, 0, 239, TOUCH_AD_LEFT, TOUCH_AD_RIGHT);
GUI_TOUCH_Calibrate(GUI_COORD_Y, 0, 319, TOUCH_AD_TOP, TOUCH_AD_BOTTOM);
需提前手动define四个常量TOUCH_AD_LEFTTOUCH_AD_RIGHTTOUCH_AD_TOPTOUCH_AD_BOTTOM,触摸屏幕获取AD值得到,本例程中通过触摸左上和右下两个点获得这4个值
#define TOUCH_AD_LEFT 490 //触摸左上角x轴的AD(注意是AD值,也叫物理坐标)
#define TOUCH_AD_RIGHT 3717//触摸屏幕右下角边x轴的AD
#define TOUCH_AD_TOP 460  //触摸左上角y轴的AD
#define TOUCH_AD_BOTTOM 3831//触摸右上角y轴的AD
四、运行GUI_TOUCH_Exec()
本例程中是放在main函数while循环中执行
GUI_BUILDER使用
GUI_BUILDER路径:STemWinLibrary532\Software\GUIBuilder.exe
一、界面,双击打开
图片1.png
二、首先放置FrameWin或者Window,不然会提示没有parent dialog
图片2.png
放置一个framewin 和两个button
图片3.png
设置framwin参数,点击framewin空白处选中它,然后在左边编辑参数,例程中只设置了位置和显示屏大小。下图是按240x320屏幕设置。Button图标可以随意拉大。
图片4.png 图片5.png    
三、保存
配置好后,直接file->save,C文件就生成在GUI_builder同一个文件夹中了,下图中的FramewinDLG.c
图片6.png
四、移植和修改
FramewinDLG.c文件中的内容复制到GUIDEMO_Start.c当中,只需移植如下三部分内容:define,资源列表和回调函数
1.Define部分
/*********************************************************************
*
*       Defines
*
**********************************************************************
*/
#define ID_FRAMEWIN_0 (GUI_ID_USER + 0x00)
#define ID_BUTTON_0 (GUI_ID_USER + 0x01)
#define ID_BUTTON_1 (GUI_ID_USER + 0x02)
2.资源列表部分
/*********************************************************************
*
*       _aDialogCreate
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
  { FRAMEWIN_CreateIndirect, "Framewin", ID_FRAMEWIN_0, 1, 1, 240, 320, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_0, 11, 8, 146, 59, 0, 0x0, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_1, 12, 81, 136, 93, 0, 0x0, 0 },
};
3.回调函数部分
/*********************************************************************
*
*       _cbDialog
*/
static void _cbDialog(WM_MESSAGE * pMsg)
{
.
.
.
}
然后如下修改MainTask函数
void MainTask(void);
WM_HWIN Hdlg;
void MainTask(void)
{
  WM_SetCreateFlags(WM_CF_MEMDEV);
  GUI_Init();
  Hdlg = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
}
五、运行
Main函数中代码修改如下,然后编译下载运行了。
图片7.png
六、运行结果
通过触摸选中button按钮的图片
图片8.png 图片9.png

收藏 3 评论9 发布时间:2018-1-19 16:27

举报

9个回答
zero99 回答时间:2018-1-22 09:51:38
谢谢支持  
Veiko 回答时间:2018-1-22 17:42:45
航顺芯片是哪家哦
lvpeng-1619958 回答时间:2018-1-22 17:50:56
Veiko 发表于 2018-1-22 17:42
航顺芯片是哪家哦

航顺推广免费送的代码级完全兼容ST芯片的国产芯片,驱动和代码完全不用修改,还是非常好用
Veiko 回答时间:2018-1-22 17:52:44
lvpeng-1619958 发表于 2018-1-22 17:50
航顺推广免费送的代码级完全兼容ST芯片的国产芯片,驱动和代码完全不用修改,还是非常好用 ...

不错哦,国产的,顶起
MrJiu 回答时间:2018-1-23 15:45:45
又是一个pin to pin,资料to资料的国产芯片?
lvpeng-1619958 回答时间:2018-1-24 09:39:15
MrJiu 发表于 2018-1-23 15:45
又是一个pin to pin,资料to资料的国产芯片?

不光是pin to pin,代码完全移植,我觉得有点牛,我是在ST上开发的,然后直接download过来,就可以用,没做任何修改。之前我用GD的不得行,GD的要修改一点代码。
这航顺芯片 给的是R8,实际代码已经超过64K了,实验发现可以用到128K
MrJiu 回答时间:2018-1-25 10:40:05
lvpeng-1619958 发表于 2018-1-24 09:39
不光是pin to pin,代码完全移植,我觉得有点牛,我是在ST上开发的,然后直接download过来,就可以用,没 ...

这种芯片,还是不要用在生产上了,无法保证,说不定那天就倒闭了!!!
xiaolonghun 回答时间:2020-1-15 16:32:32
有没有资料压缩包,发送一份来看一下。我最近在一直stemWin移植到l476上面:邮箱374034723@qq.com
likang1202 回答时间:2020-5-15 09:15:00
支持一下

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版