2012-03-28 130 views
2

我需要這個代碼更改cpp的代碼使用COM端口

這是C#代碼

public void SendDataViaSerialPort(string data) 
{ 
    var com = new System.IO.Ports.SerialPort(
       "COM29", 9600, System.IO.Ports.Parity.None, 8, 
           System.IO.Ports.StopBits.One); 
      com.Open(); 
      com.Write(data); 
      com.Close(); 
} 
+0

你忘了問一個問題。你移植代碼有什麼困難? (順便說一句,該文檔是[這裏](http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx#Y0)。) – 2012-03-28 23:53:32

+0

它會在Windows上運行嗎? – wallyk 2012-03-28 23:54:01

回答

1

使用boost :: ASIO在CPP通過串口發送數據

#include <string> 
#include <boost/asio.hpp> 
using namespace::boost::asio; 

serial_port_base::baud_rate BAUD(9600); 
serial_port_base::parity PARITY(serial_port_base::parity::none); 
serial_port_base::stop_bits STOP(serial_port_base::stop_bits::one); 

void SendDataViaSerialPort(const std::string& to_write) 
{ 
     io_service io; 
     serial_port port(io, "COM29"); 

     port.set_option(BAUD); 
     port.set_option(PARITY); 
     port.set_option(STOP); 

     write(port, buffer(to_write,1)); 
} 
+0

謝謝。但如何打開和關閉端口? – aakpro 2012-03-29 06:35:47

+0

http://www.boost.org/doc/libs/1_49_0/doc/html/boost_asio/reference.html – 2012-03-29 22:24:40