九键自定义键盘 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 九键自定义键盘

  • 9.6k
  • 6
  • 62

简介:基于stm32的九键键盘,带旋钮和一个显示屏,支持热插拔和rgb【已验证通过】

开源协议: MIT

(未经作者授权,禁止转载)

创建时间: 2021-02-27 20:09:41
更新时间: 2023-09-27 19:00:55
描述
# 功能介绍 ## 图片 ![QQ图片20210324095831.jpg](//image.lceda.cn/pullimage/XuEGuTR3KoG44kkXOsuEXh20eMKR7KHCE6CEyNKx.jpeg)![QQ图片20210324095840.jpg](//image.lceda.cn/pullimage/KG2fqwjUSwAnuT7DvWItkpcjyl6UNHTmaxIKw2Q0.jpeg) ## 特色 1. 九键热插拔RGB键盘 2. 旋钮控制 3. 可自定义任意按键,带宏功能 4. rgb灯可实现呼吸灯、彩虹灯特效 5. 键盘可定义三层,按键不同,每颗按键可最大容纳93个按键 6. 独立存储,断电不丢失 7. 上位机控制 8. 多媒体按键控制 9. 上位机和单片机开源 10. ~~红外遥控~~ ## 实现思路 stm32采用HID与电脑相连,共设置两个端点,一个用于与上位机通讯,一个用于键盘。采用矩阵键盘扫描思路,添加二极管用于全键无冲。下载口和串口分别引出,可以用于调试。ws2812灯采用spi和dma控制。采用at20c64作为存储。参考了许多大佬的源码,故代码可能有点乱。 ## 坑 ### 坑1 由于stm32f103c8t6涨价厉害,开始买的国产hk,但最后发现usb不能用。 ### 坑2 前期焊接水平太低,重新买了c8t6焊接失败,最后买了stm32febkc6t6,本身是电动车专用芯片,但实际可以pin to pin兼容,完全替代f103c6t6,超级便宜,但是内存和存储太小,只有10/32kb,相比c8的20/64有点小,而且开始设计时ws2812用的spi2口,c6没有spi2,....,rgb无法实现,想采用pwm最终没有实现 ### 坑3 不知道为啥把sda,scl上拉选成10k,每次上显示器,at20c64就失效,排查了好久,最终终于把oled12832弄坏,因此实际现在显示上位机还有点问题,下位机也没调试了,先当无屏幕用 ### 坑4 cubemx每次配置都会把是usb重置,建议每次配置生成代码前保存Middlewares和USB_DEVICE文件夹,生成代码完成后替换文件 ## 需要修正的地方 由于穷(懒),我在电路图上修正了部分错误,将ws2812控制spi2换到了spi1,预留了pwm控制,因此实际用时代码需要微调 如果采用c6t6的话可以使用分支newf103c6 采用c8t6使用分支newf103c8 需要修改地方如下 1. ![Snipaste_2021-03-24_09-42-38.png](//image.lceda.cn/pullimage/0yW6cvFvehlYiBURZeWqNCAJq2oah6NJDw9VpioN.png) 原来旋钮采用的是pa5和pa6,新的采用pa10和pa11,需要重新设定pa11为中断触发,pa10输入,都为下拉 程序改动如下,在main.h里面替换pa5,pa6 > void HAL\_GPIO\_EXTI\_Callback\(uint16\_t GPIO\_Pin\) \{ > if \(GPIO\_Pin == GPIO\_PIN\_6\) \{ //ec11旋钮数据 > delay_us(100); > //printf("145\n"); > if \(HAL\_GPIO\_ReadPin\(GPIOA\, GPIO\_PIN\_6\) == 1\) \{ > if \(HAL\_GPIO\_ReadPin\(GPIOA\, GPIO\_PIN\_5\) == 1\) \{ > //顺时针 > //delay_ms(10); > knobkey_send(0); > } else { > //逆时针 > knobkey_send(1); > } > } > \_\_HAL\_GPIO\_EXTI\_CLEAR\_IT\(GPIO\_PIN\_6\); > } > } 2.将spi2配置成spi1,配置方式参数一致,开启dma,速度2.25m 将ws2812.c中hspi2改成hspi1,有两处地方 3.开启屏幕 > 将infoDeal\.c中void Info\_Deal\_Display\(void\)第二个return删除 ## 其他 主要维护还是c8t6版本,bug也主要修复c8t6,毕竟空间大点,c6t6能用,能实现基础的键盘功能,灯由于没有spi2没有验证,后期虽然改成spi1还没有打板 ## 上位机 采用C#编程,管理员权限用于获取cpu温度,net4.5,毕竟为了功能,实际比较丑 ![Snipaste_2021-03-24_09-54-56.png](//image.lceda.cn/pullimage/VtNfkjNQXWrDkqPLu7kbPPf1Jq8zKuzIBlapvz9S.png)![Snipaste_2021-03-24_09-55-07.png](//image.lceda.cn/pullimage/51XZWxFEeyhh9f9N1aiilJilXHJ217VmCy5SQime.png) ## 开源 代码开源在码云上 上位机:[https://gitee\.com/wanglifree/customized\_keyboard\_csharp\.git](https://gitee.com/wanglifree/customized_keyboard_csharp.git) 单片机:[https://gitee\.com/wanglifree/stm32\_customized\_keyboard\.git](https://gitee.com/wanglifree/stm32_customized_keyboard.git) 请查看分支 3d打印外壳:[https://gitee\.com/wanglifree/customized\_keyboard\_3dmode\.git](https://gitee.com/wanglifree/customized_keyboard_3dmode.git) sw2016编辑,已导出stl可以直接打印
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
ID Name Designator Footprint Quantity
1 0.1u C1,C2,C3,C4,C8,C9,C10,C11,C13,C16 C0805 10
2 100n C5 C0805 1
3 20pf C6,C12 C0805 2
4 10uF C7 C1206 1
5 10p C14,C15 C0805 2
6 SS14 D1,D2,D3,D4,D5,D6,D7,D8,D9,D10 SMA_L4.4-W2.8-LS5.4-RD 10
7 EC11E152T409 EC1 SW-TH_EC11XXXXXXXX 1
8 SL1206110 F1 F1206 1
9 HDR-F-2.54_1x4 H1 HDR-F-2.54_1X4 1
10 HDR-M-2.54_1x3 J1 HDR-M-2.54_1X3 1
11 LED-0805_R LED1 LED0805_RED 1
12 OLED0.91_4P OLED OLED-0.91-2.54*4P-IIC 1
13 图片 PIC1 图片2 1
14 SS8050 Q1 SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BR 1
15 10k R1,R2,R3,R4 R0805 4
16 1k R5,R6,R7,R10 R0805 4
17 1M R8 R0805 1
18 2.2k R9,R11 R0805 2
19 20 R12,R14 R0805 2
20 4.7K R13 R0805 1
21 STM32F103C8T6 STM1 LQFP-48_L7.0-W7.0-P0.50-LS9.0-BL 1
22 凯华KAILH热插拔底座 U1,U2,U3,U4,U5,U6,U7,U8,U9 CHERRY_MX_热插拔_3528RGB(左入) 9
23 CAT24C64WI-G U10 SOIC-8_L4.9-W3.9-P1.27-LS6.0-BL 1
24 LM1117GS-3.3 U11 SOT-223-3_L6.5-W3.4-P2.30-LS7.0-BR 1
25 TYPEC-304-BCP16 USB1 USB-C-SMD_TYPEC-304-BCP16 1
26 8MHz X1 HC-49US_L11.5-W4.5-P4.88 1

展开

工程视频/附件
序号 文件名称 下载次数
1

QQ视频20210324095837.mp4

450
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP