跳到主要内容

STM32F103RCT6 WS2812B RS-485 灯控板

STM32F103RCT6 WS2812B RS-485 灯控板

STM32F103RCT6 主控,RS-485 Modbus RTU 从站,驱动 WS2812B 灯带 / 点阵(单通道最多 512 颗),支持场景与播放列表

概览 · 固件 · 资料下载

规格

主控STM32F103RCT6,256 KB Flash,48 KB RAM,LQFP64
晶振8 MHz
供电DC 5–24V(DC 座或接线端子)
调试接口SWD(PA13 / PA14)
调试串口USART1 TX=PA9 RX=PA10

上手指南

接线

本节按原理图和资料整理,未上板实测

  • 供电:DC 座,或端子「5V-24V / GND」。DC 5–24V 输入;板上降压出 5V 给灯带、3.3V 给 MCU
  • 灯带控制口:端子 +5V / DO / G;DO 来自 PA8,经板上电平转换成 5V。+5V → 灯带电源,DO → 灯带 DI,G → GND;灯多时灯带另接 5V 电源并与板子共地
  • 灯带 5V 输出:USB-A 口。给灯带供 5V
  • RS-485:端子 485A+ / 485B-,GND 共地;USART2 TX = PA2,RX = PA3,DE/RE = PC1(收发器 SP3485)。Modbus RTU 从站
  • 调试串口:USART1 TX = PA9,RX = PA10,引到 J4 排针:第 6 脚 = PA9(TX)、第 5 脚 = PA10(RX)、第 1 脚 = GND;需外接 USB-TTL。启动打印,115200 8N1
  • SWD:排针 3V3 / IO / CK / G(J5:第 2 脚 SWDIO = PA13,第 3 脚 SWCLK = PA14)。烧录 / 调试
  • 扩展:J4 10 针(1 → 10):GND、3.3V、PA12、PA11、PA10、PA9、PA7、PA6、PA5、PA4。扩展 IO,固件 v2.0.0 只用到 PA9 / PA10(调试串口)
  • 指示灯:LED-R = PC6。指示

烧录步骤

本节按原理图和资料整理,未上板实测

调试器(J-Link / ST-Link / DAPLink)接 SWD

  • WS2812B-Modbus_RS485-PA2PA3_v2.0.0.hex,起始地址 0x08000000,40.1 KB(41040 字节)
  1. 调试器接 SWD 排针 3V3 / IO / CK / G(IO = SWDIO,CK = SWCLK,G = GND)。
  2. 烧录 hex,地址已内置,不带引导程序,从 0x08000000 运行。建议按扇区擦除,不要整片擦除,否则 0x0803F000 起的设置会恢复默认。
  3. 烧完复位,USB-TTL 接 J4 第 5 / 6 脚(PA10 / PA9)和 GND,115200 8N1 看启动打印;8×32 点阵做一次 RGB 自检后等待 Modbus 命令。

在线烧录(通用步骤):

  1. 用 Chrome 或 Edge 打开本站「在线烧录」页,DAPLink 调试器接到板子的 SWD 口,再插到电脑 USB。
  2. 页面里选这块板子和要烧的固件,点「连接」选择 DAPLink,然后点「烧录」。
  3. 烧完按复位键,对照下面「上电后串口应看到的输出」里的核对行。

打开在线烧录

出厂默认参数
调试串口USART1 115200 8N1
RS-485 波特率9600 8N1(可选 2400 / 4800 / 9600 / 19200 / 38400 / 57600 / 115200)(由固件推断,未上板实测)
Modbus 从站地址1(可经 Modbus 修改,范围 1–247)(由固件推断,未上板实测)
Modbus 功能码FC03 / FC06 / FC16
灯珠数出厂按 8×32 点阵 = 256 颗初始化;单通道最多 512 颗(暂定)
寄存器分区0x0000 系统配置、0x0020 灯带控制、0x0050 点阵控制、0x0080 特效引擎、0x00B0 像素直写、0x00C0 文字缓冲、0x0100 分段控制、0x0190 场景存储、0x0200 批量像素写
设置存储MCU 内部 Flash 末尾两页 0x0803F000 / 0x0803F800(由固件推断,未上板实测)

上电后串口应看到的输出

USART1(PA9 / PA10,J4 第 6 / 5 脚,外接 USB-TTL),115200 8N1(参考输出,以实物为准)

