七、程序烧写教程

1、程序烧录总体思路

1.1、瀚文工程中需要烧录程序内容:

  • HelloWord-Keyboard-fw:主键盘的固件,主要实现了基于硬件SPI和移位寄存器的高速按键扫描、基于硬件SPI&DMA的总线式RGB灯控制、HID高速设备键盘枚举&报文协议实现、非易失存储配置、多层按键映射等功能。
  • HelloWord-Dynamic-fw:Dynamic组件的固件,主要实现了基于FOC的电机控制代码、可配置触感封装类、电子墨水屏驱动、OLED驱动、USB全速复合设备枚举和通信协议、RGB灯控制等功能。

1.2、烧录思路:

1.2.1、分别在主键盘部分和扩展部分使用烧录器通过烧录专用接口把bootloader(点击此处可查看BootLoader百度百科)底层程序烧录进芯片如下图所示:

bootloader文件我个人收集了2位大佬的:

1.2.1.1、第1位感谢xingrz提供的扩展部分bootloader底层程序源码:

https://github.com/xingrz/tinyuf2/releases/

备注:使用前请认真查看bootloader说明,其中详细说明了使用方法及以注意事项:

  • ​ 扩展APP地址偏移0x10000 (64k)

1.2.1.2、第2位感谢老罗提供的键盘部分bootloader底层程序烧写文件:

https://docs.keeb.pro/#/kb/HelloWorld75

备注:老罗使用的是QMK平台,他的boottloader地址偏移地址位0x4000 (16k)

知识点:
7000为十六进制数,转换为十进制数为28672,再除以1024就得到的28KB
4000为十六进制数,转换为十进制数为16384,再除以1024就得到的16KB
10000为十六进制数,转换为十进制数为65536,再除以1024就得到的64KB

1.2.2、组装好键盘;

1.2.3、通过USB接口链接电脑后通过电脑上的虚拟U盘分别对主键盘部分和扩展部分进行程序烧写,如下图所示:

备注:启动虚拟U盘操作指南:

  • 键盘主体:按住Fn键连接USB键盘电脑
  • ​ 扩展部分:按住中间按键连接USB键盘电脑

备注:

当然也可以直接使用大佬们改好的固件:

感谢俊杰提供了修改好的键盘主体源程序及扩展部分源程序,同时也感谢老罗提供了修改好的烧写文件,有需要的朋友请查看以下章节:

3、键盘主体烧写教程

3.1、使用ST-LINK烧录器烧写BL文件

3.1.1、正确连接好烧录器后,打开STM32 ST-LINK Utility软件,点击连接如下图所示:

3.1.2、选择BL文件:helloworld75_uf2bootloader

3.1.3、点击开始进行烧录

3.2、使用虚拟U盘烧录固件文件

3.2.1、烧写BL成功后拔下键盘,按住FN键再插上键盘使其出现虚拟U盘

3.2.2、把固件文件20230128_keebpro_hw75直接拖入虚拟U盘就会自动进行烧录

4、扩展部分烧写教程

4.1、使用ST-LINK烧录器烧写BL文件

4.1.1、正确连接好烧录器后,打开STM32 ST-LINK Utility软件,点击连接如下图所示:

4.1.2、选择BL文件:tinyuf2-hw75_dynamic-20230127.1

4.1.3、点击开始进行烧录

4.2、使用虚拟U盘烧录固件文件

4.2.1、烧写BL成功后拔下键盘,按住中间按键再插上键盘使其出现虚拟U盘

4.2.2、把固件文件hw75_dynamic-zmk5直接拖入虚拟U盘就会自动进行烧录