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

开发板:K210 AIRV R3版 widora

开发环境:kendryte IDE 官方的

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

(一) 新建文件夹 03my_code_ws2812

点击礼物 -> 地球

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

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

安装依赖

清理+构建

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

(二)修改代码

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

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

为IO15

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

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

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

找了一下 发现了问题了

(三) 回到正常步骤来 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);

}

}

猜你喜欢

转载自blog.csdn.net/jwdeng1995/article/details/108029946
今日推荐