سلام دوستان
برای ارتباط سریال از یه برد به پی سی از سی شارپ استفاده کردم. مساله اینه که برد من پشت سر هم داده ی بیتی رو میفرسته و توی ارتباط سریال، اونو بصورت رشته میخونم. ولی برای نمایشش توی تکست باکس مشکل دارم و کاراکترهای بی معنا میبینم. ظاهرا تکست باکس بیت صفر و یک نشون نمیده. اگه بشه داده ها رو به صورت معادل دهدهی برای هر بایت هم نشون بدم، مشکل حل میشه. برنامه رو در ادامه گذاشتم. ممنون اگه کسی بتونه تغییرات لازمو بگه...
برای ارتباط سریال از یه برد به پی سی از سی شارپ استفاده کردم. مساله اینه که برد من پشت سر هم داده ی بیتی رو میفرسته و توی ارتباط سریال، اونو بصورت رشته میخونم. ولی برای نمایشش توی تکست باکس مشکل دارم و کاراکترهای بی معنا میبینم. ظاهرا تکست باکس بیت صفر و یک نشون نمیده. اگه بشه داده ها رو به صورت معادل دهدهی برای هر بایت هم نشون بدم، مشکل حل میشه. برنامه رو در ادامه گذاشتم. ممنون اگه کسی بتونه تغییرات لازمو بگه...
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
namespace Serial_Test
{
public partial class Form1 : Form
{
string StrRecieve;
public Form1()
{
InitializeComponent();
}
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnOpen_Click(object sender, EventArgs e)
{
serialPort1.DataBits = 8;
serialPort1.Parity = Parity.None;
serialPort1.StopBits = StopBits.One;
serialPort1.BaudRate = 115000;
serialPort1.PortName = "COM4";
serialPort1.Open();
}
private void btnClosePort_Click(object sender, EventArgs e)
{
serialPort1.Close();
MessageBox.Show("PORT Closed", "OK", MessageBoxButtons.OK);
}
private void DisplayText(object sender, EventArgs e)
{
textBox2.AppendText(StrRecieve);
}
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// string StrRecieve;
StrRecieve = serialPort1.ReadExisting();
this.Invoke(new EventHandler(DisplayText));
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
namespace Serial_Test
{
public partial class Form1 : Form
{
string StrRecieve;
public Form1()
{
InitializeComponent();
}
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnOpen_Click(object sender, EventArgs e)
{
serialPort1.DataBits = 8;
serialPort1.Parity = Parity.None;
serialPort1.StopBits = StopBits.One;
serialPort1.BaudRate = 115000;
serialPort1.PortName = "COM4";
serialPort1.Open();
}
private void btnClosePort_Click(object sender, EventArgs e)
{
serialPort1.Close();
MessageBox.Show("PORT Closed", "OK", MessageBoxButtons.OK);
}
private void DisplayText(object sender, EventArgs e)
{
textBox2.AppendText(StrRecieve);
}
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// string StrRecieve;
StrRecieve = serialPort1.ReadExisting();
this.Invoke(new EventHandler(DisplayText));
}
}
}
دیدگاه