Undshing 发表于 2022-10-5 21:01

性能非常不错啊

arosyyy 发表于 2022-10-9 11:08

楼主你好,我用的是gd32f303cc,灯珠是可以正常亮了,但现在问题是我驱动的灯珠有一千多个,现在只能驱动不到一半的灯珠,数组内存只能填写uint16_t,驱动不了后面的灯珠,然后现在不知道如何是好,请大佬指教下

6552918 发表于 2022-10-9 11:24

arosyyy 发表于 2022-10-9 11:08
楼主你好,我用的是gd32f303cc,灯珠是可以正常亮了,但现在问题是我驱动的灯珠有一千多个,现在只能驱动不 ...

可以尝试用多个通道,分时发送,共用内存,或者数据提前建好,放到flash里,从flash传输数据

arosyyy 发表于 2022-10-9 16:18

6552918 发表于 2022-10-9 11:24
可以尝试用多个通道,分时发送,共用内存,或者数据提前建好,放到flash里,从flash传输数据 ...

这gd芯片的定时器只有单个通道的,flash的话应该怎么弄呢

6552918 发表于 2022-10-9 17:17

arosyyy 发表于 2022-10-9 16:18
这gd芯片的定时器只有单个通道的,flash的话应该怎么弄呢
像存图片一样,建数组

arosyyy 发表于 2022-10-10 08:55

6552918 发表于 2022-10-9 17:17
像存图片一样,建数组

我就是用数组来存储数据,然后通过dma发送的

6552918 发表于 2022-10-10 10:36

arosyyy 发表于 2022-10-10 08:55
我就是用数组来存储数据,然后通过dma发送的

把数组定义到flash中,不要在内存中

arosyyy 发表于 2022-10-10 16:17

6552918 发表于 2022-10-10 10:36
把数组定义到flash中,不要在内存中

有没有例程啥的,第一次没参照6

6552918 发表于 2022-10-10 16:48

arosyyy 发表于 2022-10-10 16:17
有没有例程啥的,第一次没参照6

数组用const声明一下

arosyyy 发表于 2022-10-11 17:06

6552918 发表于 2022-10-10 16:48
数组用const声明一下

这样就没了吗?

6552918 发表于 2022-10-11 17:51

arosyyy 发表于 2022-10-11 17:06
这样就没了吗?

数据都存flash了,RAM不就剩下了吗

arosyyy 发表于 2022-10-11 19:47

6552918 发表于 2022-10-11 17:51
数据都存flash了,RAM不就剩下了吗

#define TRANSFER_NUM   (24*LED_NUM)

const uint16_t dma_ws2812_buffer;       

while(memaddr < 300)//复位
                {
                dma_ws2812_buffer = 0x00;//报错等号
                memaddr++;        
                }
               
       for(i=0; i<8; i++) // GREEN data
                {
                dma_ws2812_buffer = ((AuarRGBTableBuf<<i) & 0x0080) ? T1H:T0H;//等号报错
                memaddr++;
                }
               for(i=0; i<8; i++) // RED
               {
                dma_ws2812_buffer = ((AuarRGBTableBuf<<i) & 0x0080) ? T1H:T0H;//等号报错
                memaddr++;
                }
                for(i=0; i<8; i++) // BLUE
                {
                dma_ws2812_buffer = ((AuarRGBTableBuf<<i) & 0x0080) ? T1H:T0H;//报错
               memaddr++;
                }
                }

}

如果在定义数组那里加了const,那么就不能赋值占空比的大小了,报错

6552918 发表于 2022-10-11 21:19

arosyyy 发表于 2022-10-11 19:47
#define TRANSFER_NUM   (24*LED_NUM)

const uint16_t dma_ws2812_buffer;       


用const定义完当然不能再动态赋值了,需要把每个周期的占空比数值建数组
页: 1 [2]
查看完整版本: 【AT-START-WB415测评】PWM+DMA驱动WS2812B