梁工 发表于 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   1000    1000
WS2812数据1   1110    1110
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个字节的缓冲。

Hssa 发表于 2023-6-14 10:24:54

flyarm 发表于 2022-12-16 09:28
基于PWM单脉冲的ws2812实现源程序

您好,有控制的原理图嘛

社区闲人 发表于 2023-7-2 16:23:25

楼主的方法很好。
页: 1 [2]
查看完整版本: 使用STC8H单脉冲模拟300-900ns协议遇到的...