C++でシリアルデータを読み取る方法は何ですか?

C++で、シリアル通信ライブラリを使用してシリアルデータを読み取ることができます。

最初に、適切なヘッダーファイルとライブラリファイルを含める必要があります。

#include <iostream>
#include <string>
#include <SerialPort.h>

次に、SerialPortオブジェクトを作成してください。

SerialPort serialPort;

次に、シリアルポートを開く。

std::string port = "COM1";  // 指定串口号
int baudRate = 9600;  // 波特率
serialPort.Open(port, baudRate);

シリアルポートのデータを読み取る:

const int bufferSize = 100;  // 缓冲区大小
char buffer[bufferSize];
int bytesRead = serialPort.Read(buffer, bufferSize - 1);  // 读取串口数据到缓冲区
buffer[bytesRead] = '\0';  // 在读取到的数据后面加上字符串结束符

std::string data(buffer);  // 将缓冲区数据转换为字符串

最後、シリアルポートを閉じます。

serialPort.Close();

コードの完全なサンプル:

#include <iostream>
#include <string>
#include <SerialPort.h>

int main() {
    SerialPort serialPort;
    
    std::string port = "COM1";  // 指定串口号
    int baudRate = 9600;  // 波特率
    serialPort.Open(port, baudRate);
    
    const int bufferSize = 100;  // 缓冲区大小
    char buffer[bufferSize];
    int bytesRead = serialPort.Read(buffer, bufferSize - 1);  // 读取串口数据到缓冲区
    buffer[bytesRead] = '\0';  // 在读取到的数据后面加上字符串结束符
    
    std::string data(buffer);  // 将缓冲区数据转换为字符串
    
    std::cout << "Read data: " << data << std::endl;
    
    serialPort.Close();
    
    return 0;
}

ご注意ください、これは単なる基本的な例です。特定の実装は使用するシリアル通信ライブラリによって異なるかもしれません。自身が使っているライブラリに応じた関数やメソッドを探す必要があります。

bannerAds