=== WS2812B Modbus Controller v2.0 ===
SYSCLK: 72MHz  RS485: USART2/PA2/PA3  DE: PC1
WS2812B: 256 LEDs initialized, RGB self-test done
Matrix: 8x32 initialized
Slave: 1  Baud: 9600  Parity: None
Modbus RTU ready. Waiting for commands...

核对行:=== WS2812B Modbus Controller v2.0 ===

第 5 行是出厂默认值,改过从站地址或波特率后会跟着变。

  • 上电后 8×32 点阵做一次 RGB 自检,随后等待 Modbus 命令。(由固件推断,未上板实测)

常见问题

本节按原理图和资料整理,未上板实测

重新烧录后从站地址、波特率变回默认了?
整片擦除会把设置(从站地址、波特率、场景等)恢复为默认值;按扇区擦除烧录不会碰到 0x0803F000 起的设置页。
灯多了亮度不够或板子复位?
板上 5V 输出电流能力尚未标定;每颗 WS2812B 满亮度约 60 mA,100 颗约需 5V 6A,灯多时灯带单独供电并与板子共地。
DIN 信号线建议不超过 30 cm,更长需加信号放大。
多块板级联通信不正常?
RS-485 总线两端建议加 120 Ω 终端电阻;多块级联时从站地址不能重复,出厂都是 1。
板上 SPI Flash W25Q32(4 MB)固件 v2.0.0 未使用,设置存在 MCU 内部 Flash。
v1.2 硬件能用这个固件吗?
能。v1.2 与 v1.0 引脚完全相同,只改了电源防反接二极管;512 颗上限为暂定值。

信息核对于 2026-11-08。

板卡说明

STM32F103RCT6 WS2812B RS-485 灯控板 一、板载资源 主控 STM32F103RCT6,Cortex-M3 72 MHz,256 KB Flash,48 KB RAM RS-485 USART2(TX=PA2 RX=PA3),DE = PC1,Modbus RTU 从站 灯阵 WS2812B 单通道最多 512 颗(暂定,v2.0.0 默认按 8×32 = 256 颗初始化),数据脚 PA8(TIM1_CH1 + DMA) 调试串口 USART1(TX=PA9 RX=PA10),115200 8N1 调试 SWD(PA13 / PA14) 看门狗 IWDG 供电 DC 5–24V 输入(DC 座或接线端子),板上降压出 5V 给灯带(USB-A 口 / 控制信号口),3.3V 给 MCU 存储器 SPI Flash W25Q32JVSSIQ(4 MB,SPI2:CS=PB12 CLK=PB13 DO=PB14 DI=PB15);固件 v2.0.0 未使用(设置存在 MCU 内部 Flash) RS-485 收发器 SP3485,DE/RE = PC1 指示灯 LED-R = PC6 扩展 J4 10 针排针(1→10):GND、3.3V、PA12、PA11、PA10、PA9、PA7、PA6、PA5、PA4 尺寸 待量(V1.0 旧板为 47.5 mm × 15 mm) 引脚占用见 引脚.csv。以上信息来自 v1.2 原理图、固件 ws2812b-modbus v2.0.0(启动打印 + 反汇编)和 商品详情页(_参考/,不发布),未上板实测。 本板原理图不对外提供(用户 2026-11-04 定)。 二、接线 供电 DC 座或端子「5V-24V / GND」,输入 5–24V 灯带 控制信号口(+5V / DO / G):+5V → 灯带电源,DO → 灯带 DI(板上 PA8 经 Q1 2N7002 转成 5V 电平),G → GND 灯多时灯带另接 5V 电源,与板子共地 RS-485 端子 485A+ / 485B-,GND 共地 SWD 3V3 / IO / CK / G 排针 三、注意 板上 5V 输出的电流能力尚未标定;每颗 WS2812B 满亮度约 60 mA,100 颗约需 5V 6A,灯多时单独给灯带供电。 DIN 线建议不超过 30 cm,更长需加信号放大。 RS-485 总线两端建议加 120 Ω 终端电阻;多块级联时从站地址不能重复。 四、烧录方式 调试器(J-Link / ST-Link / DAPLink)接 SWD。 各固件的烧录文件见 固件/<功能>/v<版本>/更新说明.md。

固件

主控芯片:STM32F103RCT6