猪百岁 发表于 2021-3-8 20:25:03

K210入门-裸机开发(三)之ws2812b 幻彩ARGB!!!!

## K210入门-裸机开发(三)之ws2812b 幻彩ARGB!!!!

开发板:K210 AIRV R3版 widora

开发环境:kendryte IDE 官方的

必须的参考文档:Standalone SDK编程指南v0.5.0,以及widora的原理图

## 1.新建文件夹 03my_code_ws2812



点击礼物 -> 地球



点击 实例 搜ws2812 选择develop 然后下载到刚才03mycode文件夹那边



选择好之后 项目工程自动调到新的ws2812b上面的了


安装依赖


清理+构建



开始修改代码 (有现成的代码(驱动) 我干嘛去写新的,学会GPIO输入输出就行)

## 2.修改代码

找到板子上原理图 找到ws2812的引脚


在原理图搜索 LEDDI 找到连到哪个引脚



为IO15

在main.c中 修改这个为15就行



插上开发板,先按刷新 连接到开发板 然后选择对应的下载COM口 再烧录



烧录之后灯毛线都没反应, 但串口正常输出


找了一下 发现了问题了

## 3.回到正常步骤来 config->device



修改成开发板的IO15,然后保存



再一条龙走起 清理 + 构建 +下载




效果







WS2812B学习完毕 下次再见

**代码如下**

```
#include <bsp.h>

#include <fpioa.h>

#include <gpiohs.h>

#include <stdint.h>

#include <sysctl.h>

#include <uarths.h>

#include <ws2812b.h>



#define WS_PIN 15

#define SPI_NUM SPI_DEVICE_0



ws2812_info *ws_info;



int main(void) {
sysctl_cpu_set_freq(500000000UL); //设置CPU频率 500M?

uarths_init(); //串口



ws_info = ws2812_get_buf(1); // 一个WS2812



printk("WS_SPI_TEST\n");

while (1) { //参数1为缓存(就一个),参数2为第几盏灯,参数345为RGB

ws2812_set_data(ws_info, 0, 0, 0, 0x11);

//参数1为SPI几,参数2为SPI对应的DMA通道,参数3为缓存

ws2812_send_data_spi(SPI_NUM, 1, ws_info);

printk("blue\n");

sleep(1);

ws2812_set_data(ws_info, 0, 0, 0x11, 0);

ws2812_send_data_spi(SPI_NUM, 1, ws_info);

printk("green\n");

sleep(1);

ws2812_set_data(ws_info, 0, 0x11, 0, 0);

ws2812_send_data_spi(SPI_NUM, 1, ws_info);

printk("red\n");

sleep(1);

}

}
```

---

版权声明:本文为CSDN博主「jwdeng1995」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jwdeng1995/article/details/108029946
页: [1]
查看完整版本: K210入门-裸机开发(三)之ws2812b 幻彩ARGB!!!!