| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 【第3版emWin教程】第45章 emWin6.x窗口管理器之定时器使用 -> 正文阅读 |
|
[嵌入式]【第3版emWin教程】第45章 emWin6.x窗口管理器之定时器使用 |
第45章?????? emWin6.x窗口管理器之定时器使用本期教程为大家讲解窗口管理器之定时器使用方法,这个定时器使用起来比较简单,而且很实用,以后的项目工程中很多时候要用到,不过使用时有些小问题要特别注意,如果不注意的话,定时器将无法正确启动。 目录 45.1 初学者重要提示1、? 特别注意定时器使用时的注意事项,在本章45.2小节详细讲解了,要不定时器无法正确启动。然后再结合本章教程给出的实例进行学习。 2、? 窗口管理器这块的API函数应该是emWin手册所有章节中函数最多的,定时器的API函数也属于这部分。下图是中文版手册里面API函数位置: ? 下图是英文版手册里面API函数的位置: ? 45.2 定时器功能介绍emWin中有四个定时器相关的API函数供用户调用。 ? 这四个函数都是简单易用,不过使用时有些问题还是要注意下,要不无法正确启动,初学者也是经常在这几个点犯错误,导致配置了定时器,却没有效果。
此函数用于创建定时器,注意,这个函数创建的定时器是单次的,也是说定时器时间到后定时器就不再工作了,如果还想继续使用,务必要在窗口回调函数的定时器消息WM_TIMER里面调用函数WM_RestartTimer重启此定时器。 第1个参数 hWin填写窗口的句柄,即给那个窗口创建定时器。这个参数比较关键,很多初学者经常在这个参数上犯错误。如果是给对话框创建定时器,且对话框的主体是框架窗口FrameWin或者直接给框架窗口FrameWin创建定时器,此参数必须要使用函数WM_GetClientWindow获得框架窗口的客户区,这一点非常重要。如果对话框的主体是Windows或者直接给Windows窗口创建定时器,无需使用函数WM_GetClientWindow了,直接填句柄就可以了。 第2个参数UserId填写此定时器的ID,设置ID的目的是方便同一个窗口创建了多个定时器的话,可以用来区分是哪个定时器。 第3个参数Period是定时器周期,确切的说是溢出时间更贴切,因为此定时器不是自动重启的,仅执行一次,时间到后会给定时器所在窗口的回调函数发送WM_TIMER消息,如果要重新启动需要在此消息里面调用函数WM_RestartTimer重新启动。 第4个参数暂时保留,未被使用。
此函数用于定时器删除,参数是定时器句柄(即调用函数WM_CreateTimer的返回值)。
此函数用于获得定时器ID,参数是定时器句柄(即调用函数WM_CreateTimer的返回值)。
此函数用于重启定时器。 第1个参数是定时器句柄,即调用函数WM_CreateTimer的返回值。 第2个参数是重新配置定时器的溢出时间。 ----------------- 讲解完这些,也许初学者还有些模糊,没有关系,且看下面举的几个例子,看完后基本就都理解了。 45.3 桌面窗口上使用定时器实例这个Demo主要是实现每隔1000ms改变一次桌面窗口的颜色,源代码如下(可以将其直接的复制到开发板或者模拟器上面运行)。
这个Demo的实际显示效果如下: ? 45.4 对话框上使用定时器实例这个Demo的主要功能是在对话框上面实现一个计数功能,每100ms更新一次,下面是源码(可以将其直接的复制到开发板或者模拟器上面运行)
这个例子的实际显示效果如下: ? 45.5 实验例程说明(RTOS)配套例子: V7-558_emWin6.x实验_窗口管理器之定时器使用(RTOS) 实验目的:
实验内容: 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文件中的配置如下:
通过宏定义来配置使用内部SRAM还是外部的SDRAM做为emWin的动态内存,当配置: #define ?EX_SRAM?? ??1 表示使用外部SDRAM作为emWin动态内存,大小24MB。 #define ?EX_SRAM?? ??0 表示使用内部SRAM作为emWin动态内存,大小100KB。 默认情况下,本教程配套的所有emWin例子都是用外部SDRAM作为emWin动态内存。 emWin界面显示效果: 800*480分辨率界面效果。 ? 45.6 实验例程说明(裸机)配套例子: V7-557_emWin6.x实验_窗口管理器之定时器使用(裸机) 实验目的:
emWin界面显示效果: 800*480分辨率界面效果。 ? emWin动态内存配置: GUIConf.c文件中的配置如下:
通过宏定义来配置使用内部SRAM还是外部的SDRAM做为emWin的动态内存,当配置: #define ?EX_SRAM?? ??1 表示使用外部SDRAM作为emWin动态内存,大小24MB。 #define ?EX_SRAM?? ??0 表示使用内部SRAM作为emWin动态内存,大小100KB。 默认情况下,本教程配套的所有emWin例子都是用外部SDRAM作为emWin动态内存。 45.7 总结本章节就为大家讲解这么多,窗口定时器简单实用,望初学者务必掌握,以后用到的地方还是很多的。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 2:21:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |