尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
基于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.3Vstm32f103c8t6最小系统板直插式独立按键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 nsWS2812B每个数据位周期约为1.25 μs因此设置80个定时器计数80 × 15.625 ns 1.25 μs项目采用的PWM比较值为逻辑0CCR 22高电平约0.344 μs 逻辑1CCR 45高电平约0.703 μs程序先把每个数据位转换为22或45再由DMA连续写入TIM1的CCR1寄存器。这样每一个脉冲都由硬件产生稳定性高于软件延时。4.灯板级联与坐标映射1. 物理连接方式容易理解错误最初对灯板内部级联方向的理解有误以为灯珠按照逐列方式连接。实际灯板采用逐行蛇形连接第0行从左到右 第1行从右到左 第2行从左到右 第3行从右到左 ……如果仍然按照普通二维数组计算序号显示出来的文字就会左右翻转、笔画断裂甚至出现左右亮、中间不亮的固定图案。2. 两块灯板级联后的映射两块8×32灯板左右放置左侧灯板物理序号0255 右侧灯板物理序号256511逻辑屏幕尺寸为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打板时应预留PA9PA10GNDBOOT0跳帽或按键RESET按键。五、项目总结在初期准备上没有准备好原理图PA9和PA10引脚没有引出来导致下载插拔困难。在遇到ws2812的各种问题并解决在有限的情况下尽量做出来的半成品。
RELATED

相关推荐

CS50笔记 笔记整理

CS50笔记 笔记整理

CS50笔记 笔记整理——哈佛大学CS50《计算机导论》课程(2019) 学习平台:哔哩哔哩学习大概50天了,笔记有点乱,稍微整理了一下(一)第一集 引言1.什么是计算机科学?计算机科学是指:解决问题的过程 &#xff…

📅 2026/8/23 17:22:51
终于搞懂 Kueue:5 个核心对象一次讲透

终于搞懂 Kueue:5 个核心对象一次讲透

很多人刚接触 Kueue 时最大的困惑,不是 YAML 怎么写,而是看着一堆 CRD:ResourceFlavor、ClusterQueue、LocalQueue、Cohort、Workload,不知道它们之间到底是什么关系。本文不会逐个照着 API 文档介绍字段,而是把这五个…

📅 2026/9/1 5:46:06
ThinkingCap-Qwen3.6-27B-mlx-6Bit模型深度解析:6位量化如何实现高效AI推理

ThinkingCap-Qwen3.6-27B-mlx-6Bit模型深度解析:6位量化如何实现高效AI推理

ThinkingCap-Qwen3.6-27B-mlx-6Bit模型深度解析:6位量化如何实现高效AI推理 【免费下载链接】ThinkingCap-Qwen3.6-27B-mlx-6Bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/ThinkingCap-Qwen3.6-27B-mlx-6Bit ThinkingCap-Qwen3.6-27B-ml…

📅 2026/9/6 0:06:16
MORE NEWS

更多资讯

📰

用MCTS+策略价值网络实现五子棋AI:从零到实战

简介:这是一套基于蒙特卡洛树搜索与策略价值网络的强化学习五子棋AI实现,面向对博弈AI、强化学习感兴趣的开发者与研究者,提供从零训练到人机对弈的完整代码。资源采用Python编写,共24个文件,以10个Python脚本为主&…

📰

如何本地部署 Eigent:多智能体 Cowork 桌面应用完整指南

如何本地部署 Eigent:多智能体 Cowork 桌面应用完整指南 【免费下载链接】eigent Eigent: The Open Source Cowork Desktop - Local and Free Alternative to Claude Cowork and Codex 项目地址: https://gitcode.com/GitHub_Trending/ei/eigent 月底要出一份…

📰

Matlab实现RCNN交通标志识别:候选区域与分类全流程

简介:基于RCNN的交通标志识别Matlab实现,面向本科、硕士阶段图像处理与智能交通方向教研学习。资源提供完整可运行的m源码、仿真结果图、训练数据mat文件及运行方法文档,覆盖图像标注、区域提议、CNN特征提取、分类识别等关键步骤&#xff0c…

📰

PCSX2 PS2模拟器上手指南:5步跑通你的第一局

PCSX2 PS2模拟器上手指南:5步跑通你的第一局 【免费下载链接】pcsx2 PCSX2 - The Playstation 2 Emulator 项目地址: https://gitcode.com/GitHub_Trending/pc/pcsx2 加载卡住、帧率掉到20、手柄没反应——多半是这里没配好 游戏加载到一半卡住,…

📰

G-Helper 完整教程:5 步轻量管理华硕笔记本性能(Armoury Crate 替代品)

G-Helper 完整教程:5 步轻量管理华硕笔记本性能(Armoury Crate 替代品) 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Stri…

📰

PyTorch Static Runtime 静态运行时:面向 CPU 推理的 TorchScript 优化执行引擎

PyTorch Static Runtime 静态运行时:面向 CPU 推理的 TorchScript 优化执行引擎 【免费下载链接】pytorch Tensors and Dynamic neural networks in Python with strong GPU acceleration 项目地址: https://gitcode.com/GitHub_Trending/py/pytorch 导读 S…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