网站主题栏目分类,镇江做网站哪家公司好,个人建站免费服务器,企业网站排行这是一个自定义游戏键盘#xff0c;带有四个热插拔机械键和可自定义的RGB LED。它由STM32F103Cx微控制器供电#xff0c;并通过Arduino IDE进行编程。文章末尾分享该项目资料。功能概述#xff1a;快速STM32F103Cx微控制器可实现低输入延迟。USB全速#xff0c;轮询速率为1… 这是一个自定义游戏键盘带有四个热插拔机械键和可自定义的RGB LED。它由STM32F103Cx微控制器供电并通过Arduino IDE进行编程。文章末尾分享该项目资料。功能概述快速STM32F103Cx微控制器可实现低输入延迟。USB全速轮询速率为1000hz。可热插拔的键。EEPROM设置存储。动态密钥自定义使用Windows用户的GUI具有添加更多功能的三种RGB模式。完全开源。兼容Arduino。模块化且易于携带。设计框图键盘使用STM32F103C8T6作为控制器。由于USB端口上的电源引脚为5V供电但是该款单片机需要使用3.3V电源供电因此需要将5V转为3.3V项目中使用MCP1703T来实现该功能。使用Cherry MX风格的机械开关来作为键盘的按键。另外还可以通过按键来控制LED的模式、颜色、亮度。系统原理图系统PCBPCB大小为58mm x 59mm。为了能够方便手工焊接所有的SMD器件均使用0805封装。硬件上提供了STLINK下载接口SWDIO-SWDIOSWCLK-SWCLKGND-GND3V3-3.3V材料清单1个STM32F103CxT62个7.3mm高的触觉开关4个反向安装4-PLCC LED6个0805 10K欧姆电阻4个0805 68欧姆电阻5个0805 1.5K欧姆电阻3个N沟道SOT-23-3 3.3V电平MOSFET3个0805 100nF电容器2个0805 1uF电容器2个0805 20pF电容器1个0805 4.7uF电容器1个MCP1703T-3302T / DB 3.3V稳压器1个1210 500mA PTC自恢复保险丝1个USB3090微型USB A / B端口1x 90度接头排1个8MHz HC-49晶体4个圆形橡胶保险杠4个Kailh热插拔插槽4个Cherry MX RGB或同等开安装STM32Duino打开arduino ide打开首选项添加开发板管理网址http://dan.drown.org/stm32duino/package_STM32duino_index.json添加完成之后打开开发板管理器搜索STM安装STM32F1xx/GD32F1xxSTM32Duino内的USB库已经提供的USB HID功能但其轮询间隔为10ms因此我们还要对其进行修改。进入目录C:\Users{username}\AppData\Local\Arduino15\packages\stm32duino\hardware\STM32F1{版本名称}\libraries\USBComposite下打开usb_hid.c文件搜索bInterval将该值修改为0x01。轮询间隔修改为1ms代码配置说明去抖时间这是检测到按键后按键拒绝注册按键释放的时间。需要一个反跳时间因为机械开关在按下后自然会“反跳”如果不使用反跳计时器可能会在很短的时间内记录多次错误的按键。在这种情况下设置防抖计时器的方式不会影响延迟因此更改此值不会使按键延迟更多。Cherry指定反弹时间为5毫秒该值应适用于大多数机械开关。RGB LED禁用此选项将禁用所有与RGB LED控制有关的代码。这可能会节省一些CPU周期但不足以有效地更改键盘的性能。串行通讯禁用此选项将不允许通过串行或驱动程序软件对键盘进行编程但是由于微控制器不再需要不断侦听串行命令因此它将节省一些CPU周期。尽管理论上微控制器在不启用串行的情况下应该运行得更快但是速度差异可以忽略不计。RGB LED颜色和图案如果需要修改RGB LED颜色则必须直接编辑代码。在checkRGBMode()函数下定义的颜色存储所有的灯光模式0颜色静态而incrementColor()下的颜色存储灯光模式2颜色循环颜色。更改颜色只需更改rgbBrightness []值。这些值以百分比表示该颜色的亮度其中0为01为100。rgbBrightness []中的1-3数组分别表示红色绿色和蓝色。ledDelay这表示在灯光模式2下颜色切换过程之间的延迟这意味着如果延迟较高则颜色将缓慢切换而如果延迟较低则颜色将更快切换。colorIncrementDelay这表示在灯光模式2下切换颜色之间的时间。使用键盘该键盘的使用非常简单直接插入电脑USB口即可作为正常低延迟轮询速率为1000hz的HID键盘使用。同时还可以通过按键修改LED的模式和颜色。按键说明按下模式按钮的时间少于0.3s会更改照明模式。按下按钮超过0.3s但少于5s会更改LED颜色可以通过代码进行自定义。按住按钮超过5s将开始改变LED的亮度并且按住按钮时亮度将以1s的增量下降。亮度将在释放按钮时设定。灯光模式静态色按下键时点亮交替默认固件在红色和蓝色之间但是可以有多种颜色系统的所有配置信息都是存放在EEPROM中。配置按键若想能够随时、方便的修改按键对应的键值则需要开启程序中的串口通信功能。有了该功能后系统将可以通过串口命令对其进行配置。也可通过上位机软件对其进行配置串口命令s{key number}:{character}:s:1:k:,将按键1设置为k使用上位机软件上位机软件说明连接设备后可以使用该程序即时设置按键绑定。为此请使用名为keybinds的面板。您可以通过下拉菜单参考帮助-键映射的键映射选择键编号然后可以通过文本框输入键绑定值。目前仅接受Ascii字符和数字不幸的是冒号不是可行的选择因为它被用作分隔符。如果要禁用该键只需在文本框中什么也不放然后按set键即可。填写完两个选项后只需按设置按钮如果一切顺利就可以设置按键绑定。即使断电此新设置也将保存在微控制器上。原始序列号和状态这两个部分用于诊断目的。原始串行是设备发送回的串行数据的显示状态面板显示了存储在设备上的不同设置。组装效果图底板组装视频实物图公众号后台回复stm32键盘 即可获取全部设计资料。推荐阅读专辑|Linux文章汇总专辑|程序人生专辑|C语言我的知识小密圈关注公众号后台回复「1024」获取学习资料网盘链接。欢迎点赞关注转发在看您的每一次鼓励我都将铭记于心~嵌入式Linux微信扫描二维码关注我的公众号