欢迎来到天天文库
浏览记录
ID:37840101
大小:266.45 KB
页数:7页
时间:2019-06-01
《第31章emWin(UCGUI)键盘输入(实体按键操作控件)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、STM32-V5开发板STemWin教程第31章键盘输入(实体按键操作控件)本期教程主要跟大家讲解键盘输入,这里我们通过开发板上面带的按键进行相关的操作,在后面会专门的做一期PS2键盘的教程。31.1描述31.2驱动层API31.3实体按键操作31.4总结31.1描述键盘输入设备使用ASCII字符编码,以便区分不同的字符。例如,键盘上只有一个“A”键,但大写的“A”与小写的“a”拥有不同的ASCII编码(分别为0x41和0x61)STemWin预定义字符编码STemWin同时定义了其他“虚拟”键盘操作的字符编码。这些编码如下表所示,由GUI.h中的标识符表中定义。因此,在emWin中,字符
2、编码可以是任意扩展ASCII字符值,也可以是任意下列预定义的emWin值。第1页共7页STM32-V5开发板STemWin教程预定义的虚拟键盘码描述GUI_KEY_BACKSPACE退格键GUI_KEY_TAB制表键GUI_KEY_ENTER回车键GUI_KEY_LEFT左箭头键GUI_KEY_UP上箭头键GUI_KEY_RIGHT右箭头键GUI_KEY_DOWN下箭头键GUI_KEY_HOME本位键(移至当前行的开头)GUI_KEY_END结束键(移至当前行的末尾)GUI_KEY_SHIFT换挡键GUI_KEY_CONTROL控制键GUI_KEY_ESCAPE换码键GUI_KEY_INS
3、ERT插入键GUI_KEY_DELETE删除键31.2驱动层API键盘驱动层处理键盘消息函数。这些程序会在具体键(或组合键)被按下或松开时通知窗口管理器。下表按字母顺序列出了驱动层键盘程序。详细描述程序描述GUI_StoreKeyMsg()把消息存储于指定键GUI_SendKeyMsg()把消息发送至指定键。函数GUI_StoreKeyMsg()把消息数据(Key,PressedCnt)存进键盘缓冲器,Key表示可以是任意扩展ASCII字符(范围为0x20至0xFF)或者任意预定义的emWin字符编码。PressedCnt表示松开或者未按下的状态。该函数可从中断服务程序调用。STemWi
4、n的键盘输入管理器含有一个FIFO缓冲器,默认情况下最多可以保存10个键盘事件。如果需要不同的尺寸,可以更改该值。函数GUI_SendKeyMsg()把键盘数据发送到输入焦点所在窗口。如果没有窗口有输入焦点,则调用GUI_StoreKeyMsg()函数将数据存储至输入缓冲器之中。该函数不可从中断服务程序调用。该函数的参数和上面函数的参数是一样的。应用层的如下几个函数就先不做介绍了,使用到的时候再做介绍:第2页共7页STM32-V5开发板STemWin教程31.3实体按键操作下面给大家讲解一下通过开发板上面带的按键来操作控件。按键的驱动请看安富莱STM32-V5开发板_用户手册的第20章:
5、按键FIFO教程。此工程主要分为两部分:按键任务STemWin主任务按键任务:/***********************************************************************************************************函数名:AppTaskUserIF*功能说明:此函数主要用于得到按键的键值。*形参:p_arg是在创建该任务时传递的形参*返回值:无优先级:2******************************************************************************
6、****************************/staticvoidAppTaskUserIF(void*p_arg){uint8_tucKeyCode;(void)p_arg;/*避免编译器报警*/while(1){bsp_KeyScan();ucKeyCode=bsp_GetKey();if(ucKeyCode!=KEY_NONE){switch(ucKeyCode){caseKEY_DOWN_K1:/*K1键按下实现截图*/(1)BSP_OS_SemPost(&SEM_SYNCH);break;caseKEY_DOWN_K2:/*K2键按下实现TAB按键的功能*/(2)GU
7、I_SendKeyMsg(GUI_KEY_TAB,1);break;caseKEY_DOWN_K3:/*K3键按下实现CANCEL的功能*/(3)GUI_SendKeyMsg(GUI_KEY_ESCAPE,1);break;(4)caseJOY_DOWN_U:/*摇杆UP键按下实现删除字符功能,注意和BACKSPACE回格的区别*/GUI_SendKeyMsg(GUI_KEY_DELETE,1);break;caseJO
此文档下载收益归作者所有