使用GDK3开发魔法键盘心得

本文介绍了如何利用GDK3开发板和其配套工具,基于GEKM项目构建一个能自动发送键盘事件的设备,实现类似魔法键盘的效果。开发过程包括引入源码、测试基础项目、编写键盘发送函数并烧录程序,最终实现键盘的自动化操作功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

GDK3(GEDU Development Kit 3)是格蠹科技旗下基于ARM Cortex-M3 SoC设计的开发板,CPU框架是ARMv7-M。搭配公司其他相关软硬件工具,我们可以使用它来学习ARM和嵌入式,产品体积小,功耗低,且功能非常强大。在这里插入图片描述

一、开发目标

把GDK3开发成一个特殊的键盘设备,自动发送键盘事件,这时从用户的角度看:电脑的键盘像会魔法一样自己打字,非常好玩有趣。

连接示意图

在这里插入图片描述

工作流程

正常来说键盘应该是从上位机发送到下位机,但我们这里修改GDK3中运行的程序,直接让GDK3自主的发送键盘事件,不使用上位机,并在下位机进行接收和测试

二、开发过程

1. 引入gekm项目源码,我们在gekm项目的基础上开发。

在这里插入图片描述

2. 测试原本的gekm项目,只有当原本的项目功能和逻辑均正确时,我们才可以在在他基础上开发新项目。

a. 打开GNU工具来编译

b. 引入gcc gdb等编译调试工具的路径:
export PATH=/d/gedu_work/GNU/bin/:$PATH
在这里插入图片描述
c. 切换到项目所在的工作目录:
cd /d/gedu_work/gdk3/sdk/src/gekm/
在这里插入图片描述
d. 开始编译
make -s
> 在这里插入图片描述
e. 烧录运行
!program D:\\gedu_work\\gdk3\\sdk\\src\\gekm\\gekm.hex
!reset
在这里插入图片描述
f. 检查GDK3是否可以作为usb设备被识别
打开usbview软件,观察主机接入GKD3的USB端口。(usbview 是一个usb设备查看器,能够对系统中全部的USB设备进行枚举,可以查看每个设备的详细信息)。
在这里插入图片描述
g. 至此,测试完毕,原本的gekm项目一切正常。

3. 测试完毕之后,我们可以在项目原有的基础上开发魔法键盘项目了。

a. 编写自己的键盘发送函数,并在主函数中调用这个发送函数。

void KB_Send_Data(void)
{
    // 测试发送 gedu
    uint8_t KB_Data[8] = {0, 0, KC_G, KC_E, KC_D, KC_U, 0, 0};
    uint8_t KB_Empty[8] = {0};

    // 开始发送数据
    Delay_Ms(700); 
    USBHD_Endp_DataUp(DEF_UEP1, KB_Data, sizeof(KB_Data), DEF_UEP_CPY_LOAD);
    Delay_Ms(700);
    USBHD_Endp_DataUp(DEF_UEP1, KB_Empty, sizeof(KB_Empty), DEF_UEP_CPY_LOAD);
    Delay_Ms(700);
}

b. 重新编译程序
make -s
在这里插入图片描述
c. 烧录程序,并重启
!program D:\\gedu_work\\gdk3\\sdk\\src\\gekm\\gekm.hex
!reset
在这里插入图片描述
d.打开文本编辑器来观察项目的结果
在这里插入图片描述
看到上述结果就说明魔法键盘开发成功了。而这个魔法键盘不仅支持发送单个字母,同时也支持发送 shift Ctrl Alt等,我们可以利用这个特性开发更好玩的项目,例如发送一套游戏里的连招,或者发送一些有意义的文字。

三、总结

由于我本身专业知识不够扎实,并且也缺少嵌入式的开发经验,所以刚开始做这个项目的时总想着追根溯源,想着先看明白,先理清思路再动手,所以就这样,傻傻的看了半天也没什么实质性的进展,张老师指点道:你有任何想法和思路就去尝试啊,不要在这里空想,想法能不能成只有做了才能验证,你在这里空想是没有结果的。于是我每遇到一个想法,就上手测试一下,并记录下来。在这个验证的过程中,我对这个项目的理解逐渐加深,同时我也明白,动手实践远比脑袋空想来的实际。

最后放一张小伙伴的照片,加油吧,少年.
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李吱恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值