久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
stm32單片機控制ws2812b燈帶的燈數(shù) 程序問題
[打印本頁]
作者:
6377377
時間:
2023-3-13 20:29
標(biāo)題:
stm32單片機控制ws2812b燈帶的燈數(shù) 程序問題
從嗶哩嗶哩上找了一個代碼,修改了代碼燈的數(shù)量以及其它的變量,但還是出錯了,請教一下這該怎么改
原作者代碼
#include "stm32f10x.h"
#include "timer.h"
#include "DMA1.h"
#include "time.h"
#include "WS2812B.h"
#define WS2812B_LED_QUANTITY 60
uint32_t WS2812B_Buf[WS2812B_LED_QUANTITY]; //0xGGRRBB ws2812b每個燈顏色共60個元素數(shù)組、、定義一個以燈珠數(shù)的大數(shù)組用于存放每個燈的grb值
uint16_t WS2812B_Bit[24*WS2812B_LED_QUANTITY+1];/62812b每一位比較值數(shù)組共24*60個元 素、、定義一個數(shù)組用于存放每個燈的每個位的值
uint8_t WS2812B_Flag;
void WS2812B_IRQHandler(void);
void WS2812B_Init(void)
{
DMA1_SetIRQHandler(WS2812B_IRQHandler);
DMA1_Init((uint32_t)(&WS2812B_Bit));
// TIM2_Init();
TIM2_Int_Init(90-1,0);
}
void WS2812B_ClearBuf(void)
{
uint8_t i;
for(i=0;i<WS2812B_LED_QUANTITY;i++)
{
WS2812B_Buf[i]=0x000000;
}
}
void WS2812B_SetBuf(uint32_t Color)
{
uint8_t i;
for(i=0;i<WS2812B_LED_QUANTITY;i++)
{
WS2812B_Buf[i]=Color;
}
}
void WS2812B_UpdateBuf(void)
{
uint8_t i,j;
for(j=0;j<WS2812B_LED_QUANTITY;j++)
{
for(i=0;i<24;i++)
{
if(WS2812B_Buf[j]&(0x800000>>i)){WS2812B_Bit[j*24+i+1]=60;}
else{WS2812B_Bit[j*24+i+1]=30;}
}
}
DMA1_Init((uint32_t)(&WS2812B_Bit));//new
DMA1_Start(24*WS2812B_LED_QUANTITY+1);
TIM2_Cmd(ENABLE);
while(WS2812B_Flag==0);
WS2812B_Flag=0;
}
void WS2812B_IRQHandler(void)
{
TIM2_SetCompare1(0);//設(shè)置tim2 ccr寄存器為0
TIM2_Cmd(DISABLE);//關(guān)閉tim2
WS2812B_Flag=1;
}
修改后的代碼
#include "stm32f10x.h"
#include "timer.h"
#include "DMA1.h"
#include "time.h"
#include "WS2812B.h"
#define WS2812B_LED_QUANTITY 300
uint32_t WS2812B_Buf[WS2812B_LED_QUANTITY]; //0xGGRRBB ws2812b每個燈顏色共300個元素數(shù)組、、定義一個以燈珠數(shù)的大數(shù)組用于存放每個燈的grb值
uint16_t WS2812B_Bit[24*WS2812B_LED_QUANTITY+1];/62812b每一位比較值數(shù)組共24*300個元 素、、定義一個數(shù)組用于存放每個燈的每個位的值
uint8_t WS2812B_Flag;
void WS2812B_IRQHandler(void);
void WS2812B_Init(void)
{
DMA1_SetIRQHandler(WS2812B_IRQHandler);
DMA1_Init((uint32_t)(&WS2812B_Bit));
// TIM2_Init();
TIM2_Int_Init(90-1,0);
}
void WS2812B_ClearBuf(void)
{
uint16_t i;
for(i=0;i<WS2812B_LED_QUANTITY;i++)
{
WS2812B_Buf[i]=0x000000;
}
}
void WS2812B_SetBuf(uint32_t Color)
{
uint16_t i;
for(i=0;i<WS2812B_LED_QUANTITY;i++)
{
WS2812B_Buf[i]=Color;
}
}
void WS2812B_UpdateBuf(void)
{
uint16_t i,j;
for(j=0;j<WS2812B_LED_QUANTITY;j++)
{
for(i=0;i<24;i++)
{
if(WS2812B_Buf[j]&(0x800000>>i)){WS2812B_Bit[j*24+i+1]=60;}
else{WS2812B_Bit[j*24+i+1]=30;}
}
}
DMA1_Init((uint32_t)(&WS2812B_Bit));//new
DMA1_Start(24*WS2812B_LED_QUANTITY+1);
TIM2_Cmd(ENABLE);
while(WS2812B_Flag==0);
WS2812B_Flag=0;
}
void WS2812B_IRQHandler(void)
{
TIM2_SetCompare1(0);//設(shè)置tim2 ccr寄存器為0
TIM2_Cmd(DISABLE);//關(guān)閉tim2
WS2812B_Flag=1;
}
復(fù)制代碼
作者:
Mu_yan
時間:
2023-10-23 14:54
可能是超出內(nèi)存了
作者:
powerdruy
時間:
2023-10-26 18:09
DMA的buffer長度跟要發(fā)數(shù)據(jù)的長度匹配上了嗎
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩欧美综合
|
欧美大片18
|
中文一区二区
|
成人动漫在线看
|
国产精品海角社区
|
日韩视频免费在线观看
|
亚洲二区视频
|
久久不卡
|
中文字幕在线免费观看视频
|
免费在线看a
|
久久精品一区二区三区四区五区
|
午夜精品在线观看
|
免费黄色小说网站
|
在线免费黄色网址
|
色噜噜狠狠一区二区三区果冻
|
蜜桃视频一区二区三区
|
国产永久在线
|
夜间福利视频
|
午夜性色
|
国产三级在线
|
国产成人三级在线观看
|
亚洲精品1
|
欧美一区二区在线播放
|
午夜精品久久久久久久久久蜜桃
|
亚洲精品一二区
|
四虎激情
|
一级片免费在线观看
|
亚洲天堂欧美
|
91中文在线
|
国产精品99久久久久久久久
|
美女在线播放
|
免费播放av
|
日韩少妇视频
|
国产视频一区二区三区四区
|
黄色天天影视
|
欧美伦理一区二区
|
国产高清一区
|
亚洲在线免费视频
|
色综合激情
|
精品免费在线
|
狠狠撸狠狠干
|