我已经创建了一个Arduino项目,我在Arduino IDE中尝试过,它运行得很好,但现在我想将它添加到Visual Studio(我想为程序创建一个接口),当我试图这样做,我有18个错误。 Arduino中的大多数函数(如DigitalWrite(out,LOW)
都无法识别)。
以下是目前的代码:
int out=12;
void send1(int);
void send0(int);
void A_On(void);
void A_Off(void);
void B_On(void);
void B_Off(void);
void C_On(void);
void C_Off(void);
void a_on(void);
void a_off(void);
void b_on(void);
void b_off(void);
void c_on(void);
void c_off(void);
String rec_ser="";
void printMenu(void);
int nr_rep=4;
int t=390; //microsecunde delay
int T=1100;
void setup()
{
pinMode(out, OUTPUT);
digitalWrite(out,LOW);
Serial.begin(9600);
Serial.println("RC ready");
printMenu();
}
void loop()
{
while(Serial.available() >0)
{
char c=Serial.read();
if(c!='\n')
rec_ser+=c;
else
{
if(rec_ser.indexOf("Aon")>=0)
{
rec_ser="";
Serial.println("Comanda primita: Aon");
A_On();
}
else if(rec_ser.indexOf("Aoff")>=0)
{
rec_ser="";
Serial.println("Comanda primita: Aoff");
A_Off();
}
else if(rec_ser.indexOf("Bon")>=0)
{
rec_ser="";
Serial.println("Comanda primita: Bon");
B_On();
}
else if(rec_ser.indexOf("Boff")>=0)
{
rec_ser="";
Serial.println("Comanda primita: Boff");
B_Off();
}
else if(rec_ser.indexOf("Con")>=0)
{
rec_ser="";
Serial.println("Comanda primita: Con");
C_On();
}
else if(rec_ser.indexOf("Coff")>=0)
{
rec_ser="";
Serial.println("Comanda primita: Coff");
C_Off();
}
else
{
rec_ser="";
Serial.println("Comanda invalida!");
printMenu();
}
}
}
}
void send0(int d)
{
digitalWrite(out,LOW);
delayMicroseconds(d);
digitalWrite(out,HIGH);
}
void send1(int d)
{
digitalWrite(out,HIGH);
delayMicroseconds(d);
digitalWrite(out,LOW);
}
void A_On(void)
{
send1(t);
send0(2*T);
send1(t);
send0(T);
send1(T);
send0(t);
for(int i=0; i<nr_rep; i++)
a_on();
}
void A_Off(void)
{
send1(t);
send0(2*T);
send1(t);
send0(T);
for(int i=0; i<nr_rep; i++)
a_off();
}
void printMenu(void)
{
Serial.println("Comenzi valide: ");
Serial.println("Aon");
Serial.println("Aoff");
Serial.println("Bon");
Serial.println("Boff");
Serial.println("Con");
Serial.println("Coff");
Serial.println();
}
void a_on(void)
{
send1(3*T);
send0(7*T);
send1(t);
send0(T);
send1(T);
}
void a_off(void)
{
send1(3*T);
send0(7*T);
send1(t);
send0(T);
send1(T);
send0(t);
}
void B_On(void)
{
send1(t);
send0(2*T);
send1(t);
send0(T);
for(int i=0; i<nr_rep; i++)
b_on();
}
void B_Off(void)
{
send1(t);
send0(2*T);
send1(t);
send0(T);
send1(T);
send0(t);
send1(t);
send0(T);
for(int i=0; i<nr_rep; i++)
b_off();
}
void C_On(void)
{
send1(t);
send0(2*T);
send1(t);
send0(T);
send1(T);
send0(t);
send1(t);
for(int i=0; i<nr_rep; i++)
c_on();
}
void C_Off(void)
{
send1(t);
send0(2*T);
send1(t);
send0(T);
send0(2*T);
send1(t);
send0(T);
send1(T);
send0(t);
send1(t);
send0(T);
send1(T);
send0(t);
send1(t);
send1(t);
send0(2*T);
send1(t);
send0(T);
send1(T);
send0(t);
send1(t);
send0(T);
for(int i=0; i<nr_rep; i++)
c_off();
}
void b_on(void)
{
send1(3*T);
send0(7*T);
send1(t);
send0(T);
send1(T);
send0(t);
}
void b_off(void)
{
send1(3*T);
send0(7*T);
send1(t);
send0(T);
send1(T);
send0(t);
send1(t);
}
void c_on(void)
{
send1(3*T);
send0(7*T);
send1(t);
send0(T);
send1(T);
send0(t);
send1(t);
}
void c_off(void)
{
send1(3*T);
send0(7*T);
send1(t);
send0(T);
send1(T);
}
答案 0 :(得分:1)
为什么不尝试使用适用于Microsoft Visual Studio和Atmel Studio的Arduino IDE? http://www.visualmicro.com/
总结一下:
“Visual Micro是一个免费的Arduino编程插件,它使Microsoft Visual Studio 2008-2013和Atmel Studio 6.2成为完整的Arduino编程环境.Visual Micro确保您的草图代码保持与Arduino Ide完全兼容,并且是唯一的Ide在一个Ide中支持所有Arduino版本。“我认为这是edy 2006使用MS Visual Studio使代码工作的最简单方法。“
这可能会解决你的问题。
祝你好运!答案 1 :(得分:0)
如果你想“创建一个界面”我假设你想为一台PC创建一个界面。
那么......为什么需要包含arduino代码?您只需要创建一个表单,例如一些按钮,然后,当您按下其中一个按钮时,您只需通过串行接口发送"Aon"
而不是"Aoff"
或其他命令
您不需要整个arduino代码。