# keyboardScan **Repository Path**: feixiangjusha/keyboard-scan ## Basic Information - **Project Name**: keyboardScan - **Description**: 键盘DIY 扫描按键矩阵程序 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2021-01-25 - **Last Updated**: 2024-03-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # keyboardScan #### 介绍 修复键盘 扫描按键矩阵程序 遇到主控损坏的机械键盘或者薄膜键盘,可以自己用单片机DIY一个主控,但是需要先搞清楚键盘的接线定义。咋搞,直接万用表一个一个测,会吐血的,会搞单片机的,必须用单片机实现自动扫描。 #### 使用说明 1. 首先拥有一个stm32f103最小系统(其他单片机亦可,自己移植) 2. 拆除键盘损坏主控,飞线连接到stm32最小系统IO引脚(PA9、PA10用作串口,禁止使用) 3. 按照步骤2中连接顺序修改GPIO_Extend.c文件中数组*scanKeys[]的GPIO 4. 下载程序到单片机, 5. 连接串口1到ttl,串口软件设置:波特率9600、8位数据、无校验、一位停止位 6. 单片机上电,串口打印“start sacn”,开始按键扫描 7. 按下键盘“Esc”按键,串口会打印Esc对应的按键接线“[line1,line2]{IO1,IO2}”,如:[2,3]{PB2,PC3} 即表示“Esc”按键对应排线2和排线3(对应最小系统PB2和PC3,暂无意义) 8. 以line1为行,line2为列在excel文件中建表,记录line1,line2对应按键为Esc 9. 重复7-9,直到所有按键都已经记录为止 #### 使用举例 1. 祭出自己打的笔记本驱动板![PCB](https://oshwhub.com/jusha/bi-ji-ben-jian-pandiy) ![驱动板](./驱动板正面.jpg) 2. 连接Jlink,下载程序,连接串口(Tx) ![STC-ISP](./STC-ISP.jpg) 3. 下载程序,查看串口打印`"start scan" 4. 连接好笔记本排线 5. 创建excel文件,打开 6. 按下待测键盘Esc,串口软件打印`"[0,10]{B06,C03}"` 7. excel按行0,列10记录Esc ![Esc](./Esc.jpg) 8. 按下F1,串口打印`"[11,12]{A00,A01}"` 9. excel继续记录 ![F1](./F1.jpg) 10. 整理完成,最终结果(见**keyboard demo.xls**) ![over](./over.jpg) 11. 编写键盘驱动代码(暂未完成) ### 未来功能 目前使用需要结合excel等自己整理矩阵连线定义,未来会考虑按照108键盘键值。发送键值引导码,引导按下按键,自动记录按键对应接线,全部键值引导记录完毕后直接导出矩阵连线定义。同时添加跳过按钮,用以跳过不存在或者无法按出的按键(如87键盘就不存在小键盘区)。 PS:未来功能只存在于未来,估计会偷懒,不会实现。