HI im nuevo en el puerto serie C#. Estoy escribiendo un programa C# ejecutando winXP y win7 para mantener los datos recibidos del puerto serie cuando se enviaron los datos a la máquina.Comunicación del puerto serie RS232 C# win7 .net framework 3.5 sp1
using System.IO;
using System.IO.Ports;
using System.Threading;
namespace RS232RVR
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
SettingRS232();
}
public void SettingRS232()
{
try
{
SerialPort mySerialPort = new SerialPort("COM6");
mySerialPort.BaudRate = 9600;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataBits = 8;
mySerialPort.Handshake = Handshake.None; //send to hardware flow control.
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceviedHandler);
mySerialPort.Open();
richTextBox1.Text = "on";
mySerialPort.Close();
}
catch (Exception ex)
{
richTextBox1.Text = ex.Message;
}
}
private void DataReceviedHandler(
object sender,
SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
richTextBox1.Text = indata;
}
}
}
COM6 está activo en mi pc. pero mi problema es que parece que el evento de datos recibidos no se dispara cuando tiene datos provenientes del puerto serie. (He comprobado el deporte utilizando algunas de las aplicaciones de software gratuito)
¿Alguien puede ayudar?
gracias
. La clase de puerto en serie de .NET deja mucho que desear. [Las funciones de comunicación de Win32] (http://msdn.microsoft.com/en-us/library/aa363194.aspx) funcionan mucho mejor. –