首页 > 解决方案 > ARDUINO:ISO C++ 禁止指针和整数之间的比较 [-fpermissive]

问题描述

运行此代码时出现此错误。当我按下按钮时,代码应该运行伺服电机。它使用来自 hc05 模块的串行数据来运行伺服电机。我不知道 c++,所以我不能添加任何其他内容。问题出在 t我认为 serial.Read() 函数中的变量。谢谢您的帮助

#include <Servo.h> 

Servo myservo;  // create servo object to control a servo
int pos = 0;  // variable to store the servo position
char t;
void setup() 
{
  myservo.attach(10);
  Serial.begin(9600);
  // attaches the servo on pin 10 to the servo object
     
}

void loop() 
{
  if(Serial.available()){
    t= Serial.read();
    Serial.println(t);
  }
  if(t=="O"){
    forward();
    delay(750);
    backward();
  }
  // sweeps from 0 degrees to 180 degrees
  //forward();
  //delay(1000);
  //backward();
  //delay(1000);
  // sweeps from 180 degrees to 0 degrees

}


void forward(){
    for(pos = 0; pos <= 90; pos += 1) 
  {
    myservo.write(pos);
    delay(15);
  }
}
void backward(){
    for(pos = 90; pos>=0; pos-=1)
  {
    myservo.write(pos);
    delay(15);
  }
}

标签: c++pointersarduino

解决方案


条件t=="O"不对。双引号""用于表示(c 样式)字符串,它是由空字符终止的字符序列。它是一个数组,可以转换为指向第一个元素的指针。

您应该使用单引号''来表示字符常量,例如t=='O'.


推荐阅读