ESP-IDF:使用RMT点亮WS2812B灯珠

看了很多用RMT点亮WS2812的教程,我觉得网上很多教程没有讲清楚RMT的使用流程,所以按自己的理解写了一段精简的RMT点亮WS2812的代码,鄙人代码水平不高,所以希望这个简陋的示例能帮助到入门ESP-IDF的新手。

用RMT的TX通达发送无载波信号主要流程:初始化TX通道,RMT编码器;配置TX通道,RMT编码器;启用TX通道;发射信号前设定好发射配置;传入发射配置等参数发射信号。

示例目标为用GRB值{20, 50, 60}点亮ESP32-S3板载WS2812B灯珠(管脚编号48)。

#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/rmt_encoder.h" //RMT编码器驱动导入
#include "driver/rmt_tx.h" //RMT TX通道驱动导入
#include "string.h" //memset函数的前置

#define LED_PIN 48 //灯珠的引脚编号
#define TX_FREQUENT 10 * 1000 * 1000 //信号频率/分辨率
#define LED_NUMBER 1 //灯珠数量

rmt_symbol_word_t zero = {
    .duration0 = 0.3 * TX_FREQUENT / 1000000 , //第一阶段0.3us
    .level0 = 1, //第一阶段高电平
    .duration1 = 0.7 * TX_FREQUENT / 1000000 , //第二阶段0.7us
    .level1 = 0 //第二阶段低电平
}; //二进制0的表示

rmt_symbol_word_t one = {
    .duration0 &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值