news 2026/7/19 23:45:07

基于stm32f103c8t6最小系统板的ws2812b广告牌设计——桂林电子科技大学软硬件小学期课设

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于stm32f103c8t6最小系统板的ws2812b广告牌设计——桂林电子科技大学软硬件小学期课设

前言:

由于原理图设计和PCB打板出现些许问题,预定准备的字库存储芯片和蓝牙模块没有用上,在该背景下,我将仅使用最小系统板,2个独立按键以及2块8*32的ws2812灯带,实现的效果仅是内置好汉字和英文效果。有需要的自行优化。

一、项目背景

本项目使用 STM32F103C8T6 最小系统板作为控制器,驱动两块8×32 WS2812B点阵屏。两块灯板左右级联后,共有512颗LED,逻辑显示区域为16列×32行。

项目最终需要实现:

  • 显示16×16汉字;
  • 预设中文内容向上滚动;
  • 显示英文“hello world”;
  • PA11切换中英文内容;
  • PA12切换滚动、静止和闪烁模式;
  • 使用USB-TTL完成程序下载和串口调试;

从功能上看,这只是一个文字滚动灯牌,但实现过程中同时涉及WS2812B时序、定时器PWM、DMA、坐标映射、字模、供电、信号完整性和硬件装配等问题。

二、项目需求

面包板(用于后续+5v和GND共地)

外部电源(8*32的ws2812灯带在满负载的情况下,电流可以达到15.36A,而灯带需要的电压至少+5V,最小系统板一般只能提供+3.3V)

stm32f103c8t6最小系统板

直插式独立按键2个


三、项目效果

由于学校发的只是2个8*32的灯带,如果是8*8取字模的话,基本看不清,所以用2个灯带拼接在一起。

四、项目难点

1.WS2812B并不适合只依赖Proteus验证

Proteus比较适合验证普通GPIO、按键、串口、定时器和LCD等常规外围电路,但WS2812B属于对波形时间要求比较严格的数字器件。

它的每个数据位周期大约只有1.25 μs,逻辑0和逻辑1并不是通过普通高低电平区分,而是通过高电平持续时间区分。因此,仿真模型必须准确处理:

  • 800 kbit/s单总线数据;
  • T0H和T1H高电平时间;
  • 24位GRB颜色顺序;
  • 多颗灯珠的数据截取和转发;
  • 帧末尾的复位低电平;
  • 数百颗灯珠的连续级联。

2.WS2812B不是普通LED

普通LED只需要输出高低电平,而WS2812B内部带有控制芯片,每颗灯珠需要接收24位颜色数据,顺序通常为:

G7...G0 → R7...R0 → B7...B0

第一颗灯珠保留前24位,再把后面的数据转发给下一颗。发送完全部数据后,数据线需要保持足够长的低电平,让所有灯珠同时锁存颜色。

因此,驱动程序必须同时保证:

  • 位周期正确;
  • 0码和1码高电平宽度正确;
  • GRB顺序正确;
  • 灯珠数量正确;
  • 发送数据不能中断;
  • 帧尾复位时间足够。

任何一项错误都可能表现为随机颜色、局部点亮或整板爆闪。

3. PWM与DMA方案

系统时钟为64 MHz,一个时钟计数约为:

1 ÷ 64 MHz = 15.625 ns

WS2812B每个数据位周期约为1.25 μs,因此设置80个定时器计数:

80 × 15.625 ns = 1.25 μs

项目采用的PWM比较值为:

逻辑0:CCR = 22,高电平约0.344 μs 逻辑1:CCR = 45,高电平约0.703 μs

程序先把每个数据位转换为22或45,再由DMA连续写入TIM1的CCR1寄存器。这样每一个脉冲都由硬件产生,稳定性高于软件延时。

4.灯板级联与坐标映射

1. 物理连接方式容易理解错误

最初对灯板内部级联方向的理解有误,以为灯珠按照逐列方式连接。实际灯板采用逐行蛇形连接:

第0行:从左到右 第1行:从右到左 第2行:从左到右 第3行:从右到左 ……

如果仍然按照普通二维数组计算序号,显示出来的文字就会左右翻转、笔画断裂,甚至出现左右亮、中间不亮的固定图案。

2. 两块灯板级联后的映射

两块8×32灯板左右放置:

左侧灯板:物理序号0~255 右侧灯板:物理序号256~511

逻辑屏幕尺寸为16×32。坐标转换可以写成:

panel = x / 8; local_x = x % 8; base = panel * 256; if ((y % 2) == 0) index = base + y * 8 + local_x; else index = base + y * 8 + (7 - local_x);

这样,字模程序只处理普通的x、y坐标,底层映射函数负责处理左右灯板和蛇形方向。

5.WS2812B的电源电流不能忽略

理论上,一颗WS2812B全白高亮时电流可能达到约60 mA。512颗全部全白的理论电流可能非常大:

512 × 60 mA = 30.72 A

实际项目使用低亮度单色显示,电流远低于这个数值,但PCB和接线仍不能按照普通小信号电路处理。

打板时应考虑:

  • 5V电源使用较宽铜线或大面积铺铜;
  • 两块灯板分别注入电源;
  • 避免让全部电流经过最小系统板;
  • 灯板入口增加大容量电解电容;
  • 每个模块附近增加0.1 μF去耦;
  • 数据地和电源地可靠连接;
  • 电源接口需要留有足够电流余量。

6. 下载接口必须提前考虑

因为项目只有USB-TTL,没有ST-Link,所以需要使用STM32内部Bootloader下载:

USB-TTL TX → PA10 USB-TTL RX → PA9 USB-TTL GND → STM32 GND

打板时应预留:

  • PA9;
  • PA10;
  • GND;
  • BOOT0跳帽或按键;
  • RESET按键。

五、项目总结

在初期准备上没有准备好原理图,PA9和PA10引脚没有引出来,导致下载插拔困难。在遇到ws2812的各种问题并解决,在有限的情况下,尽量做出来的半成品。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 23:44:21

AI Agent时代Skill安全防护全解析

1. Skill安全运行的现状与挑战最近GitHub上一个名为"同事.skill"的项目在短短5天内获得超过6600个star,引发了广泛关注。这个现象背后反映出一个重要趋势:Skill正在成为AI Agent时代的核心能力单元。从技术架构来看,大模型相当于Ag…

作者头像 李华
网站建设 2026/7/19 23:38:33

番茄小说下载器完整指南:免费开源工具实现小说离线阅读自由

番茄小说下载器完整指南:免费开源工具实现小说离线阅读自由 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 你是否曾经因为网络信号不佳而无法继续阅读番茄小说?或者…

作者头像 李华
网站建设 2026/7/19 23:37:23

2026香港EMBA QS排名择校测评:民企老板避坑性价比榜单

【中立客观测评声明】本文为独立商科教育测评内容,无硬性广告导向,基于2026QS权威排名、院校官方数据及真实校友反馈,聚焦民企创始人、科创企业高管择校痛点,从成本、落地、圈层、长期赋能四大维度,客观拆解主流香港EM…

作者头像 李华