ESP32-WROOM-32报错error: ‘ledcSetup‘ ‘ledcAttachPin’was not declared in this scope

当我想用ESP32-WROOM-32进行PWM调速时,我发现编译报错了,我以为代码有问题,换了个很简单的测试代码,发现还是报错

#define FREQ 2000 // 频率
#define CHANNEL 0 // 通道
#define RESOLUTION 8 // 分辨率
#define LED 32 // LED引脚

void setup() {
  // 设置频率
  ledcSetup(CHANNEL, FREQ, RESOLUTION);
  // 绑定通道号与引脚
  ledcAttachPin(LED, CHANNEL);
}

void loop() {
  
}

 后查阅官方资料发现,在新版本中arduino中这两个函数已经被弃用(官方链接

解决方案:直接用ledcAttach函数即可


ledcSetup等同于ledcAttach原型为:

bool ledcAttach(uint8_t pin, uint32_t freq, uint8_t resolution);
 
/*
·pin选择 LEDC 引脚。
 
·freq选择 pwm 的频率。
 
·resolution选择LEDC通道的分辨率。范围是 1-14 位(ESP32 为 1-20 位)。
 
·true如果配置成功,此函数将返回。如果false返回,则发生错误,LEDC 通道未配置。
*/

绑定通道与引脚用ledcWrite:设置LEDC引脚占空比

bool ledcWrite(uint8_t pin, uint32_t duty);
 
/*
·pin选择 LEDC 引脚。
 
·duty选择要为选定的 LEDC 引脚设置的占空比。
 
·true如果设置占空比成功,此函数将返回。如果false返回,则发生错误,并且未设置占空比。
*/

目前版本不需要进行通道与引脚的绑定
修改代码如下:

#define FREQ 2000 // 频率
#define PIN 32 // 通道
#define RESOLUTION 8 // 分辨率
#define LED 1 // LED引脚

void setup() {
  // 设置频率
  ledcAttach(PIN, FREQ,RESOLUTION);
}

void loop() {
    //设置占空比
    ledcWrite(PIN, 127);        
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值