0
まずは、私はドイツの学生ですので、私の悪い英語をお許しください。 現時点では、xbeeモジュールによるシリアル通信によってarduinoボード上のサーボモータを制御することを目標とするプロジェクトに取り組んでいます。 今私はSerialPort
を勉強していますが、write()
を使って問題があります。シリアル通信C++ SerialPort-Class
私の計画は、シリアルポートを介してコンマで区切られた整数値を送信することです。 Visual Studioエラーを報告し、適切な引数型がないことを示します。 私はこの問題をどのように処理するのか分かりません。なぜなら、私はこの全体のプログラミングのトピックに全く新しいものですからです。
#include <iostream>
using namespace std;
#using <System.dll>;
using namespace System;
using namespace System::IO::Ports;
using namespace System::Threading;
int main() {
unsigned char values[2] = { 50, 120 };
SerialPort^ mySerialPort = gcnew SerialPort("COM3");
mySerialPort->BaudRate = 9600;
mySerialPort->Open();
while (true) {
mySerialPort->Write(values);
}
}
は、私はあなたがC#ではなく、マネージドC++(別名C++/CLI別名C++/CX)に切り替える提案、およびC#が新規参入者へのより寛容です。私が見ている最初のエラーは、あなたがループを通してあなたのポートを開いているが、それを閉じたり、ループ内の何かを待ったりしていないということです。 – metal
アンマネージ配列[]を 'array ^'を必要とする.NETメソッドに渡しています。 "整数値をコンマで区切って"欲しい場合は、バイト配列ではなく文字列を記述する必要があります。 –
@HansPassant、ご協力いただきありがとうございます。 配列の代わりに文字列を使用する場合は、 mySerialPort-> Write( "String")と書く必要があります。右? したがって、明示的な値があります。文字列を使用して、ループの繰り返しごとに値を含む ""などを送信するにはどうすればよいですか? ありがとう! –
ElseTU