提示错误expected‘=’‘,’ or‘——attribute——’before‘:’token
#include<wiringPi.h>
#include<string.h>
#include<wiringSerial.h>
#include<stdio.h>
#include<errno.h>
void setup();
int data[3]={0};
int fd,mark=0;
std::string comdata//有错误
int main()
{
setup();
if((fd = serialOpen("/dev/ttyAMA0",9600))==-1) //初始化串口,波特率9600
{
cerr<<"serial open error"<<endl;
exit(-1);
}
while(1)
{
int j=0,i,x,y;
while(serialDataAvail(fd) >= 1) //如果串口缓存中有数据
{
comdata + = serialGetchar(fd);
delay(2);
mark=1;
}
if(mark==1) //接受到发送的数据
{
for(i=0;i<comdata.size();i++)
if(comdata[i]==',')
{j++;}
else
{
data[j]=data[j]*10+(comdata[i]-'0');
}
for(i=0;i<1;i++)
{
x=data[0];
y=data[1];
serialPutchar(fd,data[0]);
serialPutchar(fd,data[1]);
data[0]=0;
data[1]=0;
}
while(serialGetchar(fd)>=0) {;}
mark=0;
}
}
void setup()
{
if(-1==wiringPiSetup())
{
cerr<<"set up error"<<endl;
exit(-1);
}
}
最佳答案
你用的是c++的程序,但包含的是C的头文件
正确的头文件为
#include <iostream>
#include <string>
using namespace std;
这三个是须加的
另外,你的
std::string comdata//有错误
最后少了分号了
你的
comdata + = serialGetchar(fd);
+=间多个空格(这个也是不可以的)
最后void setup()前面少了 }
其他回答
暂无其它回答!