Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c和x2B之间的串行通信+;还有阿杜伊诺 我需要用C++与ARDUNO进行通信,我已经尝试了C++的代码: #include <iostream> #include <fstream> #include <stdio.h> using namespace std; int j=5; main() { fstream arduino; arduino.open("/dev/ttyACM0",ios::in | ios::out); //Opening device file if(!arduino) cout<<"error"; arduino<<2; arduino.clear(); arduino>> j; cout <<j; arduino.close(); return 0; } 根据此代码,当C++代码运行时,ARDUINO SO上的PIN 13的LED发光5秒,CUT应该打印1。但是LED不是发光的,CUT是打印5(见最初的J=5)。我用这个程序来测试C++和ARDUNO之间的串行通信。但我不知道发生了什么。我们是否需要任何特殊的串行通信库? 我的代码行吗? 请帮助我。_C++_Serial Communication - Fatal编程技术网

c和x2B之间的串行通信+;还有阿杜伊诺 我需要用C++与ARDUNO进行通信,我已经尝试了C++的代码: #include <iostream> #include <fstream> #include <stdio.h> using namespace std; int j=5; main() { fstream arduino; arduino.open("/dev/ttyACM0",ios::in | ios::out); //Opening device file if(!arduino) cout<<"error"; arduino<<2; arduino.clear(); arduino>> j; cout <<j; arduino.close(); return 0; } 根据此代码,当C++代码运行时,ARDUINO SO上的PIN 13的LED发光5秒,CUT应该打印1。但是LED不是发光的,CUT是打印5(见最初的J=5)。我用这个程序来测试C++和ARDUNO之间的串行通信。但我不知道发生了什么。我们是否需要任何特殊的串行通信库? 我的代码行吗? 请帮助我。

c和x2B之间的串行通信+;还有阿杜伊诺 我需要用C++与ARDUNO进行通信,我已经尝试了C++的代码: #include <iostream> #include <fstream> #include <stdio.h> using namespace std; int j=5; main() { fstream arduino; arduino.open("/dev/ttyACM0",ios::in | ios::out); //Opening device file if(!arduino) cout<<"error"; arduino<<2; arduino.clear(); arduino>> j; cout <<j; arduino.close(); return 0; } 根据此代码,当C++代码运行时,ARDUINO SO上的PIN 13的LED发光5秒,CUT应该打印1。但是LED不是发光的,CUT是打印5(见最初的J=5)。我用这个程序来测试C++和ARDUNO之间的串行通信。但我不知道发生了什么。我们是否需要任何特殊的串行通信库? 我的代码行吗? 请帮助我。,c++,serial-communication,C++,Serial Communication,如果j保留其旧值,则读取该值的尝试可能失败。尝试检查流状态,并检查可能的错误情况。例如: if(arduino >> j) cout << "Value received: " << j << '\n'; else if(arduino.eof()) cerr << "Premature EOF.\n"; else if(arduino.bad()) cerr << "Attempt to read

如果
j
保留其旧值,则读取该值的尝试可能失败。尝试检查流状态,并检查可能的错误情况。例如:

if(arduino >> j)
    cout << "Value received: " << j << '\n';
else if(arduino.eof())
    cerr << "Premature EOF.\n";
else if(arduino.bad())
    cerr << "Attempt to read from device failed.\n";
else
    cerr << "Logical I/O error.\n";
if(arduino>>j)

cout如果
j
保留其旧值,则读取该值的尝试可能失败。尝试检查流状态,并检查可能的错误情况。例如:

if(arduino >> j)
    cout << "Value received: " << j << '\n';
else if(arduino.eof())
    cerr << "Premature EOF.\n";
else if(arduino.bad())
    cerr << "Attempt to read from device failed.\n";
else
    cerr << "Logical I/O error.\n";
if(arduino>>j)

对不起,我是C++初学者。我遇到错误--“早熟EOF”。如何更正?我不知道到底发生了什么,但我怀疑Arduino设备可能发送了一个字节(或比您电脑的整数短),电脑需要至少
sizeof(int)
字节(通常为4字节)才能满足对
int
类型变量的读取。另一个可能的原因是电脑没有收到任何东西。请尝试将输入变量类型更改为
char
,然后查看读取是否成功。我尝试将int更改为char,但显示了相同的错误。@Paulo1205:实际上
arduino>>j是文本解析,不是二进制代码的读取,代码是<>代码(sit)(int)< /COD> ByTest.Otoh,而且由于我不熟悉另一端发送的内容,因此假设它是二进制数据——将数据更改为<代码> char 可能足以排除输入上的意外非数字字符。对不起,我是C++初学者。我遇到错误--“早熟EOF”。如何更正?我不知道到底发生了什么,但我怀疑Arduino设备可能发送了一个字节(或比您电脑的整数短),电脑需要至少
sizeof(int)
字节(通常为4字节)才能满足对
int
类型变量的读取。另一个可能的原因是电脑没有收到任何东西。请尝试将输入变量类型更改为
char
,然后查看读取是否成功。我尝试将int更改为char,但显示了相同的错误。@Paulo1205:实际上
arduino>>j
是文本解析,而不是对
sizeof(int)
bytes.oth的二进制读取——由于我不熟悉另一端发送的内容,因此假设它可能是二进制数据——,将数据更改为<代码> char 可能足以排除输入上的意外非数字字符。@曼迪:确保您在运行C++程序之前配置正确的波特率、奇偶校验、流控制等。例如,<代码> STTY 实用程序可以帮助这个。@曼迪:确保在运行C++程序之前,您要配置正确的波特率、奇偶校验、流控制等。例如,
stty
实用程序可以帮助实现这一点。