久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

WS2812B漸變色流水算法+PWM DMA驅動STM32源程序

查看數: 25391 | 評論數: 39 | 收藏 33
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2019-7-18 11:55

正文摘要:

最近在學習STM32,到定時器與DMA章節,正巧手頭有先前買的WS2812B模塊,查找相關資料,于是成功點亮了, 又按照自己想法和思路寫了一個漸變色算法,和漸變色流水功能, 可自定義燈的數量和漸變色的深度 漸變 ...

回復

ID:349598 發表于 2024-1-12 21:49
不錯!謝謝樓主分享。
ID:31514 發表于 2024-1-5 22:45
請教一下樓主,我移植到51單片機上,只有白色,不知道是什么原因
ID:356964 發表于 2023-8-18 08:02
樂此不疲!樂此不疲!感謝分享!
ID:356964 發表于 2023-8-18 08:01
謝謝分享,學習一下!學習這個有癮!
ID:339520 發表于 2023-6-19 13:46
1毛錢的應廣單片機PMS150G驅動WS2812代碼寫完了。
ID:46750 發表于 2023-5-11 10:43
漂亮,這種算法有乘除法運算,運行效率和儲存空間都是挑戰,對于成本較低的MCU,就...
有沒有高手來完善一下
ID:651494 發表于 2022-9-3 15:30
主循環用個大DELAY,還讓不讓其他進程活?改天給你們寫個,估計都還是大學生。
ID:1040201 發表于 2022-9-2 16:29
感謝樓主,我去抽點時間學習一下 。
ID:375944 發表于 2022-8-12 08:52
正用到這款做機器人控制燈用,學習下!
ID:947605 發表于 2022-4-25 19:30
很漂亮,帥啊
ID:837560 發表于 2022-1-25 17:14
不錯,不錯有空研究一下
ID:384489 發表于 2022-1-10 16:47
用過SPI,試試PWM的。
ID:986209 發表于 2021-11-30 22:48
牛呀,才學習就可以寫出這樣的程序不簡單
ID:973189 發表于 2021-10-19 07:39
先記錄下來,后面學習一下
ID:88256 發表于 2021-9-17 01:49
改到ESP-12F上試了一下,發現只有8個燈數量太少變化就不明顯,等有空改長了試試
ID:436885 發表于 2021-9-14 18:19
大家用的是什么型號芯片?
ID:89237 發表于 2021-9-6 09:03

點亮了很好看
ID:226821 發表于 2021-9-6 08:56
Thankjs share nice colorful effect
ID:963713 發表于 2021-9-2 15:43
點亮了很好看
ID:423238 發表于 2021-5-21 15:46
有8266的驅動程序沒
ID:202803 發表于 2021-5-20 14:01
請問使用PWM方式的話不使用DMA怎么實現呢,因為有的單片機是沒有DMA控制器的
ID:890487 發表于 2021-3-13 16:33
看看能不能移植到esp8266 謝謝樓主
ID:753687 發表于 2021-3-13 15:16
正好手里有一個ws2812,也想做這個,學習一下
ID:48216 發表于 2021-3-9 00:27

點亮了很好看
ID:210471 發表于 2021-3-5 17:04
點亮了很好看
ID:831068 發表于 2021-1-7 15:41
孫少 發表于 2020-12-30 11:28
我有一條晚上2812燈帶是三根線的,引腳怎么去接

vcc+gnd+signal=三根線
ID:585349 發表于 2020-12-30 11:28
我有一條晚上2812燈帶是三根線的,引腳怎么去接
ID:235359 發表于 2020-12-28 16:40
正好在做這個,學習一下
ID:384489 發表于 2020-11-20 15:06
感謝分享,學習一下,非SPI方式。
ID:791100 發表于 2020-11-10 16:39
非常感謝,值得學習一下,非常好
ID:610978 發表于 2020-9-11 11:02
感謝樓主分享,下載到板子里可以正常工作,我嘗試吧TIM2換成TIM1就不能亮了,這是為什么呢?
是我哪里漏修改了么?

