l 本文的设置前提是STemWin已经移植成功 l 感谢原子的电阻触摸例程 电阻触摸屏设置 一、准备TOUCH驱动文件 Touch.c 和touch.h:需包含基本触摸屏初始化程序(TP_Init())和读取坐标函数(TP_Read_XOY(CMD),CMD是命令) 二、添加GUI_X_Touch.c到STemWin 配置文件中的接口程序,只需配置以下两个函数: 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_LEFT,TOUCH_AD_RIGHT,TOUCH_AD_TOP,TOUCH_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 一、界面,双击打开 二、首先放置FrameWin或者Window,不然会提示没有parent dialog 放置一个framewin 和两个button 设置framwin参数,点击framewin空白处选中它,然后在左边编辑参数,例程中只设置了位置和显示屏大小。下图是按240x320屏幕设置。Button图标可以随意拉大。 三、保存 配置好后,直接file->save,C文件就生成在GUI_builder同一个文件夹中了,下图中的FramewinDLG.c 四、移植和修改 把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函数中代码修改如下,然后编译下载运行了。 六、运行结果 通过触摸选中button按钮的图片 |
【STM32H7S78-DK评测】-5 LVGL&DMA2D DEMO测试
【STM32H7S78-DK评测】-4 LTDC&DMA2D 基本测试
STM32F3DISCOVERY + UCGUI3.90A的移植(源码+视频)
STM32MP135F-DK开发板评测-Linux系统下基于gtk的计算器应用
STM32MP135F-DK开发板评测-Linux系统下的GTK计算器
STM32MP135F-DK开发板评测-裸机LTDC亮屏
基于STM32GUI TouchGFX 屏幕切换功能经验分享
STM32 GUI开发技能分享
X-NUCLEO-GFX01M1 开发板的 GUI 开发流程介绍
STM32 TouchGFX经验分享(一)
航顺推广免费送的代码级完全兼容ST芯片的国产芯片,驱动和代码完全不用修改,还是非常好用
不错哦,国产的,顶起
不光是pin to pin,代码完全移植,我觉得有点牛,我是在ST上开发的,然后直接download过来,就可以用,没做任何修改。之前我用GD的不得行,GD的要修改一点代码。% I+ [, E1 m1 `; t. b# `
这航顺芯片 给的是R8,实际代码已经超过64K了,实验发现可以用到128K
这种芯片,还是不要用在生产上了,无法保证,说不定那天就倒闭了!!!