serialPort->ReadByte()
シリアル通信を行う。
テストとして、0x00から0xffまで送る
受信側で以下のような初期化をして
... this->serialPort1->ReadBufferSize = 1024; ... serialPort1->PortName = "COM3"; //COM3 ポート使用 serialPort1->BaudRate = 460800; //460800bps serialPort1->Parity = System::IO::Ports::Parity::None; //パリティなし serialPort1->DataBits = 8; //データ長 8ビット serialPort1->StopBits = System::IO::Ports::StopBits::One; //ストップビット 1 serialPort1->NewLine = "\r\n";//ReadLine(),WriteLine()が末尾と判断する値の設定 serialPort1->Open(); serialPort1->DtrEnable = true; //DTR(Data Terminal Ready) データ端末レディ serialPort1->RtsEnable = true; //RTS(Request To Send) 送信要求 serialPort1->ReadTimeout = 500; //500mse 読み込みタイムアウト時間 serialPort1->WriteTimeout = 500; //500msec書き込みタイムアウト時間 ...
で、以下のように受信を行ったが
private: System::Void serialPort1_DataReceived(System::Object^ sender, System::IO::Ports::SerialDataReceivedEventArgs^ e){ for(i=0;i<1024;i++){ fprintf(fd, "%x ",serialPort1->ReadByte()); } }
結果は以下のようになった
見て分かるように、0xX2と0xXaが受信出来ていない
もうだめだ、完成しない
0 1 3 4 5 6 7 8 9 b c d e f 10 11 13 14 15 16 17 18 19 1b 1c 1d 1e 1f 20 21 23 24 25 26 27 28 29 2b 2c 2d 2e 2f 30 31 33 34 35 36 37 38 39 3b 3c 3d 3e 3f 40 41 43 44 45 46 47 48 49 4b 4c 4d 4e 4f 50 51 53 54 55 56 57 58 59 5b 5c 5d 5e 5f 60 61 63 64 65 66 67 68 69 6b 6c 6d 6e 6f 70 71 73 74 75 76 77 78 79 7b 7c 7d 7e 7f 80 81 83 84 85 86 87 88 89 8b 8c 8d 8e 8f 90 91 93 94 95 96 97 98 99 9b 9c 9d 9e 9f a0 a1 a3 a4 a5 a6 a7 a8 a9 ab ac ad ae af b0 b1 b3 b4 b5 b6 b7 b8 b9 bb bc bd be bf c0 c1 c3 c4 c5 c6 c7 c8 c9 cb cc cd ce cf d0 d1 d3 d4 d5 d6 d7 d8 d9 db dc dd de df e0 e1 e3 e4 e5 e6 e7 e8 e9 eb ec ed ee ef f0 f1 f3 f4 f5 f6 f7 f8 f9 fb fc fd fe ff
追記
解決した
送信側の問題だった