标题: 基于VS的C#串口通讯工具编程(详细教程) [打印本页]

作者: mavis1207    时间: 2018-8-4 14:56
标题: 基于VS的C#串口通讯工具编程(详细教程)
基于VS的C#串口通讯工具,实现串口通讯
最近需要用到了 C#写一个上位机,因为本人非软件专业,对于电脑软件编程还算陌生,所以今天试着在 Visual Studio 2008 写了一个串口助手用来练手。在编写的过程中参考了许多网上的教程,在此对无私奉献的网友们深表感谢。依然是我一贯的作风,成果取自于网络,自当也要提供于网络,故我将这两天的学习整理成该文档,作为阶段性学习总结,也方便以后有人学习可以更方便。
废话不多说了,把今天写的这个 C#串口助手的编写记录下来吧。因为我也是刚刚接触C#两天,如果程序中有不足的地方,希望大家可以谅解,也欢迎批评指正。
串口调试小程序功能:
通过“串口设置”来设置串口的相应参数,“串口检测”可以用来检测计算机可用的串口。“发送数据”可以将“数据发送”栏中的数据通过串口发送出去。一旦串口接收到数据,则会在“数据接收”栏中显示出来,通过先前设置的“字符显示”或者“HEX 显示”来以字符显示或者以十六进制数显示。“清空数据”则可以清除“数据接收”栏以及“收据发送”栏中的所有数据。
串口调试小程序主界面:


在 Visual Studio 2008 菜单栏点击“文件”>“新建项目”,创建 Visual C#下的 Windows
窗体应用程序:

在窗体上添加三个“GroupBox”控件,分别将窗体分为“串口设置”、“数据接收”以及“数据发送”三部分。
添加若干“Label”和“ComboBox”分别用于串口号、波特率、停止位、奇偶校验、数据位等的设置;添加两个“RodioButton”用于字符显示和 HEX 显示的选择;添加若干“Button”用于串口检测、打开串口、清空数据以及发送数据等功能按钮;最后分别在数据接收栏和数据发送栏中各添加一个“TextBox”控件,用于数据的收发。
对各个布置好的控件进行命名,方便编程。
另外更改“字符显示”的 RodioButton 控件属性中的 Checked 为 true,使在打开程序后默认选择“字符显示”。
更改数据接收栏中的 TextBox 控件属性中的 ReadOnly 为 true,使这个空间只能显示接收到的数据,不能被编辑。
更改窗体 Form 属性中的 AcceptButton 为 btnSend(发送数据按钮的名称),使在窗体下按下回车键关联“发送数据”按钮。


双击控件可以在程序中添加相应代码,本程序所有代码在本文的最后粘贴出来,大家可以根据代码以及注释来学习 C#下的串口程序编写。
另外现在的多数笔记本电脑已经没有串口,我们可以购买 USB 转串口模块来学习串口。另外告诉大家一个小诀窍:为了方便软件测试,可以将串口的 RX 和 TX 用杜邦线连接,这样串口发出的信息就能被自己接收到了,仅用一个串口就能调试该软件。



完整的pdf格式文档51黑下载地址:
C#编写串口程序(详细教程).rar (343.66 KB, 下载次数: 1095)



作者: ch12063119    时间: 2018-8-14 19:35
不能用,有问题
作者: wangshen33    时间: 2018-8-17 14:02
可以用!下载文件修改.rar格式,如何解压就可以了
作者: 酌繁    时间: 2018-12-20 00:50
程序完整,但是是PDF
作者: Betray98    时间: 2018-12-23 23:44
很不错,下载看看。
作者: qq2203049    时间: 2018-12-26 13:15
下载下来了,但是提示文件损坏,无法解压
作者: xcx7694    时间: 2018-12-26 14:06
我能说我下了两遍吗
作者: bg3irm    时间: 2018-12-27 20:00
收藏了,以后下载
作者: scmianyangzly    时间: 2019-3-1 15:15
不能用,浪费了我15积分
作者: sualalala    时间: 2019-4-25 15:17
可以下载的,挺好
作者: ccczx    时间: 2019-4-30 14:38
连续接收数据,怎么判断每帧呀?
作者: lianwazi    时间: 2019-5-1 18:21
谢谢分享!!!!!
作者: Abel_lin    时间: 2019-5-16 15:07
接收不到数据
作者: Abel_lin    时间: 2019-5-16 15:07
按钮的风格做出来跟你的不一样,楼主能提供VS格式 的源码吗?
作者: tianshenxiafan    时间: 2019-5-22 12:51
感谢楼主分享
作者: hbyihoo    时间: 2019-6-14 15:15

很不错,下载看看。
作者: 87567620    时间: 2019-6-22 19:57
学习了  不知道 怎么弄
作者: 林伟的    时间: 2019-7-1 21:00
学习了
作者: 芙蓉豆    时间: 2019-7-7 14:56
很棒

作者: qw931225    时间: 2019-7-8 09:07
学习了,下载来看看
作者: crc5474    时间: 2019-7-22 15:50
学习了,感谢
作者: cwj0123    时间: 2019-7-26 08:31
試試看能不能用,謝謝
作者: quiet0607    时间: 2019-7-30 14:46
学习了,
作者: yigerenqulvxing    时间: 2019-7-30 17:27
先下载试试,看看怎么样
作者: 一目五先生    时间: 2019-8-7 15:23
学习一下,
作者: 一目五先生    时间: 2019-8-7 15:23
修改一下格式试试能不能用
作者: WIN3010    时间: 2019-8-9 23:11
学习一下  
作者: 王胖子    时间: 2019-8-16 10:25
学习一下下,谢谢!
作者: wjiabin    时间: 2019-8-23 11:24
可以参考下,已下载。
作者: miaobida    时间: 2019-8-26 11:36
谢谢楼主!
作者: SteveLou    时间: 2019-11-21 11:41
Study it only
作者: shszwqs    时间: 2019-11-25 13:34
学习学习,谢谢
作者: 我是你峯哥    时间: 2019-12-26 20:49
把代码弄下去就可以测试吗
作者: 我是你峯哥    时间: 2019-12-26 20:57
楼主在吗?
作者: forest3    时间: 2020-1-4 17:48
是个pdf文件,需要自己敲一下出来
作者: forest3    时间: 2020-1-5 09:58
敲完试了下有些缺失,搞好先后顺序就没问题了
作者: Vancychan    时间: 2020-1-9 17:00
很不错,下载看看
作者: 3155439050    时间: 2020-1-14 17:54
对于新手的我来说,这个教程太有用了
作者: 3155439050    时间: 2020-1-14 17:54
开到想要的教程了
作者: 深海飞龙    时间: 2020-1-19 23:31
感谢分享,学习
作者: ztzp    时间: 2020-1-22 12:52
楼主用for循环产生COM口,这样产生的COM口有很大一部分是无效的,我不知道程序中是否会在后续用户打开这些无效的COM口时还要不要进行判断,这些处理其实都很麻烦。


其实C#有更好的方法解决这个问题,那就是用foreach循环产生COM口:


这样产生的COM口,个个都是有效的。
我发现杜洋的那个上位机视频也是用楼主这个方法,在这里感觉大家接触C#的时间都不长,可能更多的是接触硬件的时间比较多,我是2002年开始用转C#编程的,当时的版本是VS2002,后来相继用过VS2003、VS2005、VS2008、VS2010、去年开始用VS2013。


作者: 真-小白    时间: 2020-1-23 21:56
代码写的好像有问题吧,打开串口没有反应,还是说这个函数就没有写
作者: 947383238    时间: 2020-3-19 09:18
很不错,下载看看。
作者: npccpn    时间: 2020-5-7 14:57
感谢,正好用得上
作者: qwerty_sz    时间: 2020-5-19 15:13

感谢分享,学习
作者: newepson2001    时间: 2021-3-25 15:56
谢谢楼主的分享,下来好好学习学习!
作者: hungquoctg    时间: 2021-9-19 18:25
Many thank for shared.
作者: 黑桃玩家    时间: 2021-9-27 15:24
是我哪里出错了吗?前面全部跟着做,压缩包也解压看到代码了,但是不知道这代码应该放在那里去。
作者: 黑桃玩家    时间: 2021-9-27 17:54
酌繁 发表于 2018-12-20 00:50
程序完整,但是是PDF

怎么用啊?按照步骤做完了之后又应该把程序放在哪里去?

作者: lyntech    时间: 2021-10-11 20:14
这个资料不错的,有参考价值,感谢
作者: jiaoguanhui    时间: 2021-11-26 07:08
用循环方式需要多次计算,能否用指定位的方式  更好
作者: shenqiwei    时间: 2022-5-3 02:15
学习一下,感谢
作者: kksu49    时间: 2022-8-22 10:57
无法解压,报错
作者: 22嘉然33    时间: 2022-11-24 16:02
中文显示乱码




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1