emWin 2天速成实例教程006_矩阵键盘、PS2键盘、实体按键消息的使用方法(MDK工程)

备注:(1)打开工程目录下的"Exe\GUISimulationDebug.exe"即可看到效果。(2)看完教程000~005就基本会用emWin做项目,其他章节可以需要时再参考。


要在emWin中使用键盘,必须先熟悉emWin的消息和聚焦("emWin 2天速成实例教程005")!


在emWin中,当调用了GUI_StoreKeyMsg()函数储存键值到emWin之后,emWin除了内部处理键值之外(比如储存键值0x30,emWin会在Edit控件显示出”0”),还会发送一个WM_KEY消息给我们,告诉我们有实体按键按下,在WM_KEY消息中我们可以获取键值并执行我们需要的操作。

 

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
非常抱歉,我的回答还是有误。`GUI_TIMER_TIME_MSECS()` 函数并不是 emWin 图形库自带的函数,而是一个自定义的宏定义,用于将以毫秒为单位的时间转换成 `GUI_TIMER_TIME` 结构体。 下面是一个示例代码,演示如何手动定义 `GUI_TIMER_TIME_MSECS()` 宏: ```c #include "GUI.h" typedef struct { int Time; int Repeat; } GUI_TIMER_TIME; #define GUI_TIMER_TIME_MSECS(msec) {(msec), (msec)} static GUI_TIMER_HANDLE hTimer; static int cnt = 0; void myTimerCallback(GUI_TIMER_MESSAGE* pTM) { cnt++; char buf[32]; sprintf(buf, "Count: %d", cnt); GUI_DispStringAt(buf, 100, 100); } int main(void) { GUI_Init(); // 使用自定义的宏定义来指定定时器触发时间和周期 GUI_TIMER_TIME timerTime = GUI_TIMER_TIME_MSECS(1000); // 创建一个定时器,并指定定时器回调函数、定时器触发时间和周期、以及定时器属性 hTimer = GUI_TIMER_Create(&myTimerCallback, timerTime, 0, GUI_TIMER_CF_RESTART); while (1) { GUI_Exec(); } } ``` 在这个示例代码中,我们手动定义了一个 `GUI_TIMER_TIME` 结构体,包含了 `Time` 和 `Repeat` 字段,用于表示定时器的触发时间和周期。然后,我们通过一个宏定义 `GUI_TIMER_TIME_MSECS()` 来将以毫秒为单位的时间值转换成 `GUI_TIMER_TIME` 结构体。最后,我们在创建定时器时,使用这个自定义的宏定义来指定定时器的触发时间和周期。 需要注意的是,这里的 `GUI_TIMER_TIME` 结构体和 `GUI_TIMER_TIME_MSECS()` 宏定义都是自定义的,如果你使用的是官方提供的 emWin 图形库版本,可能需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值