- 打卡等级:偶尔看看III
- 打卡总天数:51
- 最近打卡:2025-05-02 10:07:51
超级版主
- 积分
- 12079
|
发表于 2023-4-19 10:25:22
|
显示全部楼层
使用SPI发送也很好,有DMA就使用DMA传输,没有DMA就用SPI中断来处理。
我的SPI方案:
用SPI传输, 速度3.2MHz(或3MHz也可以), MSB先发, 每个字节高4位和低4位分别对应一个位数据, 1000为数据0, 1110为数据1.
SPI数据位 D7 D6 D5 D4 D3 D2 D1 D0
WS2812数据0 1 0 0 0 1 0 0 0
WS2812数据1 1 1 1 0 1 1 1 0
SPI高半字节对应的WS2812数据0-->0x80, 数据1-->0xE0,
SPI低半字节对应的WS2812数据0-->0x08, 数据1-->0x0E,
主频25.6MHz, SPI分频8 = 3.2MHz.
主频24.0MHz, SPI分频8 = 3.0MHz.
先将数据处理好,然后启动发送。1个灯 3个字节24bit,需要12个字节的缓冲, 100个灯需要1200个字节的缓冲。 |
|