搜索
查看: 8947|回复: 9

[原创] STemWin上GUI_Builder和电阻触摸屏详细移植

[复制链接]

该用户从未签到

14

主题

55

帖子

28

蝴蝶豆

高级会员

最后登录
2019-12-24
发表于 2018-1-19 16:27:16 | 显示全部楼层 |阅读模式
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

回复

使用道具 举报

  • TA的每日心情
    开心
    2018-2-6 09:20
  • 签到天数: 1 天

    [LV.1]初来乍到

    1182

    主题

    4967

    帖子

    1

    蝴蝶豆

    论坛元老

    最后登录
    2020-3-17
    发表于 2018-1-22 09:51:38 | 显示全部楼层
    谢谢支持  
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13

    主题

    381

    帖子

    9

    蝴蝶豆

    金牌会员

    最后登录
    2020-11-12
    发表于 2018-1-22 17:42:45 | 显示全部楼层
    航顺芯片是哪家哦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14

    主题

    55

    帖子

    28

    蝴蝶豆

    高级会员

    最后登录
    2019-12-24
     楼主| 发表于 2018-1-22 17:50:56 | 显示全部楼层
    Veiko 发表于 2018-1-22 17:42
    航顺芯片是哪家哦

    航顺推广免费送的代码级完全兼容ST芯片的国产芯片,驱动和代码完全不用修改,还是非常好用
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13

    主题

    381

    帖子

    9

    蝴蝶豆

    金牌会员

    最后登录
    2020-11-12
    发表于 2018-1-22 17:52:44 | 显示全部楼层
    lvpeng-1619958 发表于 2018-1-22 17:50
    航顺推广免费送的代码级完全兼容ST芯片的国产芯片,驱动和代码完全不用修改,还是非常好用 ...

    不错哦,国产的,顶起
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    1002

    帖子

    363

    蝴蝶豆

    版主

    最后登录
    2021-4-15
    发表于 2018-1-23 15:45:45 | 显示全部楼层
    又是一个pin to pin,资料to资料的国产芯片?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14

    主题

    55

    帖子

    28

    蝴蝶豆

    高级会员

    最后登录
    2019-12-24
     楼主| 发表于 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
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    1002

    帖子

    363

    蝴蝶豆

    版主

    最后登录
    2021-4-15
    发表于 2018-1-25 10:40:05 | 显示全部楼层
    lvpeng-1619958 发表于 2018-1-24 09:39
    不光是pin to pin,代码完全移植,我觉得有点牛,我是在ST上开发的,然后直接download过来,就可以用,没 ...

    这种芯片,还是不要用在生产上了,无法保证,说不定那天就倒闭了!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    0

    蝴蝶豆

    新手上路

    最后登录
    2020-1-15
    发表于 2020-1-15 16:32:32 | 显示全部楼层
    有没有资料压缩包,发送一份来看一下。我最近在一直stemWin移植到l476上面:邮箱374034723@qq.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    1392

    帖子

    45

    蝴蝶豆

    金牌会员

    最后登录
    2021-8-25
    发表于 2020-5-15 09:15:00 | 显示全部楼层
    支持一下
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

    GMT+8, 2024-4-23 18:11 , Processed in 0.202711 second(s), 46 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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