【第3版emWin教程】第36章 emWin6.x光标 |
您所在的位置:网站首页 › 鼠标拖动有重影如何设置 › 【第3版emWin教程】第36章 emWin6.x光标 |
教程不断更新中:第3版emWin教程和ThreadX GUIX教程开工,双管齐下,GUIX更新至第28章,emWin更新至第48章(2021-09-13) - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz!http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429 第36章 emWin6.x光标本期教程比较简单,给大家讲解光标(游标)的使用。在小型的嵌入式系统中,外接鼠标和键盘的情况比较少,所以光标的使用就显得不那么重要,不过在需要触摸校准的时候光标就比较重要了,可以帮助我们很方便的看出X,Y轴镜像和翻转问题。 目录 36.1 初学者重要提示 36.2 emWin支持的光标效果 36.3 模拟器上的光标例程 36.4 实验例程说明(RTOS) 36.5 实验例程说明(裸机) 36.6 总结 36.1 初学者重要提示1、对于初学者来说,本章节比较简单,只需知道函数GUI_CURSOR_Show()是用来显示光标的,函数GUI_CURSOR_Hide()是用来隐藏光标的。 2、 光标所有API函数在emWin手册中都有讲解,下图是中文版手册里面API函数的位置
下图是英文版手册里面API函数的位置: 36.2 emWin支持的光标效果
当前emWin支持的游标效果就是上面几种,初始化emWin后是不显示游标的,需要调用函数GUI_CURSOR_Show()才会显示出来,默认显示出来的是GUI_CursorArrowM(中箭头)。要选择其它的箭头可以调用函数GUI_CURSOR_Select()进行选择其它的箭头。STemWin进入到5.22版本后加入了动态的游标,效果如下: 36.3 模拟器上的光标例程 官方有一个例子是专门的演示游标的,将光标的各个API函数都演示了一遍,程序位置在:
对于这个例子,在我们emWin教程第1版的第23章简单进行了讲解,还有动态光标的显示也做讲解了,本次新升级的教程不再做讲解。 36.4 实验例程说明(RTOS) 配套例子: V7-548_emWin6.x实验_光标(RTOS) 实验目的: 学习emWin的光标,可以手动触摸界面来看光标的移动。emWin功能的实现在MainTask.c文件里面。实验内容: 1、K1按键按下,串口或者RTT打印任务执行情况(串口波特率115200,数据位8,奇偶校验位无,停止位1)。 2、(1) 凡是用到printf函数的全部通过函数App_Printf实现。 (2) App_Printf函数做了信号量的互斥操作,解决资源共享问题。 3、默认上电是通过串口打印信息,如果使用RTT打印信息: MDK AC5,MDK AC6或IAR通过使能bsp.h文件中的宏定义为1即可 #define Enable_RTTViewer 1 4、各个任务实现的功能如下: App Task Start 任务 :启动任务,这里用作BSP驱动包处理。 App Task MspPro任务 :消息处理,这里用作LED闪烁。 App Task UserIF 任务 :按键消息处理。 App Task COM 任务 :暂未使用。 App Task GUI 任务 :GUI任务。 μCOS-III任务调试信息(按K1按键,串口打印):
RTT 打印信息方式:
程序设计: 任务栈大小分配: μCOS-III任务栈大小在app_cfg.h文件中配置: #define APP_CFG_TASK_START_STK_SIZE 512u #define APP_CFG_TASK_MsgPro_STK_SIZE 2048u #define APP_CFG_TASK_COM_STK_SIZE 512u #define APP_CFG_TASK_USER_IF_STK_SIZE 512u #define APP_CFG_TASK_GUI_STK_SIZE 2048u 任务栈大小的单位是4字节,那么每个任务的栈大小如下: App Task Start 任务 :2048字节。 App Task MspPro任务 :8192字节。 App Task UserIF 任务 :2048字节。 App Task COM 任务 :2048字节。 App Task GUI 任务 :8192字节。 系统栈大小分配: μCOS-III的系统栈大小在os_cfg_app.h文件中配置: #define OS_CFG_ISR_STK_SIZE 512u 系统栈大小的单位是4字节,那么这里就是配置系统栈大小为2KB emWin动态内存配置: GUIConf.c文件中的配置如下: #define EX_SRAM 1/*1 used extern sram, 0 used internal sram */ #if EX_SRAM #define GUI_NUMBYTES (1024*1024*24) #else #define GUI_NUMBYTES (100*1024) #endif通过宏定义来配置使用内部SRAM还是外部的SDRAM做为emWin的动态内存,当配置: #define EX_SRAM 1 表示使用外部SDRAM作为emWin动态内存,大小24MB。 #define EX_SRAM 0 表示使用内部SRAM作为emWin动态内存,大小100KB。 默认情况下,本教程配套的所有emWin例子都是用外部SDRAM作为emWin动态内存。 emWin界面显示效果: 800*480分辨率界面效果。
36.5 实验例程说明(裸机) 配套例子: V7-547_emWin6.x实验_光标(裸机) 实验目的: 学习emWin的光标,可以手动触摸界面来看光标的移动。emWin功能的实现在MainTask.c文件里面。emWin界面显示效果: 800*480分辨率界面效果。
emWin动态内存配置: GUIConf.c文件中的配置如下: #define EX_SRAM 1/*1 used extern sram, 0 used internal sram */ #if EX_SRAM #define GUI_NUMBYTES (1024*1024*24) #else #define GUI_NUMBYTES (100*1024) #endif通过宏定义来配置使用内部SRAM还是外部的SDRAM做为emWin的动态内存,当配置: #define EX_SRAM 1 表示使用外部SDRAM作为emWin动态内存,大小24MB。 #define EX_SRAM 0 表示使用内部SRAM作为emWin动态内存,大小100KB。 默认情况下,本教程配套的所有emWin例子都是用外部SDRAM作为emWin动态内存。 36.6 总结游标显示的知识就跟大家讲这么多,相对来说比前面几期都要简单很多,实际应用中知道如何将其显示出来即可。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |