一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

多個(gè)WS2812燈珠的點(diǎn)亮實(shí)驗(yàn)

冬至子 ? 來(lái)源:O老師講32 ? 作者:O老師 ? 2023-10-24 14:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天看到一位同學(xué)在群里面的留言,要我寫(xiě)一個(gè)長(zhǎng)串WS2812點(diǎn)亮的程序,因?yàn)闀r(shí)間不多,于是簡(jiǎn)單地寫(xiě)了一個(gè),該程序使用DMA+SPI2來(lái)發(fā)送數(shù)據(jù),使用的是環(huán)芯智能科技的開(kāi)發(fā)板(淘寶店鋪:環(huán)芯智能實(shí)驗(yàn)室),燈珠是淘寶買(mǎi)的,一共12顆。下面分享一下:

一、STM32CubeMX的設(shè)置

這里的設(shè)置主要是SPI模塊的設(shè)置,我們采用SPI模塊來(lái)發(fā)送顏色數(shù)據(jù)。其設(shè)置如下:

1.設(shè)置SPI的通信參數(shù),如圖1所示

圖片

圖1 SPI2的參數(shù)設(shè)置

2.SPI2的DMA的設(shè)置,如圖2所示

圖片

圖2 SPI2的DMA的設(shè)置

關(guān)于這些設(shè)置,我們?cè)赟PI接口和DMA中都已經(jīng)給出了詳細(xì)的解釋?zhuān)赃@里就不再啰嗦了。

二、主函數(shù)的內(nèi)容

int main(void)
{
  /* USER CODE BEGIN 1 */
      uint32_t col[12] = {0xff,0x00ff00,0xff0000,0xffffff,0xfff, 0xfff0,0xfff000,0xffffff,0xff0000,0xf00,0x0f0,0xfff0};
  /* USER CODE END 1 */
  /* MCU Configuration--------------------------------------------------------*/
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
  /* USER CODE BEGIN Init */
  /* USER CODE END Init */
  /* Configure the system clock */
  SystemClock_Config(); 
  /* USER CODE BEGIN SysInit */ 
  /* USER CODE END SysInit */
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_SPI2_Init();
  /* USER CODE BEGIN 2 */
      WS2812_ShowMany_GRB(col, sizeof(col));
  /* USER CODE END 2 */
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

主函數(shù)中實(shí)際上只有兩條語(yǔ)句是自己實(shí)現(xiàn),其他都由CubeMX生成。一條是定義12個(gè)燈珠的顏色數(shù)組,一個(gè)是調(diào)用顯示多個(gè)燈珠的函數(shù)。

三、WS2812模塊的內(nèi)容

首先來(lái)看ws2812.c的內(nèi)容,如下所示

#include "ws2812.h"        
#define LED_NUM     12u          //燈的數(shù)量
#define RESET_WORD  350u         //復(fù)位長(zhǎng)度
#define SPI_DATALEN (RESET_WORD + 24u*LED_NUM) 
extern SPI_HandleTypeDef hspi2;
uint8_t buf[SPI_DATALEN] = {0};
/******************************************************/
void WS2812_ShowMany_GRB(uint32_t grb[], uint8_t num)
{
      uint16_t i = 0, j = 0;
      for(i = 0; i < num; i++ )
      {
            for(j = 0; j < 24u; j ++)
            {
                  if(grb[i] & (1< WORD + i*24u+j] = CODE_1;
                  else
                        buf[RESET_WORD + i*24u+j] = CODE_0;
            }           
      }     
      HAL_SPI_Transmit_DMA(&hspi2, buf, sizeof(buf));
}
/******************************************************/

在ws2812.c中,我們實(shí)現(xiàn)一個(gè)轉(zhuǎn)換顏色數(shù)據(jù)并通過(guò)DMA發(fā)到到目標(biāo)燈串的函數(shù)。

ws2812.h的內(nèi)容如下:

#ifndef _WS2812_H
#define _WS2812_H
#include "main.h"
#define CODE_1 0XFC
#define CODE_0 0XC0       
void WS2812_ShowMany_GRB(uint32_t grb[], uint8_t num);
#endif

四、實(shí)驗(yàn)結(jié)果

最終的結(jié)果如圖3所示。

圖片

圖3 實(shí)驗(yàn)結(jié)果

五、電路連接

整個(gè)電路連接圖如圖4所示。

圖片

圖4 電路連接圖

3根線中,一根是5V,一根是地,還有一根是PB15(SPI2的MOSI接口)。

反復(fù)測(cè)試了幾次,效果還不錯(cuò)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    576

    瀏覽量

    103248
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1280

    瀏覽量

    54096
  • SPI通信
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    11667
  • WS2812
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    6716
  • stm32cubemx
    +關(guān)注

    關(guān)注

    5

    文章

    286

    瀏覽量

    16267
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【RA-Eco-RA4M2開(kāi)發(fā)板評(píng)測(cè)】點(diǎn)亮WS2812點(diǎn)陣屏

    通過(guò)單總線方式控制,只需一個(gè) IO 口,就可以點(diǎn)亮數(shù)千個(gè)。 這里使用 RA4M2 點(diǎn)亮 WS2812
    發(fā)表于 05-07 15:28

    【RA4L1-SENSOR】點(diǎn)亮 WS2812 全彩點(diǎn)陣屏

    通過(guò)單總線方式控制,只需一個(gè) IO 口,就可以點(diǎn)亮數(shù)千個(gè)。 這里使用 RA4L1 點(diǎn)亮 WS2812
    發(fā)表于 06-09 12:48

    stm32F767 控制WS2812的問(wèn)題

    使用stm32F767 PWM+DMA控制108個(gè)WS2812, 第一個(gè)顏色有時(shí)不正常,其它
    發(fā)表于 08-19 17:43

    WS2812B RGB全彩LED

    WS2812B RGB全彩LED,只需通過(guò)一根信號(hào)線控制多個(gè)顯示,本教程使用X-CTR100控制器驅(qū)動(dòng)
    發(fā)表于 08-06 08:15

    【FireBeetle Board ESP32-E IoT 開(kāi)發(fā)板試用體驗(yàn)】WS2812彩色燈帶顯示效果

    ?后經(jīng)測(cè)試,證明該是基于WS2812的顯示器件。由圖1的原理圖可知,其控制引腳為IO5。圖1WS2812連接關(guān)系對(duì)于這個(gè)器件我們?cè)撊绾蝸?lái)使用它呢?為了在ArduinoIDE的環(huán)境下
    發(fā)表于 08-28 23:41

    如何用ATtiny85控制WS2812

    文章目錄前言一、硬件1.引入庫(kù)二、軟件1.引入庫(kù)總結(jié)前言之前就答應(yīng)過(guò)大家要把ATtiny85芯片玩出更多花樣。用ATtiny85控制WS2812,我們可以玩出花來(lái),甚至做成點(diǎn)陣屏幕都可以。這一
    發(fā)表于 12-10 07:12

    用STM32控制WS2812 RGB帶的代碼分享

    用STM32控制WS2812 RGB帶的代碼分享
    發(fā)表于 12-15 07:09

    Arduino控制WS2812帶的方法

    形與一個(gè)5050LED相同,每個(gè)元件即為一個(gè)像素點(diǎn)。像素點(diǎn)內(nèi)部包含了智能數(shù)字接口數(shù)據(jù)鎖存信號(hào)整形放大電路,還包括有高精度的內(nèi)部振蕩器和可編程電流控制部分,有效保證了像素點(diǎn)的顏色高度一致。1)FastLED庫(kù)FastLED 是一款功能強(qiáng)大、簡(jiǎn)單易用的控制
    發(fā)表于 01-12 08:08

    為什么用樹(shù)莓派驅(qū)動(dòng)WS2812會(huì)不亮呢

    為什么用樹(shù)莓派驅(qū)動(dòng)WS2812會(huì)不亮呢?是什么原因?如何解決?
    發(fā)表于 01-18 06:11

    【BPI-Pico-RP2040 開(kāi)發(fā)板】+WS2812彩燈效果制作

    MAXIMUM_NUM_NEOPIXELS 7”時(shí),使用7個(gè)WS2812帶,則其顯示效果如圖9至圖11所示。圖9點(diǎn)亮綠色LED圖1
    發(fā)表于 03-22 12:48

    如何進(jìn)行WS2812的面板制作詳細(xì)資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何進(jìn)行WS2812的面板制作詳細(xì)資料合集免費(fèi)下載包括了:DMX512轉(zhuǎn)WS2812 面板程序,STC8系列單片機(jī)技術(shù)參考手冊(cè),
    發(fā)表于 05-29 17:36 ?166次下載
    如何進(jìn)行<b class='flag-5'>WS2812</b>的面板<b class='flag-5'>燈</b>制作詳細(xì)資料合集免費(fèi)下載

    STM32F103C8T6+PWM+DMA驅(qū)動(dòng) WS2812

    #STM32+PWM+DMA驅(qū)動(dòng) WS2812帶#文章目錄1.理論:2代碼:理論:使用STM32F103C8T6驅(qū)動(dòng)WS2812帶,每個(gè)
    發(fā)表于 12-27 19:29 ?224次下載
    STM32F103C8T6+PWM+DMA驅(qū)動(dòng) <b class='flag-5'>WS2812</b><b class='flag-5'>燈</b>帶

    超小60位WS2812環(huán)

    電子發(fā)燒友網(wǎng)站提供《超小60位WS2812環(huán).zip》資料免費(fèi)下載
    發(fā)表于 08-12 09:58 ?20次下載
    超小60位<b class='flag-5'>WS2812</b><b class='flag-5'>燈</b>環(huán)

    迪文屏控制WS2812氛圍

    ——來(lái)自迪文開(kāi)發(fā)者論壇本期為大家推送迪文開(kāi)發(fā)者論壇獲獎(jiǎng)開(kāi)源案例——迪文屏控制WS2812氛圍。工程師通過(guò)COF智能屏的OS核精準(zhǔn)控制WS2812幻彩燈帶每一顆
    的頭像 發(fā)表于 01-26 08:12 ?1559次閱讀
    迪文屏控制<b class='flag-5'>WS2812</b>氛圍<b class='flag-5'>燈</b>

    論如何使用WS2812以及類(lèi)似

    ? ?WS2812 LED,這是一種非常流行的可尋址RGB LED。每個(gè)WS2812 LED內(nèi)部集成了控制電路,因此可以通過(guò)一個(gè)數(shù)據(jù)輸入線來(lái)單獨(dú)控制每一個(gè)LED的顏色和亮度。這種特
    的頭像 發(fā)表于 09-30 15:11 ?1469次閱讀
    論如何使用<b class='flag-5'>WS2812</b>以及類(lèi)似<b class='flag-5'>燈</b><b class='flag-5'>珠</b>