学而思小喵掌机GD32固件
2026-07-19
机器正面底部的金属按钮接到了GD32F350的PA15,按下后接到地,由于PA15没有外部上拉,程序内需要配置成上拉输入。

GD32的PA0和PA1同时接到了ESP32的IO0上,PA0可以保持原有的ESP32下载控制功能,PA1可作为TIM1_CH1控制屏幕的背光。
正常启动时,PA0设置为开漏输出且输出高,PA1设置成推挽输出,控制LED的负极,本机屏幕的背光LED是3.3V的且回路中串联了一个22R电阻,因此直接使用IO口控制负极没什么大问题。
下载时,关闭PA1的TIM1_CH1功能,将PA1设置成模拟输入,不影响PA0对ESP32启动引脚的控制。
控屏背光固件:
https://github.com/Yanye0xFF/xueersi_xiaomiao_gd32_firmware
2026-07-06
原机TF用的SPI模式,卡槽的IO2,IO3空着的,可以把GD32MCU的调试口SWCLK,SWDIO飞线过去,后期调试时可以用TF卡转接板引线。

这个GD32芯片主要负责虚拟USB串口给ESP32模块下载程序,电机驱动芯片的控制,以及正面右侧的两个LED灯。
解除芯片保护才可以重新编程
通过Jlink Commander读写单片机寄存器,修改OB相关寄存器即可解除读保护,过程如下:
// 查看当前 SPC 字节
mem 0x1fffF800 0x10
// 解锁 FMC_Bank0
w4 0x40022004 0x45670123 //FMC_KEY = UNLOCK_KEY0;
W4 0x40022004 0xcdef89ab // FMC_KEY = UNLOCK_KEY1;
// 查看寄存器
mem32 0x40022000 0x10
w4 0x40022008 0x45670123 //FMC_OBKEY = UNLOCK_KEY0;
w4 0x40022008 0xcdef89ab //FMC_OBKEY = UNLOCK_KEY1;
mem32 0x40022000 0x10
// 清楚可能存在的错误标志位
w4 0x4002200C 0x00000034 //fmc_flag_clear(FMC_FLAG_PGERR | FMC_FLAG_WPERR | FMC_FLAG_END);
// OB 字节擦除指令使能
w4 0x40022010 0x0220 // OBER
// 执行擦除
w4 0x40022010 0x0260 //STAR
// 使能 OB 字节编程
w4 0x40022010 0x0270 //OBPG
// 恢复默认值,退回未保护态
w2 0x1ffff800 0x5aa5
// 开启寄存器锁保护
w4 0x40022010 0x80
// 可再次查看 SPC 字节
mem 0x1fffF800 0x10 //
原机固件备份,前16KB是U2F Bootloader,从0x08004000开始是固件本体。
https://files.cnblogs.com/files/blogs/575121/dump_gd32f350g8.zip?t=1783343131&download=true

浙公网安备 33010602011771号