码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • K_A01_001 基于单片机驱动WS2812 点灯流水灯 0-9显示


    目录

    一、资源说明

    二、基本参数

    三、通信协议说明

            WS2812时序:

            代码:

    四、部分代码说明

            1、接线说明

            2、主函数

    五、相关资料链接

     六、数字提取格式

     七、视频效果展示与资料获取

     八、项目所有材料清单

     九、注意事项

     十、接线表格


    一、资源说明

    单片机型号

    测试条件

    模块名称

    代码功能

    STM32F103C8T6

    1. 晶振8M
    2. 系统时钟72M

    WS2812模块

    1. WS2812点一个灯(红绿蓝切换)
    2. WS2812(8X8点阵)单色流水灯
    3. WS2812(8X8点阵)显示0-9

    二、基本参数

       这里用的是8X8 WS2812B RGB灯模块,其他WS2812B 一位,两位,四位灯均一样,其他具体可以看下手册 ,主要参数是引脚定义和时序。

    bb6adeb6d06e4ac0a2d99c7d98487891.png

    三、通信协议说明

            因为直接引脚输出很难做到WS2812时序要求,这里用SPI通信来做数据输出.当RESET时间小于280us时会继续第一个周期,大于280us时才会重新开始新的周期。

            WS2812时序:

    358bb4d1550b410ca0172556de52afb4.png

    cd5638dbb8544a00bd83f1c938351d64.png

            代码:

    1. //发一位0
    2. void SPI_WS2812_Send_0()
    3. {
    4. SPI_SendByte(0XE0);
    5. }
    6. //发一位1
    7. void SPI_WS2812_Send_1()
    8. {
    9. SPI_SendByte(0XFC);
    10. }
    11. //发送一个字节
    12. void SPI_WS2812_SendByte(u8 byte)
    13. {
    14. u8 i;
    15. for(i=0;i<8;i++)
    16. {
    17. if (byte>>7)
    18. {
    19. SPI_WS2812_Send_1();
    20. }
    21. else
    22. {
    23. SPI_WS2812_Send_0();
    24. }
    25. byte=byte<<1;
    26. }
    27. }

    逻辑分析仪抓取图片分析,符合WS2812时序

    ba7fe32424694ce4aa3610f318d5e8b1.png

    四、部分代码说明

            1、接线说明

    1. //这里直接接SPI的MOSI引脚,其他引脚可以不配置,但是SPI要配置
    2. //MOSI引脚
    3. #define      WS2812_SPI_MOSI_APBxClock_FUN     RCC_APB2PeriphClockCmd
    4. #define      WS2812_SPI_MOSI_CLK                RCC_APB2Periph_GPIOA    
    5. #define      WS2812_SPI_MOSI_PORT               GPIOA
    6. #define      WS2812_SPI_MOSI_PIN                GPIO_Pin_7

            2、主函数

    1. /*
    2.  * 函数名:main
    3.  * 描述  :主函数
    4.  */
    5. int main(void)
    6. {
    7. uint8_t i=0,Num=0;
    8. DelayInit();
    9. /* 8M串行flash W25Q64初始化 */
    10. SPI_WS2812_Init();
    11. while(1)
    12. {
    13. if(Num>9)
    14. {
    15. Num=0;
    16. }
    17. DIS_Num(Num,RGB_Buf[i%12]);
    18. i++;
    19. Num++;
    20. DelayMs(500);
    21. }
    22. }

    五、相关资料链接

    1. STC89C52RC程序下载   直戳跳转
    2. STM32F103C8T6程序下载
      1. 串口下载                直戳跳转
      2. ST-LINK下载          直戳跳转
      3. J-LINK下载             直戳跳转
      4. DAP-LINK下载       直戳跳转
    3. 字符软件使用                  直戳跳转

     六、数字提取格式

    文字格式:共阴——逐列式——逆向——C51,其他默认

    b134a9c6d5af49dca449e098e6a20f59.png

    提取字符:新建图像——输入点阵大小——输入字符图形——生成字模——复制数据到程序数组

    69c03315ba224b39b0d874bb6e923ab6.png

    1c8d7daf4782452b996bb067ee29d098.png

     七、视频效果展示与资料获取

            视频连接      直戳跳转

            资料获取            ( 滑到最后添加群号看公告免费获取)    

     八、项目所有材料清单

    STC89C52RC驱动方案STM32F103C8T6驱动方案图片

    备注

    K_A01_001

    注:STC89C52RC单片机太慢无法达到WS2812B时序要求STM32F103C8T6系统板X1 8ea0f8ce0053491c892f5de0bdf60bdf.jpeg 

    1. STM32系统板两根Micro USB线一根用于J-LINK下载器,另一根用于给系统板供电
    2. 杜邦线建议不用太长的
    3. 同WS2812B模块灯个数不一样的程序都通
    8X8 WS2812B灯模块X1 29d7343518d74e3cb4bff339c3f78145.jpeg 
    Micro USB线X2 4f9a76fb095a4ce696ef497a6eeda424.jpeg 
    母母杜邦线X3 20d6708aa8a94a5c8a5aa704bc504300.jpeg 
    J-LINK下载器 8c6e8a09bbf44beda6385fb2328cf191.jpeg 

     九、注意事项

    1. VCC GND请勿接反,接反易烧
    2. 显示异常时,排除接线接触不良
    3. 同程序换开发板不断电直接接其他同类模块建议按单片机复位
    4. 同WS2812B模块灯个数不一样的程序都通用
    5. 下载后显示如果有异常的时候可以重新上电复位下

     十、接线表格

    单片机型号

    模块

    对应引脚(上:模块引脚 下:单片机引脚)

    STM32F103

    C8T6

    8X8 WS2812B灯模块

    V-

    V+

    IN

    GND

    5V

    PA7

  • 相关阅读:
    VBA学习(17):使用条件格式制作Excel聚光灯
    中国人民大学与加拿大女王大学金融硕士——另辟蹊径往往能带来柳暗花明
    聚观早报 | 多款热门游戏停服一天;比亚迪下月在日本开售
    前后端分离项目,vue+uni-app+php+mysql在线考试系统(H5移动项目) 开题报告
    如何写出匹配Java方法注释的正则表达式
    找工作
    基于java病人追踪治疗信息系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
    京东数据分析:2023年9月京东白酒行业品牌销售排行榜
    ES6中的set与map
    我的设计模式之旅、12 原型模式
  • 原文地址:https://blog.csdn.net/lfmnlxx79691557/article/details/127466501
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号