楼主你好,我用的是gd32f303cc,灯珠是可以正常亮了,但现在问题是我驱动的灯珠有一千多个,现在只能驱动不 ...
可以尝试用多个通道,分时发送,共用内存,或者数据提前建好,放到flash里,从flash传输数据 6552918 发表于 2022-10-9 11:24
可以尝试用多个通道,分时发送,共用内存,或者数据提前建好,放到flash里,从flash传输数据 ...
这gd芯片的定时器只有单个通道的,flash的话应该怎么弄呢
arosyyy 发表于 2022-10-9 16:18
这gd芯片的定时器只有单个通道的,flash的话应该怎么弄呢
像存图片一样,建数组 6552918 发表于 2022-10-9 17:17
像存图片一样,建数组
我就是用数组来存储数据,然后通过dma发送的
arosyyy 发表于 2022-10-10 08:55
我就是用数组来存储数据,然后通过dma发送的
把数组定义到flash中,不要在内存中 6552918 发表于 2022-10-10 10:36
把数组定义到flash中,不要在内存中
有没有例程啥的,第一次没参照6 arosyyy 发表于 2022-10-10 16:17
有没有例程啥的,第一次没参照6
数组用const声明一下 6552918 发表于 2022-10-10 16:48
数组用const声明一下
这样就没了吗?
arosyyy 发表于 2022-10-11 17:06
这样就没了吗?
数据都存flash了,RAM不就剩下了吗 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,那么就不能赋值占空比的大小了,报错 arosyyy 发表于 2022-10-11 19:47
#define TRANSFER_NUM (24*LED_NUM)
const uint16_t dma_ws2812_buffer;
用const定义完当然不能再动态赋值了,需要把每个周期的占空比数值建数组
页:
1
[2]