⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 原本.net1.1都是采用justinIO.cs的
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.IO.Ports;
using System.Threading;
using System.Deployment;

namespace serialCommDotNetCF2
{
    public partial class Form1 : Form
    {
        string receivedData;
        public Form1()
        {
            InitializeComponent();
        }

        private void menuItem1_Click(object sender, EventArgs e)  // sending
        {
            serialPort1.Write(textBox1.Text);
            ReceiveData(serialPort1);
            textBox2.Text = receivedData;
        }

        private void menuItem3_Click(object sender, EventArgs e) // connecting
        {
            serialPort1.Open();
        }

        private void menuItem4_Click(object sender, EventArgs e) //exit
        {
            serialPort1.Close();
            this.Close();
        }
        private void SendStringData(SerialPort serialPort)
        {
            serialPort.Write(textBox1.Text);
            ReceiveData(serialPort1);
        }
        private void ReceiveData(SerialPort serialPort)
        {
            //同步阻塞接收数据线程
           
            System.Threading.Thread.Sleep(0);
            serialPort.ReadTimeout = 4000;
            try
            {
                //阻塞到读取数据或超时(这里为4秒)
                byte firstByte = Convert.ToByte(serialPort.ReadByte());
                int bytesRead = serialPort.BytesToRead;
                byte[] bytesData = new byte[bytesRead + 1];
                bytesData[0] = firstByte;
                for (int i = 1; i <= bytesRead; i++)
                    bytesData[i] = Convert.ToByte(serialPort.ReadByte());
                receivedData = System.Text.Encoding.Default.GetString(bytesData, 0, bytesRead);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                //处理超时错误
            }
            serialPort1.Write("sync");
            //serialPort.Close();

        }
        //同步阻塞读取
       /* private void SynReceiveData(object serialPortobj)
        {
            SerialPort serialPort = (SerialPort)serialPortobj;
            System.Threading.Thread.Sleep(0);
            serialPort.ReadTimeout = 4000;
            try
            {
                //阻塞到读取数据或超时(这里为4秒)
                byte firstByte = Convert.ToByte(serialPort.ReadByte());
                int bytesRead = serialPort.BytesToRead;
                byte[] bytesData = new byte[bytesRead + 1];
                bytesData[0] = firstByte;
                for (int i = 1; i <= bytesRead; i++)
                    bytesData[i] = Convert.ToByte(serialPort.ReadByte());
                receivedData = System.Text.Encoding.Default.GetString(bytesData, 0, bytesRead);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                //处理超时错误
            }
            serialPort1.Write("sync");
            //serialPort.Close();

        }*/

       
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -