C#做的串口通信助手可发可收简单(免费开源)

最近在做物联网相关的项目,要用到串口,所以今天做一个C#的串口上位机,供大家参考,程序如果有不对希望大家指正,谢谢!
首先看一下效果

现在开始制作我们的串口小DEMO
首先打开VS(我这里是VS2013)
点击文件

然后点击项目

然后新建一个C#的窗口程序,下面的路径自己修改

然后就建好工程了,下面是布局,在左边的工具箱里拖自己想要的控件即可。

这个根据自己的喜好来摆放
我这里添加了4个GroupBox控件,还有5个Lable控件以及几个按钮。这都是比较简单。
至于控件的name自己定,根据代码修改就好。

然后添加一个串口的组件SerialPort.
下面是代码部分。
首先是初始化

 private void Form1_Load(object sender, EventArgs e)//加载时初始化{for(int i=0;i<20;i++){cbxPort.Items.Add("COM" + (i + 1));}cbxPort.SelectedIndex=4;//加载常用的波特率cbxBaud.Items.Add("1200");cbxBaud.Items.Add("2400");cbxBaud.Items.Add("4800");cbxBaud.Items.Add("9600");cbxBaud.Items.Add("19200");cbxBaud.Items.Add("38400");cbxBaud.Items.Add("115200");cbxBaud.SelectedIndex = 6;//加载停止位cbxStopBits.Items.Add("0");cbxStopBits.Items.Add("1");cbxStopBits.Items.Add("1.5");cbxStopBits.Items.Add("2");cbxStopBits.SelectedIndex = 1;//加载数据位cbxData.Items.Add("8");cbxData.Items.Add("7");cbxData.Items.Add("6");cbxData.Items.Add("5");cbxData.SelectedIndex = 0;//加载奇偶校验位cbxParity.Items.Add("无");cbxParity.Items.Add("奇校验");cbxParity.Items.Add("偶校验");cbxParity.SelectedIndex = 0;}

