【外设验证】WS2812B彩灯

[复制链接]
查看563 | 回复15 | 2024-4-15 07:15:58 | 显示全部楼层 |阅读模式

说明

本次验证了 jkernet 大佬 GPIO 控制 WS2812 模块 外设库

【外设移植】WS2812B彩灯+M61开发板+显示器氛围灯 - DIY 经验分享 - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com)

外设移植里面的Demo是一个结合上位机 通过电脑串口控制WS2812

我没跑,单独写了一个验证Demo,验证每个函数功能是否正常

SDK 验证成功,Arduino 我没移植成功,暂时略过

验证Demo

#include "board.h"
#include "bflb_gpio.h"
#include "mini_ws2812b.h"
#include "bflb_mtimer.h"


int main(void)
{
  board_init();
  // 初始化ws2812b 数据引脚:18 灯珠数量:1 灯珠类型:GRB
  ws2812b_init(18, 100, WS2812B_TYPE_GRB);
  if (ws2812b_isReady())
  {
    printf("init OK\r\n");
  }

  // 颜色变量,蓝色
  uint8_t color[3] = {0, 0, 255};
  // 设置第一个灯珠为蓝色
  ws2812b_setColor(0, color);
  // 发送数据,点亮灯珠
  ws2812b_flush();

  bflb_mtimer_delay_ms(2000);

  uint8_t color2[3] = {65, 0, 0};
  ws2812b_setColors(1, 9, color2);
  // 发送数据,点亮灯珠
  ws2812b_flush();

  ws2812b_setOff(0);
  // 发送数据
  ws2812b_flush();

  bflb_mtimer_delay_ms(2000);

  uint8_t color3[3] = {255, 0, 0};
  ws2812b_setColors(1, 9, color3);
  ws2812b_reset();
  uint8_t color4[3] = {0, 255, 0};
  ws2812b_setColors(1, 9, color4);
  // 发送数据
  ws2812b_flush();
  bflb_mtimer_delay_ms(2000);

  color4[1] = 0;
  color4[2] = 66;
  ws2812b_setColorAll(color4);
  // 发送数据
  ws2812b_flush();

  bflb_mtimer_delay_ms(2000);

  ws2812b_deinit();
  if (!ws2812b_isReady())
  {
    printf("deinit OK\r\n");
  }

  while (1)
  {

  }
  return 0;
}

Demo效果

WeChat_2024041507032400-00-00--00-00-09.gif

串口输出

VeryCapture_20240415071353.jpg

使用

我把外设移植通过验证的的库统一会放到 Gitee 仓库,仓库中分别有 SDK 库方式 和 Arduino 库方式(可移植)

接线

灯珠建议单独供电,防止烧板子,记得共地(GND连GND) image.png

GIT 仓库

https://gitee.com/wukong50/m61-libraries.git

SDK 使用方式

SDK 模式

  1. 克隆 Git 仓库
  2. 切换到此目录下
m61-libraries\WS2812\SDK\WS2812
  1. 修改 Makefile SDK 路径

image.png

  1. 直接 make flash 即可
  2. 烧录的时候需要手动进入烧录模式,先将按住板子上的"IO2"再按一下"EN"使板子进入烧录模式
  3. 烧录有问题,请看文章末尾答疑

答疑

  1. 如何搭建 linux 环境 零基础搭建小安派 Linux 开发环境之【编译运行 Hello world】 - 小安派 S1&M61 教程合集 - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com)
  2. 编译报错#lwip/dns.h 关于编译报错#lwip/dns.h 找不到的解决办法 - 小安派 S1&M61 教程合集 - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com)
回复

使用道具 举报

WT_0213 | 2024-4-15 09:07:48 | 显示全部楼层
回复

使用道具 举报

1084504793 | 2024-4-15 09:11:46 | 显示全部楼层
回复

使用道具 举报

干簧管 | 2024-4-15 09:38:24 | 显示全部楼层
回复

使用道具 举报

jkernet | 2024-4-15 09:54:20 | 显示全部楼层
辛苦啦
回复

使用道具 举报

lazy | 2024-4-15 10:28:59 | 显示全部楼层
模块齐全
回复

使用道具 举报

18350766600@139 | 2024-4-15 21:37:52 | 显示全部楼层
学习学习
回复

使用道具 举报

1055173307 | 2024-4-16 17:54:31 | 显示全部楼层
回复

使用道具 举报

iiv | 2024-4-16 19:02:48 | 显示全部楼层
辛苦啦
回复

使用道具 举报

7788 | 2024-4-17 16:50:16 | 显示全部楼层
厉害
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则