如何进行EMWIN中如何处理外部android 按键处理

最近emwinv5.24
emWin5.26指导手册,资源共享,欢迎大家下载
好不容易搞来的 给大家分享下
仅有的中文资料,绝对好用
19、红龙103 EMWIN 3.2寸Listwheel.rar
不要钱的孩子才是好孩子。ucgui/ emwin 例程,有源码的。
emWin5.xx移植手册2
SEGGER 的EMWIN最新开发包DEMO,里面不少有用的小工具,和ucGUI源码一样,可帮助学习和使用ucGUIMDK-emWIN512\AN00002_GettingStartedWithSeggerEvalSoftwareAndIAR.pdf
............\Doc\UM03001_emWin5.pdf
............\Start\Application
emWin图形库推出中文用户手册,为中文用户提供更为友好的操作协助。emWin图形库由德国SEGGER公司开发,可为图形LCD设计提供高级支持,极大简化了LCD设计并缩短上市时间
Industrial example for the EA LPC1788 dev board with a 7& display
NXP lpc4357 的GUI源码
5、红龙103 EMWIN 3.2寸单选框.rar
3、红龙103 EMWIN 3.2寸标题.rar
15、红龙103 EMWIN 3.2寸树形.rar
1、红龙103 EMWIN 3.2寸按键.rar
本周本月全部
大学堂最新课程
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_.cn 或通过站内短信息或QQ:联系管理员 高进,我们会尽快处理。查看: 826|回复: 9
如何进行EMWIN中如何处理外部按键
回复本帖可获得 1 RMB金钱奖励! 每人限 1 次(中奖概率 10%)
主题帖子积分
新手上路, 积分 3, 距离下一级还需 46 积分
新手上路, 积分 3, 距离下一级还需 46 积分
1.我做的项目是由两个部分组成&&STM32F429 作为主控芯片,其中一个功能是做UI。我在这个项目中所负责的就是UI部分
2.STM32F103通过控制按键面板(上,下,左,右,菜单,确定,返回等)7个按键,将数据通过串口发送到STM32F429上面来。
3.我的STM32F429要对STM32F103传来的数据进行分析,进行界面的切换
问题:如何将103发来的数据进行处理:
求求各位大神给我支招,我已经有点困惑了..
主题帖子积分
做人第一,工作第二
楼主现在是UI设计部分有问题还是按键消息处理有问题。
如果是按键消息接收,F429仅需做个大的数组缓冲按键消息就好了,手按按键的速度超级慢的,一个消息一个消息的处理都来得及。
UI的话,如果熟悉emWin,直接使用emWin即可,我们有外部实体按键操作控件的例子和教程作为参考。
开启补充查克拉模式
主题帖子积分
新手上路, 积分 3, 距离下一级还需 46 积分
新手上路, 积分 3, 距离下一级还需 46 积分
回 eric2013 的帖子
:楼主现在是UI设计部分有问题还是按键消息处理有问题。
如果是按键消息接收,F429仅需做个大的数组缓冲按键消息就好了,手按按键的速度超级慢的,一个消息一个消息的处理都来得及。
UI的话,如果熟悉emWin,直接使用emWin即可,我们有外部实体按键操作控件的例子和教程作为参考。 .. ( 00:36) 硬汉,我这个程序是接收到数据后,再进行处理的。别的板子控制按键,将返回的数据发给F429然后我将读取的数据在F429的UI界面进行处理..实现界面的切换。
1.现在我在F429中读取到从F103发来的数据(up 0x11 ,down 0x21,left 0x31,right 0x41)
2.F429要处理(up,down,left,right)的数据.在F429实现的UI里面进行界面的切换。
我的问题:如何将F103发过来的(0x11,0x21,0x31,0x41)等数据,在F429里面进行处理...
主题帖子积分
高级会员, 积分 206, 距离下一级还需 293 积分
高级会员, 积分 206, 距离下一级还需 293 积分
参考例子 [s:151]
主题帖子积分
做人第一,工作第二
:硬汉,我这个程序是接收到数据后,再进行处理的。别的板子控制按键,将返回的数据发给F429然后我将读取的数据在F429的UI界面进行处理..实现界面的切换。
1.现在我在F429中读取到从F103发来的数据(up 0x11 ,down 0x21,left 0x31,right 0x41)
2.F429要处理(up,down,left,r .. ( 10:05) 发emWin消息就行了,学习我们新版emWin教程的第62章节。
开启补充查克拉模式
主题帖子积分
新手上路, 积分 3, 距离下一级还需 46 积分
新手上路, 积分 3, 距离下一级还需 46 积分
回 eric2013 的帖子
:发emWin消息就行了,学习我们新版emWin教程的第62章节。
 ( 01:44) 硬汉哥,最主要我在综合项目中没有看到有这块的内容呀!你那里做的是“F429里面自己定义的外部按键中断”通过WM_KEY可以直接进行按键的操作,我这边的只是通过F103发送过来的按键数据,现在就是:如何利用F103发来的数据,创建自定义消息去处理。我想和WM_KEY那样进行消息处理,结果发现处理不了...
主题帖子积分
新手上路, 积分 3, 距离下一级还需 46 积分
新手上路, 积分 3, 距离下一级还需 46 积分
回 mingjie 的帖子
:参考例子 [s:151]   ( 18:18) 恩,我在例子里看了。没有这种处理的。所以我有点困惑了!谢谢
主题帖子积分
做人第一,工作第二
:硬汉哥,最主要我在综合项目中没有看到有这块的内容呀!你那里做的是“F429里面自己定义的外部按键中断”通过WM_KEY可以直接进行按键的操作,我这边的只是通过F103发送过来的按键数据,现在就是:如何利用F103发来的数据,创建自定义消息去处理。我想和WM_KEY那样进行消息处理, .. ( 14:21) 一样的,我们的那个代码里面是检测实体按键的消息进行处理,而你这里的是接收103发来的消息。
开启补充查克拉模式
主题帖子积分
新手上路, 积分 3, 距离下一级还需 46 积分
新手上路, 积分 3, 距离下一级还需 46 积分
硬汉哥,那我如何去实现,你能给我点指示吗?把过程和我说一下,我这一路上做起来感觉特别的辛苦和累,到最后压根就不知道如何去处理这个东西了!谢谢
主题帖子积分
金牌会员, 积分 789, 距离下一级还需 211 积分
金牌会员, 积分 789, 距离下一级还需 211 积分
耐心看新版emWin教程的第62章节
消息id是自己创建的,不管你发的什么消息确保消息的唯一就可以了,耐心点看例子
Powered by15:36 提问
键盘连续输入6个数字,如何知道每个数字输入的时间。
问题如题,时间最好精确些(ms)或者求得每两个数字输入的间隔时间,如何用C++实现,最好具体点,看有人说用键盘hook,但是没怎么看懂,求大神莅临指导。
按赞数排序
class KeyTime{
int KeyC//按下的键值
time_t* Time = new time_t();//按下键的时间
int main(int argc, char *argv[], char *envp[]){
KeyTime* c[6];//输入次数
//输入数字
cout && "请按键:";
for (int i = 0; i & 6; i++)
KeyTime* Item = new KeyTime();
Item-&KeyCode = _getch();
time(Item-&Time);
cout && Item-&KeyC
//展示结果
for (int j = 0; j & 6; j++){
char buffer[32];
localtime_s(&newtime, c[j]-&Time);
strftime(buffer, 32, "%Y-%m-%d %H:%M:%S", &newtime);
cout && "按下键" && c[j]-&KeyCode && "于" &&
if (j & 0)
cout && "相差秒数" && difftime(*(c[j]-&Time), *(c[j - 1]-&Time));
getchar();
数组,储存按下数字的时间
当前已使用的数组元素
当按下数字调用()
数组[当前已使用的数组元素]=获取当前时间
当前已使用的数组元素++
temp=数组的后一个减前一个
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐【图片】【emWin实战教程V2.0】第62章
STemWin键盘输入(实体按键操作【ucos_emwin_ucgui吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:299贴子:
【emWin实战教程V2.0】第62章
STemWin键盘输入(实体按键操作
安富莱电子微信号:armfly_com完整65章+12章附件教程下载地址:完整65章+12章附件教程下载地址:完整65章+12章附件教程下载地址:第62章
STemWin键盘输入(实体按键操作控件)本章节为大家讲解键盘输入设备或者类似键盘的外部输入设备来控制emWin。实际项目中,很多时候需要使用外部小键盘来操作emWin界面,那么学好本章节的内容就尤其重要了,望初学者务必要掌握。62.1 初学者重要提示62.2 键盘编码基础知识62.3 键盘相关的API函数62.4 实体按键操作控件说明62.5 实验例程说明(RTOS)62.6 实验例程说明(裸机)62.7 总结
初学者重要提示1、初学者爱问的问题简单汇总:(1)问题1:为什么使用函数GUI_SendKeyMsg发送消息后,控件没有反应?答:首先要保证控件被聚焦,还有就是查看此控件是否支持键盘消息。2、键盘输入的所有API函数在emWin手册中都有讲解,下图是中文版手册里面API函数位置:下图是英文版手册里面API函数的位置:
实体按键操作控件说明有了前面两个小节的说明,实体按键操作控件比较容易,用户想要操作哪个控件,设置聚焦到那个控件即可,然后通过函数GUI_StoreKeyMsg或者GUI_SendKeyMsg发消息,此处使用的是函数GUI_SendKeyMsg。我们这里是利用开发板上面的实体按键来发消息:
检测到哪个按键被按下了,就在相应的按键消息里面通过函数GUI_SendKeyMsg发送键盘消息,具体实现代码如下:/***********************************************************************************************************
函 数名: AppTaskUserIF*
功能说明: 按键消息处理*
参:p_arg 是在创建该任务时传递的形参*
返 回值: 无
优 先级: 4**********************************************************************************************************/static void AppTaskUserIF(void *p_arg){
/* 避免编译器报警*/
ucKeyCode = bsp_GetKey();
if(ucKeyCode!= KEY_NONE)
switch(ucKeyCode)
caseKEY_DOWN_K1:
/* K1键按下 串口打印任务执行情况 */
DispTaskInfo();
caseKEY_DOWN_K2:
/* K2键按下,向消息队列发送数据 */
OSSemPost((OS_SEM*)&SEM_SYNCH,
(OS_OPT )OS_OPT_POST_1,
(OS_ERR *)&err);
caseKEY_DOWN_K3:
/* K3键按下,实现TAB按键的功能*/
GUI_SendKeyMsg(GUI_KEY_TAB,1);
caseJOY_DOWN_U:
/* 摇杆UP键按下,实现删除光标后的字符 */
GUI_SendKeyMsg(GUI_KEY_DELETE,1);
caseJOY_DOWN_D:
/* 摇杆DOWN键按下,实现删除光标前的字符 */
GUI_SendKeyMsg(GUI_KEY_BACKSPACE,1);
caseJOY_DOWN_L:
/* 摇杆LEFT键按下,实现光标左移 */
GUI_SendKeyMsg(GUI_KEY_LEFT,1);
caseJOY_DOWN_R:
/* 摇杆RIGHT键按下,实现光标右移 */
GUI_SendKeyMsg(GUI_KEY_RIGHT,1);
caseJOY_DOWN_OK:
/* 摇杆OK键按下,主要给本工程界面的按钮发送此消息 */
GUI_SendKeyMsg(GUI_KEY_ENTER,1);
/*其它的键值不处理 */
OSTimeDly(20,OS_OPT_TIME_DLY, &err);
}}如果大家使用的是其它类型的键盘输入设备,方法是一样的。对于emWin的界面,只要有被聚焦的控件,就可以发送相应的键盘消息给此控件。当然,不同的控件支持的键盘消息有所不同,比如本章节配套例子的部分代码:/***********************************************************************************************************
宏定义**********************************************************************************************************/#define ID_FRAMEWIN_0 (GUI_ID_USER + 0x00)#define ID_EDIT_0
(GUI_ID_USER + 0x01)#define ID_EDIT_1
(GUI_ID_USER + 0x03)
/***********************************************************************************************************
GUI_WIDGET_CREATE_INFO类型数组**********************************************************************************************************/static const GUI_WIDGET_CREATE_INFO_aDialogCreate[] ={
{FRAMEWIN_CreateIndirect, &Framewin&, ID_FRAMEWIN_0, 0, 0, 320, 240,0, 0x64, 0 },
{EDIT_CreateIndirect, &Edit&, ID_EDIT_0, 88, 27, 159, 29, 0, 0x64, 0},
{EDIT_CreateIndirect, &Edit&, ID_EDIT_1, 87, 73, 159, 30, 0, 0x64, 0},
{BUTTON_CreateIndirect, &Button&, GUI_ID_OK, 26, 139, 97, 31, 0, 0x0,0 },
{BUTTON_CreateIndirect, &Button&, GUI_ID_CANCEL, 179, 139, 100, 31, 0,0x0, 0 },};
续62.4/***********************************************************************************************************
函 数名: _cbDialog*
功能说明: 对话框的回调函数*
参:pMsg 消息指针*
返 回值: 无**********************************************************************************************************/static void _cbDialog(WM_MESSAGE * pMsg){
hDlg =pMsg-&hW
switch(pMsg-&MsgId)
caseWM_INIT_DIALOG:
//初始化框架窗口
hItem= pMsg-&hW
FRAMEWIN_SetFont(hItem,GUI_FONT_24_ASCII);
FRAMEWIN_SetTextAlign(hItem,GUI_TA_HCENTER | GUI_TA_VCENTER);
FRAMEWIN_SetText(hItem,&armfly&);
//初始化编辑框控件
hItem= WM_GetDialogItem(pMsg-&hWin, ID_EDIT_0);
EDIT_SetText(hItem,&&);
EDIT_SetTextAlign(hItem,GUI_TA_LEFT | GUI_TA_VCENTER);
EDIT_SetFont(hItem,GUI_FONT_16_ASCII);
EDIT_SetSel(hItem,0, -1);
//初始化边框控件
hItem= WM_GetDialogItem(pMsg-&hWin, ID_EDIT_1);
EDIT_SetText(hItem,&&);
EDIT_SetFont(hItem,GUI_FONT_16_ASCII);
EDIT_SetTextAlign(hItem,GUI_TA_LEFT | GUI_TA_VCENTER);
EDIT_SetSel(hItem,0, -1);
// 初始化按钮控件
hItem= WM_GetDialogItem(pMsg-&hWin, GUI_ID_OK);
BUTTON_SetText(hItem,&OK&);
BUTTON_SetFont(hItem,GUI_FONT_16_ASCII);
//初始化按钮控件
hItem= WM_GetDialogItem(pMsg-&hWin, GUI_ID_CANCEL);
BUTTON_SetText(hItem,&Cancel&);
BUTTON_SetFont(hItem,GUI_FONT_16_ASCII);
case WM_KEY:
switch (((WM_KEY_INFO*)(pMsg-&Data.p))-&Key)
caseGUI_KEY_ESCAPE:
GUI_EndDialog(hDlg, 1);
case GUI_KEY_ENTER:
GUI_EndDialog(hDlg, 0);
caseWM_NOTIFY_PARENT:
= WM_GetId(pMsg-&hWinSrc);
NCode= pMsg-&Data.v;
switch(Id)
/* 点击OK按钮,关闭对话框 */
caseGUI_ID_OK:
switch(NCode)
caseWM_NOTIFICATION_CLICKED:
caseWM_NOTIFICATION_RELEASED:
GUI_EndDialog(hDlg,0);
/* 点击CANCEL按钮,关闭对话框 */
caseGUI_ID_CANCEL:
switch(NCode)
caseWM_NOTIFICATION_CLICKED:
caseWM_NOTIFICATION_RELEASED:
GUI_EndDialog(hDlg,1);
WM_DefaultProc(pMsg);
创建此对话框后的首次显示效果如下:默认情况下,对话框创建后,系统会聚焦到对话框资源列表里面第一个支持聚焦的控件上(这点要特别注意)。具体到给每个控件发送键盘消息,大家可以使用本章节配套的例子在开发板上面实际操作下,另外,通过我们前面设置的按键K3发送GUI_KEY_TAB消息,按下K3按键后会切换聚焦到对话框资源列表中下一个支持聚焦的控件。
总结本章节就为大家讲解这么多,掌握了本章节配套的例子后,务必要自行创建一个界面进行实战演练,只有这样才能真正掌握此功能,此功能在实际项目中用到的地方很多。
贴吧热议榜
使用签名档&&
保存至快速回贴

我要回帖

更多关于 批处理模拟按键 的文章

 

随机推荐