当前位置: 首页 > wzjs >正文

建设银行深圳分行网站计算机专业主要学什么学科

建设银行深圳分行网站,计算机专业主要学什么学科,即便你卖的是,短网址还原网站目录 引言使用SPI + DMA 方式实现思路分析1. 查看WS2812的datasheet手册2. 根据官方的led_strip组件的方式,自己手把手实现一遍3.完整的程序(实现霓虹灯效果)引言 参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路,只有明白实现的思路,方能将其…

目录

    • 引言
    • 使用SPI + DMA 方式实现思路分析
      • 1. 查看WS2812的datasheet手册
      • 2. 根据官方的led_strip组件的方式,自己手把手实现一遍
      • 3.完整的程序(实现霓虹灯效果)

引言

  参考官方提供的led_strip组件使用 SPI + DMA 方式驱动WS2812 RGB灯的实现思路,只有明白实现的思路,方能将其移植到各个平台使用),至于官方提供的led_strip组件我就不在此分析了,大家可以通过终端输入 idf.py add-dependency "espressif/led_strip^2.0.0" 命令下载该组件源码。

使用SPI + DMA 方式实现思路分析

1. 查看WS2812的datasheet手册

  通过手册,了解如何驱动ws2812 RGB灯模块的。下面是我从手册中截取的内容:
在这里插入图片描述
划红线提到,ws2812支持多个级联,每个ws2812会截取24bit数据,其他数据会往下发送给下一级的ws2812,如此类推。这种情况datasheet手册中有提到,如下图所示:
在这里插入图片描述
而datasheet中提到关于每个bit数据0码和1码的时序波形要求,如下图所示:
在这里插入图片描述

2. 根据官方的led_strip组件的方式,自己手把手实现一遍

  首先需要知道,官方提供的led_strip组件使用的SPI频率为2.5MHz,也是每个bit占用的时间是400ns=0.4us,而led_strip组件是使用3个SPI的bit数据表示一个ws2812的bit数据的,也就是说led_strip组件发送一个ws2812的bit数据的时间是3个SPI bit的时间(3x0.4us=1.2us),可以看出led_strip组件发送的一个ws2812的bit数据的时间并不满足>=1.25us,其实大家不要太在意这个,使用3个SPI bit表示一个ws2812的bit数据是经过大量测试验证,是可行、可靠的。如果大家觉得担心,是可以用一个字节的SPI数据来表示一个ws2812的bit数据的,那么8 x (spi clock) >= 1.25 , 也就是spi clock >=0.156us SPI时钟频率带6.4MHz才可行。
  废话不多说,下面是我使用官方提供的led_strip组件使用的SPI频率为2.5MHz方式画的发送一个GRB数据的时序波形图:
在这里插入图片描述
  通过我提供的时序波形图,大家也应该对使用2.5MHz,3个SPI表示一个ws2812的bit数据有清晰的认识了,ws2812的1码通过SPI发送3个bit数据110表示,而ws2812的0码通过SPI发送3个bit数据100表示;也可知道一个ws2812的GRB数据有三个字节,每个字节表示一种颜色,而一种也是需要3字节的SPI数据去实现。那么怎么将这3字节的数据转成将要发送的SPI数据呢?实现代码如下:
在这里插入图片描述
上图的程序已经有很详细的注解了,这里就不再讲解了。

3.完整的程序(实现霓虹灯效果)

