You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助解决Arduino代码中‘void value not ignored as it ought to be’报错

编译错误解决:void value not ignored as it ought to be

报错原因

第79行done = radio.read( received_data, num_received_data );的问题在于,你使用的RF24库中,radio.read()函数是**无返回值(void类型)**的,但你试图将它的返回结果赋值给布尔变量done,C++语法不允许这种操作,因此编译器抛出该错误。

解决方法

直接调用radio.read()读取数据,之后手动将done设置为true即可——因为进入这段逻辑的前提是radio.available()为真,说明有数据可以读取,读取操作会成功执行。

修改后的对应代码片段:

while (!done)
{
  // 执行读取操作,无需接收返回值
  radio.read(received_data, num_received_data);
  // 读取完成后设置done为true,退出循环
  done = true;

  // 后续的PWM处理和逻辑保持不变...
}

额外优化建议

原代码中while (!done)循环其实只需要执行一次读取操作就可以退出,因为每次loop()周期都会检查radio.available(),可以考虑去掉这个循环,简化逻辑:

if (radio.available()) {
  digitalWrite(SIGNAL, HIGH);
  radio.read(received_data, num_received_data);
  
  // 直接编写PWM处理和其他逻辑
  ch1=(received_data[1]); 
  ch1=ch1+3;
  CH1.write(ch1); 
  // ... 其余处理代码
} else {
  digitalWrite(SIGNAL, LOW);
}

内容的提问来源于stack exchange,提问作者Yasin Khoshab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 06:53:16