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
|