这一部分是初始化布局。

 private void but_check_Click(object sender, EventArgs e){cbxPort.Items.Clear();    //扫描前清除当前串口号中的所有串口名称for (int i = 0; i < 20; i++){try{serialPort1.PortName = "COM" + (i + 1).ToString();serialPort1.Open();serialPort1.Close();cbxPort.Items.Add("COM" + (i + 1).ToString());cbxPort.SelectedIndex = 0;return ;}catch (Exception){continue;}}MessageBox.Show("没有找到可用的串口!", "错误");}

这一部分是扫描串口

 private void but_open_Click(object sender, EventArgs e){if(but_open.Text=="关闭串口"){serialPort1.Close();but_open.Text = "打开串口";cbxPort.Enabled = true;cbxBaud.Enabled = true;cbxData.Enabled = true;cbxStopBits.Enabled = true;cbxParity.Enabled = true;//re_rbnchar.Enabled = true;//re_rbnHex.Enabled = true;return;}serialPort1.PortName = cbxPort.Text;//设置端口号serialPort1.BaudRate = int.Parse(cbxBaud.Text);if (cbxStopBits.Text.Trim() == "0")    //设置停止位{serialPort1.StopBits = StopBits.None;}else if (cbxStopBits.Text.Trim() == "1.5"){serialPort1.StopBits = StopBits.OnePointFive;}else if (cbxStopBits.Text.Trim() == "2"){serialPort1.StopBits = StopBits.Two;}else{serialPort1.StopBits = StopBits.One;}serialPort1.DataBits = Convert.ToInt16(cbxData.Text.Trim());    //设置数据位if (cbxParity.Text.Trim() == "奇校验")    //设置校验{serialPort1.Parity = Parity.Odd;}else if (cbxParity.Text.Trim() == "偶校验"){serialPort1.Parity = Parity.Even;}else{serialPort1.Parity = Parity.None;}try{serialPort1.Open();but_open.Text = "关闭串口";cbxPort.Enabled = false;cbxBaud.Enabled = false;cbxData.Enabled = false;cbxStopBits.Enabled = false;cbxParity.Enabled = false;}catch (Exception){MessageBox.Show("串口被占用或无效", "错误");}}

这里是打开或关闭串口。

还有部分代码比较长没有贴上来,大家可以自行下载。


关注微信公众号“智慧小巷”回复002即可获得程序全部源码。

C#做的串口通信助手可发可收简单(免费开源)相关推荐

  1. K210学习笔记(三) K210与STM32进行串口通信,K210发STM收

    文章目录 前言 一.以/r/n为结尾 二.K210端代码 三.STM32端 3.1 main函数 四.测试结果 4.1当收到1时 4.2当收到2时 4.3 测试视频 总结 前言 前面我们讲了STM32 ...

  2. QT的串口通信助手C++代码开源

    QT的串口通信助手C++代码开源 Qt是一种基于C++的跨平台图形用户界面应用程序开发框架 本次使用QT的版本是5.6 需要在pro文件里面添加 QT += serialport 添加库文件 布局界面 ...

  3. 利用python程序、虚拟串口软件、串口通信助手,实现串口通信(两串口互相收发文字)

    一.流程简述 程序可以参考: https://blog.csdn.net/colcloud/article/details/42454839 这是我参考后简化的版本: https://github.c ...

  4. 基于AT89C52和串口通信助手的串口通信

    我们要实现的功能是在程序运行的时候通过单片机的串口向串口调试助手发送一个字符串诸如"hello world",串口通信助手接收到字符串之后显示并由用户反馈回去一个长度为4的字符串并 ...

  5. pic常用子程序c语言,手把手教你使用PIC单片机做RS232串口通信实验(C语言版)

    这一期,我们将一起来学习一下PIC单片机如何与PC机进行通信,一起来完成一个简单的RS232通信实例,我们不做太多的理论,从实例出发,相信能够给大家一个比较通俗.透彻地认识,掌握了它的原理,那你就可以 ...

  6. 两个串口通信助手之间通信_串口通信原理

    LC串口通信原理 PLC各型主机均内建2个通信接口的标准配置,即一个RS232和一个RS485通信接口,其RS232接口主要用于上下载程序或用来与上位机.触摸屏通信,而RS485接口主要用于组建使用R ...

  7. linux下QT开发串口通信助手

    串口通信的应用十分广泛,所以在QT下编写一个串口通信程序就显得尤为重要.下面将一步一步叙述开发过程: 1.下载第三方QT串口类,免积分 http://download.csdn.net/detail/ ...

  8. linux串口助手开发,linux下QT开发串口通信助手

    串口通信的应用十分广泛,所以在QT下编写一个串口通信程序就显得尤为重要.下面将一步一步叙述开发过程: 1.下载第三方QT串口类,免积分 http://download.csdn.net/detail/ ...

  9. Winform制作简易串口通信助手的相关问题及解决方案

    目录 项目背景 1.设计流程 1.1 使用VS.NET提供的可视化构造器创建UI界面 1.2 创建按钮的_Click触发事件 2.所遇问题 3.解决方案 第一次写博客,想分享一个大佬说过的话:程序员很 ...

最新文章

  1. 为什么数学无法给机器意识
  2. 家用计算机先驱逝世:Linux之父曾受他启发,马斯克悼念
  3. PHP内核介绍及扩展开发指南—高级主题
  4. mysql 支持 pdo_使php支持pdo_mysql_睿合科技
  5. 项目质量管理知识点整理和习题整理
  6. Windows Embedded CE 6.0开发初体验(七)编译和调试平台
  7. 65. magent 手动创建用户
  8. Unicode官网Code Charts下载。
  9. 《软件体系结构》 第七章 基于体系结构的软件开发
  10. python神经网络算法pdf_深度学习:卷积神经网络从入门到精通 PDF 原书扫描版
  11. 微计算机原理及应用视频,微机原理及应用(上海交通大学)
  12. 金山云服务器e1型,金山云-文档中心-重装系统
  13. 深入WEP密码破解原理
  14. UOJ449 集训队作业2018 喂鸽子
  15. 速腾激光雷达 xavier环境驱动配置踩坑记录
  16. 2021年安全员-C证-专职安全生产管理人员(广东省)考试APP及安全员-C证-专职安全生产管理人员(广东省)证考试
  17. 基于javaweb小说评价下载网站管理系统 ssm框架
  18. 高斯定理证明(HTML)
  19. Unable to access ‘https://github.com/**/**/‘: OpenSSL SSL_read: Connection was aborted, errno 10053
  20. 我的QQ签名记录 最近更新2006-11-11

热门文章

  1. 城市动能转换_动能转换 驱动发展
  2. Matplotlib入门 北理工嵩天老师python数据分析与展示 单元4随堂笔记
  3. 箱线图入门,一文看懂箱线图,matplotlib画箱线图
  4. 使用calibre将epub文件转pdf
  5. 大数据助推新型智库建设
  6. 利用Arduino Uno进行电压电流和温度采集,请教程序问题。
  7. 前端基础:Day06
  8. 潘凯:C++对象布局及多态实现的探索(六)
  9. C++对象布局及多态实现探索之内存布局
  10. MATLAB给目标音频文件设计滤波器去除所添加的噪声