COMUNICACAO PORTA SERIAL COM1
Boa tarde pessoal, estou com sérios problemas, nenhuma das minhas aplicações estão conseguindo ler a porta serial enquanto o huper terminal le normalmente, meu código em c#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace Serial
{
public partial class Form1 : Form
{
SerialPort Serial = new SerialPort();
public Form1()
{
InitializeComponent();
Serial.DataReceived += new SerialDataReceivedEventHandler(Serial_DataReceived);
Conexao();
}
void Serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
listBox1.Invoke(new EventHandler(delegate
{
listBox1.Items.Add(Serial.ReadExisting());
}));
}
catch (Exception)
{
throw;
}
}
private void btnConexao_Click(object sender, EventArgs e)
{
Conexao();
}
private void Conexao()
{
try
{
if (!Serial.IsOpen)
{
Serial.PortName = [Ô]COM1[Ô];
Serial.BaudRate = 9600;
Serial.Parity = Parity.None;
Serial.StopBits = StopBits.One;
Serial.DataBits = 8;
Serial.Handshake = Handshake.None;
Serial.Open();
btnConexao.Text = [Ô]Desconectar[Ô];
}
else
{
Serial.Close();
btnConexao.Text = [Ô]Conectar[Ô];
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
btnConexao.Text = [Ô]Con/Des[Ô];
}
}
private void button2_Click(object sender, EventArgs e)
{
try
{
listBox1.Invoke(new EventHandler(delegate
{
listBox1.Items.Add(Serial.ReadExisting());
}));
}
catch (Exception)
{
throw;
}
}
private void button3_Click(object sender, EventArgs e)
{
Serial.Write([Ô]Teste[Ô]);
}
}
}
Criei o evento e nada, alguem por favor me ajude...
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace Serial
{
public partial class Form1 : Form
{
SerialPort Serial = new SerialPort();
public Form1()
{
InitializeComponent();
Serial.DataReceived += new SerialDataReceivedEventHandler(Serial_DataReceived);
Conexao();
}
void Serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
listBox1.Invoke(new EventHandler(delegate
{
listBox1.Items.Add(Serial.ReadExisting());
}));
}
catch (Exception)
{
throw;
}
}
private void btnConexao_Click(object sender, EventArgs e)
{
Conexao();
}
private void Conexao()
{
try
{
if (!Serial.IsOpen)
{
Serial.PortName = [Ô]COM1[Ô];
Serial.BaudRate = 9600;
Serial.Parity = Parity.None;
Serial.StopBits = StopBits.One;
Serial.DataBits = 8;
Serial.Handshake = Handshake.None;
Serial.Open();
btnConexao.Text = [Ô]Desconectar[Ô];
}
else
{
Serial.Close();
btnConexao.Text = [Ô]Conectar[Ô];
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
btnConexao.Text = [Ô]Con/Des[Ô];
}
}
private void button2_Click(object sender, EventArgs e)
{
try
{
listBox1.Invoke(new EventHandler(delegate
{
listBox1.Items.Add(Serial.ReadExisting());
}));
}
catch (Exception)
{
throw;
}
}
private void button3_Click(object sender, EventArgs e)
{
Serial.Write([Ô]Teste[Ô]);
}
}
}
Criei o evento e nada, alguem por favor me ajude...
// Escreve um byte no endereço
[DllImport([Ô]Inpout32.dll[Ô], EntryPoint=[Ô]Out32[Ô])]
public static extern void Escrever(int endereco, byte valor);
// Lê um byte do endereço
[DllImport([Ô]Inpout32.dll[Ô], EntryPoint=[Ô]Inp32[Ô])]
public static extern byte Ler(int endereco);
}
ai vc usa
Paralela.Escrever(endereco,dados); endereço é inteiro e dados é byte aonde endereço seria o endereço da porta papalela
a mesma rotina se aplica a ler
[DllImport([Ô]Inpout32.dll[Ô], EntryPoint=[Ô]Out32[Ô])]
public static extern void Escrever(int endereco, byte valor);
// Lê um byte do endereço
[DllImport([Ô]Inpout32.dll[Ô], EntryPoint=[Ô]Inp32[Ô])]
public static extern byte Ler(int endereco);
}
ai vc usa
Paralela.Escrever(endereco,dados); endereço é inteiro e dados é byte aonde endereço seria o endereço da porta papalela
a mesma rotina se aplica a ler
Faça seu login para responder