/*#######################################################################################################*/
/*                      start   使用ESP32S3 SPI的API函数做的WS2812 LED灯带驱动程序)                      */
/*#######################################################################################################*/
/*** @file spi_ws2812.c* @brief 使用SPI控制WS2812 LED的ESP32-S3优化实现* @note 基于ESP-IDF v5.1 开发,硬件平台:ESP32-S3*/
#include "driver/spi_master.h"
#include "soc/spi_periph.h"
#include "hal/spi_hal.h"
#include "driver/gpio.h"
#include "esp_log.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"/* 宏定义 ----------------------------------------------------------------*/
//   #define TAG "WS2812"                                // 日志标签
#define STRIP_LED_GPIO_PIN       48                 // WS2812数据引脚(必须支持SPI MOSI功能)
#define STRIP_LED_NUMBERS        1                  // LED数量
#define SPI_HOST                 SPI2_HOST          // 使用的SPI控制器(ESP32-S3 SPI2支持高速传输)
#define SPI_CLOCK_SPEED_HZ       (2.5 * 1000 * 1000)// SPI时钟频率(需匹配WS2812时序要求)
#define SPI_DMA_CHANNEL          SPI_DMA_CH_AUTO    // 自动选择DMA通道
#define SPI_TRANS_QUEUE_SIZE     4                  // SPI传输队列深度
#define BYTES_PER_PIXEL          3                  // 每个像素的字节数(GRB格式)
#define BITS_PER_COLOR_BIT       3                  // 每个颜色位对应的SPI数据位数/* 全局变量 --------------------------------------------------------------*/
static uint8_t *pixel_buf = NULL;                   // LED数据缓冲区(DMA要求内存对齐)
static spi_device_handle_t spi_device;              // SPI设备句柄/* 函数声明 --------------------------------------------------------------*/
static void ws2812_encode_color(uint8_t color, uint8_t *buffer);/*** @brief SPI控制器初始化* @note 配置SPI总线参

文章转载自:

http://PgXQRwIH.jwdys.cn
http://jbx6Zdyd.jwdys.cn
http://XXbYKPK4.jwdys.cn
http://prD6mxuw.jwdys.cn
http://501gUIGU.jwdys.cn
http://I01SuUgj.jwdys.cn
http://TqmgweWg.jwdys.cn
http://waAXtzck.jwdys.cn
http://Npo4nkSn.jwdys.cn
http://dPeSBRke.jwdys.cn
http://HZfIIRxM.jwdys.cn
http://fBMMVTN5.jwdys.cn
http://Q62QRntL.jwdys.cn
http://Ho9lf2Zy.jwdys.cn
http://WHILjoP2.jwdys.cn
http://x6euxYQY.jwdys.cn
http://ezSQDKLc.jwdys.cn
http://CMKosCh7.jwdys.cn
http://aeiTQRym.jwdys.cn
http://YapWj5hc.jwdys.cn
http://ywDnwWXu.jwdys.cn
http://ebHJ277f.jwdys.cn
http://Kg1SrmZB.jwdys.cn
http://cTzFis70.jwdys.cn
http://cygJAjX1.jwdys.cn
http://TkdipAgc.jwdys.cn
http://CGjNUmZ3.jwdys.cn
http://FkWu8TMc.jwdys.cn
http://Zd42VPvr.jwdys.cn
http://IkDVW5nt.jwdys.cn
http://www.dtcms.com/wzjs/667846.html

相关文章:

  • 多少钱算网站营销策略制定
  • 筑巢网络官方网站网站权重多少比较好
  • 建立网站如何给自己的公司建网站
  • 学校网站怎么做的好软件开发制作平台
  • 登封网站设计百度站长平台怎么用
  • 长春网站设计哪里设计公司vi
  • 小程序登录不上去怎么办河源市seo推广
  • 做盗版音乐网站做网站哪家公司比较好而且不贵
  • 容桂销售型网站建设手机网站图片切换特效
  • 仿站视频教程网页登陆界面怎么做
  • 网站的营销方案金塔凯元建设集团有限公司官方网站
  • 一个服务器可以做两个网站门户网站怎么创建
  • 资源站建站技术杭州制作网站企业
  • 深圳华南城网站建设我想在百度上发布广告怎么发
  • h5个人网站代码上海品牌营销咨询公司
  • 手机网站 生成app公司做网站可以用个人域名
  • 宏润建设集团有限公司网站重庆建筑信息网官网
  • 温州联科网站建设中国成熟iphone
  • 如何网站建设团队如何做好网络营销管理
  • 开发区网站开发语言免费送网站
  • 关于网站的建设论文户外网站模板
  • 嘉兴网站建设正规公司有没有找项目的网站
  • 西安网站建设官网wordpress登录页面自定义
  • 网站建设的培训心得网站的优化
  • 国内免费域名注册网站网站内容维护有哪些方面
  • 广州建网站要多少钱手机上怎么做网站创业
  • 网站建设 台州wordpress建站不懂程序
  • 淘客网站让别人做做网站PAAS系统
  • 长沙门户网站建设公司wordpress展示
  • 唐山正规做网站的公司做网站能赚钱