• 大小: 66KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: C#
  • 标签: C#  

资源简介

C# 串口通信原理及源码。。内置有转码的功能。可以用于调试串口设备。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //当前参数设置
        string serial = ““;
        string baudRate = ““;
        string dataBits = ““;
        string stop = ““;
        string parity = ““;

        //当前是否打开串口
        bool ifShow = false;
        SerialPort sp1 = new SerialPort();        //这个是定义的全局变量
        private void Form1_Load(object sender EventArgs e)
        {
            // messagebox.show(“欢迎使用“);
            string[] str = SerialPort.GetPortNames();//检查是否含有串口 
            if (str == null)
            {
                MessageBox.Show(“本机没有串口!“ “error“);
                return;
            }

            foreach (string s in System.IO.Ports.SerialPort.GetPortNames())   //添加串口
            {
                cbSerial.Items.Add(s);          //获取有多少个COM口,添加到控件里
            }
            cbBaudRate.Items.Add(“9600“); //对波特率,数据位,停止伟这几个控件里面的值进行初始化显示 这样就可以避免我们调试时反复的对他们进行输入
            cbDataBits.Items.Add(“8“);
            cbStop.Items.Add(“1“);
            cbParity.Items.Add(“无“);

            cbSerial.SelectedIndex = 0; //获取或是指当前选定项的索引//串口设置默认选择项 
            cbBaudRate.SelectedIndex = 0;
            cbDataBits.SelectedIndex = 0;
            cbStop.SelectedIndex = 0;
            cbParity.SelectedIndex = 0;

            Control.CheckForIllegalCrossThreadCalls = false;
            sp1.Encoding = System.Text.Encoding.GetEncoding(“UTF-8“);
            sp1.DataReceived += new SerialDataReceivedEventHandler(sp1_DataReceived); //订阅委托 
        }

        //保存设置
        private void button2_Click(object sender EventArgs e)
        {
            serial = cbSerial.SelectedItem.ToString();
            baudRate = cbBaudRate.SelectedItem.ToString();
            dataBits = cbDataBits.SelectedItem.ToString();
            stop = cbStop.SelectedItem.ToString();
            parity = cbParity.SelectedItem.ToString();

            //赋值
            lbSerial.Text = “串口号:“+ serial;
            lbBaudRate.Text = “波特率:“ + baudRate;
            lbDataBits.Text = “数据位:“ + dataBits;
            lbStop.Text = “停止位:“ + stop;
            lbParity.Text = “校验位:“ + parity;
        }

        void sp1_DataReceived(object sender SerialDataReceivedEventArgs e)
        {
            //接收数据
            string str = ““;
            do
            {
                int count = sp1.BytesToRead;
                if (count <= 0)
                    break;
                byte[] readBuffer = new byte[count];

                Application.DoEvents();
                sp1.Read(readBuffer 0 count);
                str += System.Text.Encoding.GetEncoding(“

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-04-12 10:23  WindowsTest\
     目录           0  2018-04-12 10:23  WindowsTest\.vs\
     目录           0  2018-04-12 10:23  WindowsTest\.vs\WindowsTest\
     目录           0  2018-04-12 10:23  WindowsTest\.vs\WindowsTest\v14\
     文件       47104  2018-06-11 15:44  WindowsTest\.vs\WindowsTest\v14\.suo
     目录           0  2018-04-20 19:04  WindowsTest\WindowsTest\
     文件        1000  2018-04-12 10:23  WindowsTest\WindowsTest.sln
     文件         189  2018-04-12 10:23  WindowsTest\WindowsTest\App.config
     目录           0  2018-04-12 10:23  WindowsTest\WindowsTest\bin\
     目录           0  2018-04-12 10:24  WindowsTest\WindowsTest\bin\Debug\
     文件       16896  2018-04-26 10:58  WindowsTest\WindowsTest\bin\Debug\WindowsTest.exe
     文件         189  2018-04-12 10:23  WindowsTest\WindowsTest\bin\Debug\WindowsTest.exe.config
     文件       24064  2018-04-26 10:58  WindowsTest\WindowsTest\bin\Debug\WindowsTest.pdb
     文件       22696  2018-06-23 11:38  WindowsTest\WindowsTest\bin\Debug\WindowsTest.vshost.exe
     文件         189  2018-04-12 10:23  WindowsTest\WindowsTest\bin\Debug\WindowsTest.vshost.exe.config
     文件         490  2016-07-16 19:44  WindowsTest\WindowsTest\bin\Debug\WindowsTest.vshost.exe.manifest
     文件        6110  2018-04-20 19:04  WindowsTest\WindowsTest\Form1.cs
     文件       19958  2018-04-12 14:56  WindowsTest\WindowsTest\Form1.Designer.cs
     文件        6017  2018-04-12 14:56  WindowsTest\WindowsTest\Form1.resx
     目录           0  2018-04-12 10:23  WindowsTest\WindowsTest\obj\
     目录           0  2018-04-19 09:47  WindowsTest\WindowsTest\obj\Debug\
     文件        1464  2018-04-19 09:47  WindowsTest\WindowsTest\obj\Debug\DesignTimeResolveAssemblyReferences.cache
     文件        7144  2018-04-12 10:23  WindowsTest\WindowsTest\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
     文件           0  2018-04-12 10:23  WindowsTest\WindowsTest\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
     文件           0  2018-04-12 10:23  WindowsTest\WindowsTest\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
     文件           0  2018-04-12 10:23  WindowsTest\WindowsTest\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
     目录           0  2018-04-12 10:23  WindowsTest\WindowsTest\obj\Debug\TempPE\
     文件         681  2018-06-23 11:38  WindowsTest\WindowsTest\obj\Debug\WindowsTest.csproj.FileListAbsolute.txt
     文件        1012  2018-04-12 14:57  WindowsTest\WindowsTest\obj\Debug\WindowsTest.csproj.GenerateResource.Cache
     文件        2384  2018-04-12 10:24  WindowsTest\WindowsTest\obj\Debug\WindowsTest.csprojResolveAssemblyReference.cache
     文件       16896  2018-04-26 10:58  WindowsTest\WindowsTest\obj\Debug\WindowsTest.exe
............此处省略11个文件信息

评论

共有 条评论