标记 '","' 之前的预期主表达式
expected primary-expression before token ','
好吧,所以我一直在尝试用Arduino代码制作一个声音控制伺服,但我似乎做错了什么。发生的事情是,我正在用程序的内置检查器测试代码,它一直给我一个错误代码,说
在标记","之前需要主表达式
我已经尝试根据错误消息修复它,但没有任何帮助。我将提供以下代码。
int micsensorpin=3;
int micState;
int pos = 0;
#include <Servo.h>
Servo explorer1;
void setup(){
pinMode(Servo, OUTPUT);
pinMode(micsensorpin, INPUT);
digitalWrite( micsensorpin, LOW);
digitalWrite(pos = 0);
explorer1.attach(2);
}
void loop(){
micState=digitalRead(micsensorpin);
if(micState==HIGH)
{
digitalWrite(pos = 0; pos <=70; pos +=8);
explorer1.write(pos);
delay(500);
}
else {
digitalWrite(pos=70; pos >=0; pos -= 8);
explorer1.write(pos);
delay(500);
}
}
错误行为pinMode(Servo, OUTPUT);
。
您似乎需要对C++和Arduino代码的工作原理进行一些研究。
首先,这一行:
pinMode(Servo, OUTPUT);
pinMode需要一个pin号作为第一个参数。伺服是一种类型的名称,而不是引脚编号。如果你看伺服库的例子,你会注意到他们从来没有任何针模式行的伺服引脚。我不知道你为什么认为你需要这条线,但你应该简单地删除整条线。
然后是这一行:
digitalWrite(pos = 0);
我也不知道你在这里想做什么。digitalWrite需要一个引脚号和一个HIGH或LOW。看看digitalWrite的例子。你见过这样的吗?我认为您只想将pos变量设置为0。它已经从创建位置设置为0。您也可以简单地删除整行。
循环代码同样令人困惑。你有这条线:
digitalWrite(pos = 0; pos <=70; pos +=8);
看起来你不知怎么把digitalWrite和for循环搞混了。看看伺服库的一些例子,看看你是否不知道它应该是什么样子。
digitalWrite唯一能做的就是将引脚设置为5V或0V。它不设置变量。它只是在数字引脚上设置数字电压。括号中总是一个管脚号、一个逗号和一个HIGH或LOW。如果您在digitalWrite命令后面的括号中放了其他内容,则说明您做错了。
请花点时间阅读一些关于Arduino的材料。有很多教程可以帮助您学习如何使用这些命令。你不能只是编语法,你必须按照它们的意图使用它们。
相关文章:
- 标记 '","' 之前的预期主表达式
- 编译 llvm 3.1 时,为什么会出现错误:在">"标记之前预期主表达式
- 生成错误 - "." 标记之前的预期主表达式
- SFML:错误:")"标记之前的预期主表达式
- "]"标记之前的预期主要表达式(平分搜索)
- "错误:在'.标记'之前出现预期的主表达式,我不知道为什么
- MSVC:意外的标记"__cdecl",预期的"表达式"
- ; 标记之前的预期主表达式
- 为什么可变参数宏在“)”标记之前出现预期的主表达式失败,除非前面有命名参数
- 用单词标记数学表达式
- "{"标记错误之前的预期主表达式
- C++ 标记之前预期主表达式'('错误
- 使用具有特殊字符的正则表达式标记 C++ 字符串
- 标记简单错误之前的预期主表达式
- 使用 STD 正则表达式标记逗号分隔的列表
- 如何修复 c++ 中的"错误:')' 标记之前的预期主表达式"?
- 正则表达式使用数字作为标记拆分单词
- ">"标记之前的预期主表达式
- 使用boost正则表达式标记文本
- c++正则表达式标记分隔符