title: Serial communication between pc and arduino via RS232 using c++
body: <p>I am trying to communicate with my arduino duemilanove via an RS232 cord. I simply want to be able to send a byte (or char) to my arduino from a desktop application.  The Arduino is plugging into USB COM5 on my computer.  I have the RS232 plugged into COM1, and then I have pins 2 3 and 5 on the other end of the RS232 connected to arduino pins TX, RX, and GND, respectively.</p>
  
  <p>I found a serial comm class for c++ at the following link:</p>
  
  <p><a href="http://playground.arduino.cc/Interfacing/CPPWindows" rel="nofollow">http://playground.arduino.cc/Interfacing/CPPWindows</a></p>
  
  <p>I have added the .h and .cpp files from the above example as Serial.h and Serial.cpp (i think the example uses SerialClass.h and SerialClass.cpp, I just changes the names).  </p>
  
  <hr>
  
  <p>On my arduino, I have the following code running:</p>
  
  <pre><code>// ARDUINO
  char incomingByte = 0;
  
  void setup() {
          Serial.begin(9600);
  }
  
  void loop() {
  
          // send data only when you receive data:
          if (Serial.available() &gt; 0) {
                  // read the incoming byte:
                  incomingByte = Serial.read();
  
                  // say what you got:
                  Serial.print("I received: ");
                  Serial.println(incomingByte, HEX);
          }
  }
  </code></pre>
  
  <hr>
  
  <p>And my c++ program is the following:</p>
  
  <pre><code>// C++
  #include &lt;iostream&gt;
  #include &lt;Windows.h&gt;
  #include "Serial.h"
  
  using namespace std;
  
  int main(void)
  {
      Serial port("COM1");
  
      char* msg = "Hello Arduino!";
      int msgLen = strlen(msg);
      bool writeSuccess = port.WriteData(msg, msgLen);
  
      cout &lt;&lt; "\n\n";
      system("PAUSE");
  }
  </code></pre>
  
  <hr>
  
  <p>When I use the Arduino's serial port viewer to see what is bring printed, I'm getting very strange values that don't match what I'm sending (as far as I can tell).</p>
  
  <p>When I send "Hello Arduino!", the arduino prints the following:</p>
  
  <pre><code>I received: FFFFFFAB
  I received: 3A
  I received: 3A
  I received: A
  I received: FFFFFFFA
  I received: FFFFFFEB
  I received: 6D
  I received: 37
  I received: 15
  I received: 2D
  I received: 23
  I received: 21
  I received: FFFFFFBD
  I received: 0
  </code></pre>
  
  <p>This does not appear to be the correct hex for "Hello Arduino!", but I have no idea why it's not correct.  Does anyone have any clue what I'm doing wrong?</p>