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

        代码:

//发一位0
void SPI_WS2812_Send_0()
{
	SPI_SendByte(0XE0);
}
//发一位1
void SPI_WS2812_Send_1()
{
	SPI_SendByte(0XFC);
}
//发送一个字节
void SPI_WS2812_SendByte(u8 byte)
{
    u8 i;
	for(i=0;i<8;i++)
	{
		if (byte>>7)
    {
			
		SPI_WS2812_Send_1();

    }
    else
    {
		SPI_WS2812_Send_0();

    }
		byte=byte<<1;
	
	}
}

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

ba7fe32424694ce4aa3610f318d5e8b1.png

四、部分代码说明

        1、接线说明

//这里直接接SPI的MOSI引脚,其他引脚可以不配置,但是SPI要配置

//MOSI引脚

#define      WS2812_SPI_MOSI_APBxClock_FUN     RCC_APB2PeriphClockCmd

#define      WS2812_SPI_MOSI_CLK                RCC_APB2Periph_GPIOA    

#define      WS2812_SPI_MOSI_PORT               GPIOA

#define      WS2812_SPI_MOSI_PIN                GPIO_Pin_7

        2、主函数

/*

 * 函数名:main

 * 描述  :主函数

 */

int main(void)

{

uint8_t i=0,Num=0;

DelayInit();

/* 8M串行flash W25Q64初始化 */

SPI_WS2812_Init();

    while(1)
    {

        if(Num>9)
        {
            Num=0;
        }

    DIS_Num(Num,RGB_Buf[i%12]);
    i++;
    Num++;
    DelayMs(500);

    }

}

五、相关资料链接

  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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值