c++ - 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);
}
}
解决方案
条件t=="O"
不对。双引号""
用于表示(c 样式)字符串,它是由空字符终止的字符序列。它是一个数组,可以转换为指向第一个元素的指针。
您应该使用单引号''
来表示字符常量,例如t=='O'
.
推荐阅读
- c++ - 将动态分配的数组分散到 MPI 中的所有进程后,是否可以删除主级别中的动态分配数组?
- javascript - 如果同一行中的 span 包含文本,则 XPath 评估返回锚点 href
- corda - Corda:在响应者流中发出 HTTP 请求?
- python-3.x - 如何将生产变量传递给 Authorize.Net API?
- python - Python 枚举:用 `element.value` 替换 `element`
- java - 无法理解 JPanel 的 setBackground 方法行为
- java - Swing 应用程序的 Graal native-image:在图像堆中检测到一个已启动的线程
- azure-functions - Azure 功能从门户或 Visual Studio-Blob 触发器执行
- android - kotlin 数据类和 SerializedName
- sql - 如何将条件语句放入 SQL 计数中?