# OledKaycap **Repository Path**: fxsh/oled-kaycap ## Basic Information - **Project Name**: OledKaycap - **Description**: 本项目包含一款OLED键帽的设计文档,环境搭建及使用手册,软件代码,硬件原理图等设计资料。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-12-23 - **Last Updated**: 2023-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: OLED键帽, stc8g, Python ## README ## 概述 ​ 本项目包含一款OLED键帽的设计文档,环境搭建及使用手册,软件代码,硬件原理图等设计资料。 ​ 主要功能为当用于客制化键盘layer切换时,显示当前layer下的按键含义,也可修改源码用于其他意图。 ## 硬件描述 0.42寸72*40 OLED STC15W204S SOP封装单片机 ## 器件连接 MCU使用IIC接口连接OLED ## 生成STC-ISP可烧写的EEPROM文件 ### 1.1将图片文件转化为csv文件 ​ 打开Utils\PCtoLCD2002\PCtoLCD2002.exe ​ 进入图片模式,如下图: ![](./picture-doc/PCtoLCD2002-mode.png) ​ 点击[选项],弹出[字模选项]编辑页面,如下图: ![](./picture-doc/PCtoLCD2002-option.JPG) ​ 按照如下图所示进行配置 ![](./picture-doc/PCtoLCD2002-config.JPG) ​ 点击确定 ​ 按下图所示选择需要转换的图片 ​ ![](./picture-doc/PCtoLCD2002-choose.png) 创建一个文本文档xxx.csv,并将下方十六进制数据复制到上述csv文件中 ![](./picture-doc/PCtoLCD2002-gen.JPG) 删除不符合csv文件规范的多余字符(除十六进制数据之外全删掉) 多个bmp文件需要重复上述步骤多次,各BMP文件数据之间换行,不要空行!!! ### 1.2读取ttf字库中的文本并转化为csv文件 环境搭建 ``` sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev pip3 install pillow ``` 运行脚本 ``` python3 str2HexString.py A B C D E F G H ``` ### 2.使用脚本将csv文件转化为bin文件 主机python环境需要安装pandas ```sh pip install pandas ``` 执行Utils\Bmp2HexUtils\gen.py脚本生成hex文件 ```sh python.exe .\gen.py --line=23 --file=data.csv --uuid="0x0001,0x0002,0x0003" --order="0x0001,0x0002,0x0003" python.exe .\gen.py --line=23 --file=data.csv --uuid="0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008" --order="0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008" ``` ​ 本行命令将读取之前步骤手动创建的data.csv,将其转换为bmp.bin 各选项及其默认值如下: ```python parser.add_argument('--line', type=int, default=8, help='lines count of each bmp') parser.add_argument('--file', type=str, default='result.csv', help='CSV file of test result') parser.add_argument('--uuid', type=str, default='', help='uuid list of all bmp') parser.add_argument('--order', type=str, default='', help='uuid list of all bmp') parser.add_argument('--bmpsize', type=int, default=360, help='file size of each bmp') parser.add_argument('--outfile', type=str, default="bmp.bin", help='hex file of all bmp') parser.add_argument('--eepromSize', type=int, default=3584, help='hex file of all bmp') ``` ## 程序烧写 代码正常运行需要同时烧写代码和前述EEPROM文件 打开STC-ISP软件后, 1.选择单片机型号 2.选择下载串口号 3.点击[打开程序文件]和[打开EEPROM文件]按钮,选择对应文件, 4.设置运行频率和EEPROM大小 5.点击[下载/编程]按钮 ![](./picture-doc/stcisp-burn.JPG)