STMCU小助手
发布时间:2022-4-15 10:00
|
本文开发环境: MCU型号:STM32F103C8T6最小系统板 IDE环境: MDK V5.36 代码生成工具:STM32CubeMx 6.3.0 电路板实拍:
一、配置CubeMX 新建工程,选择芯片,配置SYS,RCC略 1.1 时钟树配置 这里直接把时钟开到最高72MHz
读数据手册,可以发现只有TIM1是挂载在APB2总线上的
1.2 配置DMA
周期计算: WS2812B需要800kb的周期,系统时钟是72MHz,TIM1是挂在APB2总线上的,它的时钟也是72MHz, 因此,有:72 * 1000 / 800 = 90 (89+1),因此自动装载值设为 89 ;
这样cubeMX的配置就完毕了,打开生成的工程文件。 最终引脚配置图:
可以发现,PWM输出引脚为PA8。 二、代码部分 在main.c里添加: 此函数实现了灯效的控制,可以通过用户传入的RGB参数,来自动填充数组:
这里写2个小函数,方便对连续的一组灯进行控制
此函数设置了灯的颜色情况,并通过延时来控制灯的闪烁:
三、现象 (角落里有个灯没焊好,回头改一下)
四、后记 我是在立创开源广场看到的5X5X5光立方工程,然后就想复现一下,理论上有五层(光立方),目前只做了一层(光平方)做测试,后续我会把五块都做出来然后连起来。 然后WS2812的具体原理和代码逻辑,在前言里的那篇大佬写的博文里写的很清楚,在这里我也只是做一些小补充,然后移植到一个实例中来。 另外,单片机给的3.3V供电不能保证电路能正常工作,灯少好像还行,但多了的话经过实测,至少要到3.5V的供电电压,这可能与具体元器件有关系,如果亮灭情况有问题的话,大家也可以从供电的角度查一查。 |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版