本文介绍了RS232通讯,收到数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 你好。从我的问题中永久划分数据。下面的代码。谢谢。 HOST2发送消息样本:12634567897897TESTMESSAGE HOST 1结果屏幕: HOST1:港口开放。 HOST2:126345678978 HOST2:97TESTMESSAGE 收到的消息随机拆分。没有一行。 我的要求: HOST1:港口是开放的。 HOST2:12634567897897TESTMESSAGE 是否可以这种方式 private string indata; private void button1_Click( object sender,EventArgs e) { try { serialPort1.PortName = portBox.Text ; serialPort1.BaudRate = 9600 ; serialPort1.DataBits = 8 ; serialPort1.StopBits = StopBits.One; serialPort1.ReadTimeout = -1; serialPort1.ReadBufferSize = 4096 ; serialPort1.WriteTimeout = -1; serialPort1.Parity = Parity.None; serialPort1.Handshake = Handshake.None; serialPort1.Open(); richTextBox1.Text + = HOST1:端口已打开。\\\ n; } catch // (exception ex) { richTextBox1.Text + = HOST1:Port不开放。\\\\ n; } } private void button2_Click( object sender,EventArgs e) { serialPort1.Write( \ u0005 \\\\ n); } private void Form1_Load( object sender,EventArgs e) { portBox.Items.Clear(); string [] ports = SerialPort.GetPortNames(); foreach ( string Comport in ports) { portBox.Items.Add(Comport); } } private void serialPort1_DataReceived( object sender,SerialDataReceivedEventArgs e) { indata = serialPort1.ReadExisting(); richTextBox1.Invoke((MethodInvoker) delegate {richTextBox1.Text + = HOST2: + indata + \ r \\ n \\ n;}); } 解决方案 Hi guys. Permanent division of the data from my problem. The code below. Thanks.HOST2 send message sample : 12634567897897TESTMESSAGEHOST 1 Result screen :HOST1 : Port is open.HOST2 : 126345678978HOST2 : 97TESTMESSAGEReceived message randomly split. Not a single line.My request:HOST1 : Port is open.HOST2 : 12634567897897TESTMESSAGEIs it possible in this wayprivate string indata; private void button1_Click(object sender, EventArgs e) { try { serialPort1.PortName = portBox.Text; serialPort1.BaudRate = 9600; serialPort1.DataBits = 8; serialPort1.StopBits = StopBits.One; serialPort1.ReadTimeout = -1; serialPort1.ReadBufferSize = 4096; serialPort1.WriteTimeout = -1; serialPort1.Parity = Parity.None; serialPort1.Handshake = Handshake.None; serialPort1.Open(); richTextBox1.Text += "HOST1 : Port is open.\r\n"; } catch//(Exception ex) { richTextBox1.Text += "HOST1 : Port is not open.\r\n"; } } private void button2_Click(object sender, EventArgs e) { serialPort1.Write("\u0005\r\n"); } private void Form1_Load(object sender, EventArgs e) { portBox.Items.Clear(); string[] ports = SerialPort.GetPortNames(); foreach (string Comport in ports) { portBox.Items.Add(Comport); } } private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { indata = serialPort1.ReadExisting(); richTextBox1.Invoke((MethodInvoker)delegate { richTextBox1.Text += "HOST2 : " + indata + "\r\n"; }); } 解决方案 这篇关于RS232通讯,收到数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
09-01 19:53