void WS2812B_TIM_init(void)
{
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    TIM_OCInitTypeDef  TIM_OCInitStructure;
    GPIO_InitTypeDef GPIO_InitStructure;
    DMA_InitTypeDef DMA_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    /* GPIOA Configuration: TIM2 Channel 1 as alternate function push-pull */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
    /* Compute the prescaler value */
    //PrescalerValue = (uint16_t) (SystemCoreClock / 24000000) - 1;
    /* Time base configuration */
    TIM_TimeBaseStructure.TIM_Period = 89; // 800kHz
    TIM_TimeBaseStructure.TIM_Prescaler = 0;
    TIM_TimeBaseStructure.TIM_ClockDivision = 0;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
          TIM_TimeBaseStructure.TIM_RepetitionCounter=0;
    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

    /* PWM1 Mode configuration: Channel1 */
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_Pulse = 0;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
    TIM_OC1Init(TIM1, &TIM_OCInitStructure);

    /* configure DMA */
    /* DMA clock enable */
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);

    /* DMA1 Channel6 Config */
    DMA_DeInit(DMA1_Channel2);

    DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&TIM1->CCR1;        // physical address of Timer 3 CCR1
    DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)LED_BYTE_Buffer;                // this is the buffer memory
    DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;                                                // data shifted from memory to peripheral
    DMA_InitStructure.DMA_BufferSize = 24;
    DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
    DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;                                        // automatically increase buffer index
    DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
    DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
    DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;                                                        // stop DMA feed after buffer size is reached
    DMA_InitStructure.DMA_Priority = DMA_Priority_High;
    DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;

    DMA_Init(DMA1_Channel2, &DMA_InitStructure);

    /* TIM3 CC1 DMA Request enable */
        /* 只能使用通道1 TIMx_UP */
    TIM_DMACmd(TIM1, TIM_DMA_Update, ENABLE);
}
ID:394041 發表于 2020-7-1 22:26
謝謝,有空試一下。
ID:219315 發表于 2020-6-12 15:04
實際燒到單片機里運行,燈光效果很漂亮。
ID:471251 發表于 2020-6-9 20:00

謝謝分享,學習一下
ID:731155 發表于 2020-5-30 13:17
非常不錯,感謝分享!!!!
ID:383785 發表于 2020-5-29 19:24
不錯 學習一下
ID:168165 發表于 2020-4-14 20:39
不閃動呀
ID:394041 發表于 2020-4-10 15:47
謝謝分享,學習一下
ID:603929 發表于 2019-10-16 08:40
正好在做這個,學習一下

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区国产 | 亚洲国产欧美国产综合一区 | 国产做a爱片久久毛片 | 污视频免费在线观看 | 欧美精品久久久久 | 午夜影院在线 | 久久国| 日日操日日干 | 久久久区 | 亚洲成人一二区 | 激情伊人网 | av日韩在线播放 | 久久久久国产精品一区二区 | 国产精品美女久久久久久免费 | 国产成人麻豆免费观看 | 国产一区二区三区免费 | 中文字幕国产第一页 | 久久国| 国产欧美在线视频 | 久久久国产一区二区三区 | 亚洲免费三区 | 亚洲人人 | 偷拍亚洲色图 | av资源中文在线天堂 | 久草日韩| 久久成人精品一区二区三区 | 欧美黄色网络 | 色一级| 午夜免费看视频 | 日本一区二区高清不卡 | 国产精品www | 亚洲狠狠爱| 日韩精品在线免费观看视频 | 一级毛片,一级毛片 | 久草福利| 国产福利在线小视频 | 91精品国产综合久久久久久 | 日日操操操| 成人精品国产一区二区4080 | 91pao对白在线播放 | 青青草精品视频 |