| 
 
新手上路 
 
	积分32金钱32 注册时间2014-12-13在线时间6 小时 | 
 
1金钱 
| 请教大侠们关于移植STemWin后使用触摸屏的问题,也不是不能用,触摸屏应该是正常工作的,使用emWin的Touch_Sample能够正常获取触点位置,如下图1: 但是把Demon下载到开发板触摸屏没反应,比如图2这个,在VC++中仿真可同通过鼠标点击窗口最大化最小化等等,实际使用触摸屏怎么按都没反应,光标也不动。
 程序如下:
 int main(void)
 {
 GUI_RECT Rect;
 WM_HWIN hClient;
 
 USART2_config();
 printf("TFT 实验...\r\n");
 STM32_SysTick_init(1000);      //系统定时器初始化,1ms
 
 TP_Init();                     //触摸屏初始化
 
 /*CRC 和emWin 没有关系,只是他们为了库的保护而做的,
 这样STemWin 的库只能用在ST 的芯片上面,别的芯片是无法使用的。 */
 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);
 
 GUI_Init();                    //GUI初始化
 
 GUI_SetBkColor(GUI_BLUE);      //设置屏幕背景色
 GUI_Clear();
 
 /* Set callback for background window */
 WM_SetCallback(WM_HBKWIN, _cbBkWindow);
 
 //创建框架
 _hFrame=_CreateFrame();
 GUI_Delay(1000);
 //创建菜单
 _hMenu = _CreateMenu(_hFrame);
 GUI_Delay(1000);
 hClient=WM_GetClientWindow(_hFrame);    //返回客户区窗口句柄
 WM_GetClientRectEx(hClient, &Rect);    //返回客户区窗口尺寸
 //创建多行文本框小工具
 _hMEdit = MULTIEDIT_CreateEx(0, 0, 0, Rect.y1, hClient,\
 WM_CF_SHOW| WM_CF_ANCHOR_RIGHT | WM_CF_ANCHOR_LEFT | WM_CF_ANCHOR_TOP | WM_CF_ANCHOR_BOTTOM,\
 MULTIEDIT_CF_INSERT, 0, 0, "");
 
 MULTIEDIT_AddText(_hMEdit,txt);           //在当前光标位置键入更多文本
 while(1)
 {
 GUI_Delay(10);
 GUI_CURSOR_Show();
 }
 }
 
 //以下是SysTick中断处理
 extern __IO int32_t OS_TimeMS;
 static u8 count=0;
 void SysTick_Handler(void)
 {
 OS_TimeMS++;
 
 if(count==10)
 {
 GUI_TOUCH_Exec();        //每过10ms触发调用触摸驱动
 count=0;
 }
 else
 count++;
 }
 
 
 
 //以下是GUIConf.h中的配置,TOUCH功能已经开启
 #ifndef GUICONF_H
 #define GUICONF_H
 /*********************************************************************
 *
 *       Multi layer/display support
 */
 #define GUI_NUM_LAYERS            2    // Maximum number of available layers
 /*********************************************************************
 *
 *       Multi tasking support
 */
 #ifdef OS_SUPPORT
 #define GUI_OS                    (1)  // Compile with multitasking support
 #else
 #define GUI_OS                    (0)
 #endif
 /*********************************************************************
 *
 *       Configuration of touch support
 */
 #ifndef   GUI_SUPPORT_TOUCH
 #define GUI_SUPPORT_TOUCH       (1)  // Support touchscreen
 #endif
 /*********************************************************************
 *
 *       Default font
 */
 #define GUI_DEFAULT_FONT          &GUI_Font6x8
 /*********************************************************************
 *
 *         Configuration of available packages
 */
 #define GUI_SUPPORT_MOUSE             (1)    /* Support a mouse */
 #define GUI_WINSUPPORT                (1)    /* Use window manager */
 #define GUI_SUPPORT_MEMDEV            (1)    /* Memory device package available */
 #define GUI_SUPPORT_DEVICES           (1)    /* Enable use of device pointers */
 
 
 
 | 
 
 
图1.触屏校准Demo正常   
图2.窗口按钮按下没反应   
最佳答案
查看完整内容[请看2#楼] 问题已解决,看了STemWIN开发手册,把启动文件里的栈大小设置的大一点就好了,原来运行不了就是应为太卡了 |