标签存档: STM32

做个基于STM32+QMK的茶轴机械数字小键盘,带编码器和OLED屏幕~

之前为了验证 STM32F103 作为键盘 QMK 固件的主控是否可行,顺便学习一下 QMK 固件的配置和开发,做了个带编码器和 OLED 屏幕的数字小键盘。不过因为一直没搞定在 OLED 上显示动画,就一直没发。

周末花了点时间学习了一下终于把在 QMK 里面显示动画搞定了。

对于在 QMK 固件中怎么使用 STM32F103 当主控,可以看之前的文章:整个带屏数字小键盘吧,先搞定 QMK 固件支持 STM32F103 的 I2C Remap

成品效果

为了充分得用嘉立创免费打样券,PCB 的尺寸直接拉满到 10cm * 10cm 了,刚刚好够数字小键盘 + 2 个 EC11 编码器 + 1 个 12832 OLED 屏幕。

stm32-qmk-numpad-1

原理图设计

USB Type-C 连接及电源

这个数字小键盘用了 …

阅读全文 »

整个带屏数字小键盘吧,先搞定 QMK 固件支持 STM32F103 的 I2C Remap

之前参考立创开源平台的夏天大佬,做了一个基于 ATMega32A MCU + QMK 固件的 40% 配列键盘,不过最后又想用起来的时候发现,可能因为 ATMega32A 用的是软件模拟 USB,所以在 Mac 上的兼容性有点问题,因此就想着自己重新搞一个键盘。

在 QMK 固件的 MCU 支持列表里面翻了一下,发现 STM32F103C8T6 也是支持范围,而且搞一个 STM32duino-bootloader 就可以直接通过 USB 刷机,也是相当方便了。

关于 STM32F103 使用 STM32duino-bootloader,之前已经写了篇文章分享 做键盘必备,抛掉ST-Link,STM32F103通过USB烧录,STM32duino-bootloader踩坑记录

免费打样来测试

但是直接搞整个 40% 配列键盘,PCB 的尺寸超过了嘉立创免费打样的范围,因此准备先搞个数字小键盘来验证一下 STM32F103 做键盘的原理图。

照猫画虎搞个原理图

搞键盘主要就是确定行和列的引脚,为了最大能支持 104 键,就把能用的引脚全用上了。

另外为了使用 OLED 屏幕,这里使用了 PB8、PB9 作为 I2C 通信引脚。

qmk-stm32f103-i2c-remap-1

原理图画了之后,先拿开发板测试一下固件能不能用吧,然后就发现 PB9、PB8 …

阅读全文 »

做键盘必备,抛掉ST-Link,通过USB烧录固件,STM32F103使用STM32duino-bootloader 踩坑记录

前言

之前在 DIY 基于 QMK 固件的键盘的时候,直接借鉴了立创开源平台上的项目,使用了 ATmega32A 作为主控,ATmega32A 本身并没有硬件 USB 接口,把它作为键盘主控是通过使用 USBaspLoader 这样一个 bootloader 来实现的。

但是毕竟是软件实现,在以前复刻时,使用 ATmega32A 的键盘还是能正常配合 MacBook 使用的,但是最近发现在连接到 MacBook 之后,会很快丢掉连接,这下不得不去找一个带硬件 USB 接口的 MCU 了。

这时我就把眼光放到了 STM32F103C8T6 上,玩了这么久的 ESP32、CH32V003 什么的,还是没能逃过 STM32 😃。

而且相对 ATmega32A,STM32F103C8T6 的系统资源就丰富太多了,64KB Flash、20KB RAM 用来烧录一个 QMK 固件那是相当够用了,什么宏、层的数量,都开到最大。

最后的重点,作为习惯了使用 USB 直接烧录固件的人,也希望给 STM32F103C8T6 刷固件时也可以直接通过 USB 刷,这就找到了 STM32duino-bootloader 这个项目。

阅读全文 »