C++串行通信问题
C++ Serial Communication Issue
我正在尝试制作一个控制台C++程序,该程序能够通过串行端口与我的Arduino微控制器进行通信,但是我在使用ReadFile()功能时遇到了问题:
这是我的C++控制台程序中的 ReadFile() 函数代码:
if(ReadFile(myPortHandle, &szBuf, 1, &dwIncommingReadSize, NULL) != 0)
{
cout<<"FOUND IT!"<<endl;
Sleep(100);
}
else
{
cout<<".";
Sleep(100);
}
ReadFile 函数始终返回"False"值,这意味着它在串行端口中找不到任何内容。在串行端口的另一端,我用以下代码连接了我的Arduino:
int switchPin = 4; // Switch connected to pin 4
void setup() {
pinMode(switchPin, INPUT); // Set pin 0 as an input
Serial.begin(9600); // Start serial communication at 9600 bps
}
void loop() {
if (digitalRead(switchPin) == HIGH) { // If switch is ON,
Serial.write(1); // send 1 to Processing
} else { // If the switch is not ON,
Serial.write(0); // send 0 to Processing
}
delay(100); // Wait 100 milliseconds
}
每次按下按钮时,我都会向串行端口发送"1"值,每次不按下按钮时都会发送"0"。基本上,我从我观看的有关如何与程序 Processing 进行串行通信的教程中获得了 Arduino 代码(它完美运行),尽管我无法使用我用C++制作的简单控制台应用程序做同样的事情,因为由于某种原因 ReadFile() 函数在串行端口中找不到任何信息。
有人碰巧知道为什么吗?
PS:C++控制台程序中的完整代码可以在这里找到:https://stackoverflow.com/questions/27844956/c-console-program-serial-communication-arduino
ReadFile 函数始终返回"False"值,这意味着它没有找到任何内容
不,这不是它的意思。 FALSE 返回值指示它失败。 这从来都不正常,您必须实现错误报告代码,以便诊断原因。 并结束程序,因为几乎没有理由继续运行。 除非您通过设置读取超时将串行端口设置为故意失败。
使用 GetLastError() 获取底层 Windows 错误代码。
您希望使用MS Windows,因此请尝试先使用portmon捕获arduino输出,然后您可以调试C++代码。
- 通过TCP的PvP通信问题
- 与SPI NAND闪存(STM32L4,QSPI)的通信问题
- C++游戏中的 UDP 通信问题
- 与 QProcess 和 VS C++的实时通信出现问题
- 读取的通信设备类 (CDC) 问题
- 串行通信 - 我在将传入的字符数组转换为 int 时遇到问题
- 如果我得到CE_FRAME错误,com端口通信有什么问题
- 基本串行端口通信Visual Studio C++(在浏览现有示例中时遇到问题)
- std::线程通信问题
- MPI 全对多通信问题
- 创建文件() 串行通信问题
- C++串行通信问题
- UBUNTU C 的 USB 到串行通信问题
- 串行通信问题
- 与MPI-2单向通信同步单个int值的问题
- 同步MPI-2单向通信中的顺序问题
- QtSerialPort通信问题
- 如何解决TFTP客户端和服务器端通信中的小端到大端问题
- 通信b/w两个线程在一个公共的数据结构.设计问题
- 此管道通信代码有什么问题?