在.NET平台下创建C#串口通信程序,.NET 2.0提供了串口通信的功能,其命名空间是System.IO.Ports。这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信。我们将使用标准的RS 232 C 在PC间通信。它工作在全双工模式下,而且我们不打算使用任何的握手或流控制器,而是使用无modem连接。创建C#串口通信程序的具体实现是如何的呢?让我们开始吧:
创建C#串口通信程序之命名空间
System.IO.Ports命名空间中最重用的是SerialPort 类。
创建C#串口通信程序之创建SerialPort 对象
通过创建SerialPort 对象,我们可以在程序中控制串口通信的全过程。
我们将要用到的SerialPort 类的方法:
ReadLine():从输入缓冲区读一新行的值,如果没有,会返回NULL
WriteLine(string):写入输出缓冲
Open():打开一个新的串口连接
Close():关闭
-
SerialPortsp=newSerialPort();
默认情况下,DataBits 值是8,StopBits 是1,通信端口是COM1。这些都可以在下面的属性中重新设置:
BaudRate:串口的波特率
StopBits:每个字节的停止位数量
ReadTimeout:当读操作没有完成时的停止时间。单位,毫秒
还有不少其它公共属性,自己查阅MSDN。
创建C#串口通信程序之串口的硬件知识
在数据传输的时候,每个字节的数据通过单个的电缆线传输。包包括开始位,数据,结束为。一旦
开始位传出,后面就会传数据,可能是5,6,7或8位,就看你的设定了。发送和接收必须设定同样
的波特率和数据位数。
创建C#串口通信程序之无猫模式
没有Modem模式的电缆只是简单地交叉传送和接收线。同样DTR & DSR, 和 RTS & CTS也需要交叉。
这里,我们三条线。互连2和3(一段的2pin连接3pin),连接两端的5pin。
创建C#串口通信程序示例程序
如果想使用默认属性,按“Save Status”按钮,如果想改变属性按“Property”。设定好之后,可以通信了。
主窗口的代码
- #regionUsingdirectives
-
usingSystem;
-
usingSystem.Collections.Generic;
-
usingSystem.ComponentModel;
-
usingSystem.Data;
-
usingSystem.Drawing;
-
usingSystem.Windows.Forms;
-
usingSystem.IO.Ports;
- #endregion
-
namespaceSerialexpample
- {
-
partialclassForm1:Form
- {
-
-
-
-
PropertyPagepp=newPropertyPage();
-
-
SerialPortsp=newSerialPort();
-
publicForm1()
- {
- InitializeComponent();
- }
-
privatevoidpropertyButton_Click(objectsender,EventArgse)
- {
-
- pp.ShowDialog();
- propertyButton.Hide();
- }
-
privatevoidsendButton_Click(objectsender,EventArgse)
- {
-
try
- {
-
- sp.WriteLine(textBox.Text);
-
-
textBox.Text="";
- }
-
catch(System.Exceptionex)
- {
- baudRatelLabel.Text=ex.Message;
- }
- }
-
privatevoidReadButton_Click(
-
objectsender,EventArgse)
- {
-
try
- {
-
-
textBox.Text="";
-
- textBox.Text=sp.ReadLine();
- }
-
catch(System.Exceptionex)
- {
- baudRatelLabel.Text=ex.Message;
- }
- }
-
privatevoidForm1_Load(objectsender,EventArgse)
- {
- }
-
privatevoidForm1_FormClosing(
-
objectsender,FormClosingEventArgse)
- {
-
MessageBox.Show("DouwanttoClosetheApp");
- sp.Close();
- }
-
privatevoidstartCommButton_Click(
-
objectsender,EventArgse)
- {
- startCommButton.Hide();
- sendButton.Show();
- readButton.Show();
- textBox.Show();
- }
-
-
privatevoidsaveStatusButton_Click_1(
-
objectsender,EventArgse)
- {
-
-
-
if(pp.bRate==""&&pp.sBits=="")
- {
-
dataBitLabel.Text="BaudRate="+
- sp.BaudRate.ToString();
-
readTimeOutLabel.Text="StopBits="+
- sp.StopBits.ToString();
- }
-
else
- {
-
dataBitLabel.Text="BaudRate="+
- pp.bRate;
-
readTimeOutLabel.Text="StopBits="+pp.sBits;
- } //创建C#串口通信程序
-
parityLabel.Text="DataBits="+
- sp.DataBits.ToString();
-
stopBitLabel.Text="Parity="+
- sp.Parity.ToString();
-
readTimeOutLabel.Text="ReadTimeout="+
- sp.ReadTimeout.ToString();
-
if(propertyButton.Visible==true)
- propertyButton.Hide();
- saveStatusButton.Hide();
- startCommButton.Show();
-
try
- {
-
- sp.Open();
-
- sp.ReadTimeout=500;
- }
-
catch(System.Exceptionex)
- {
- baudRatelLabel.Text=ex.Message;
- }
- }
- }
- }
创建C#串口通信程序之属性设置对话框代码:
- #regionUsingdirectives
-
usingSystem;
-
usingSystem.Collections.Generic;
-
usingSystem.ComponentModel;
-
usingSystem.Data;
-
usingSystem.Drawing;
-
usingSystem.Text;
-
usingSystem.Windows.Forms;
- #endregion
-
namespaceSerialexpample
- {
-
partialclassPropertyPage:Form
- {
-
-
privatestringbaudR="";
-
privatestringstopB="";
-
-
publicstringbRate
- {
-
get
- {
-
returnbaudR;
- }
-
set
- {
- baudR=value;
- }
- }
-
publicstringsBits
- {
-
get
- {
-
returnstopB;
- }
-
set
- {
- stopB=value;
- }
- }
-
publicPropertyPage()
- {
- InitializeComponent();
- }
-
privatevoidcancelButton_Click(
-
objectsender,EventArgse)
- {
-
this.bRate="";
-
this.sBits="";
-
-
this.Close();
- }
-
privatevoidokButton_Click_1(
-
objectsender,EventArgse)
- {
-
-
this.bRate=BaudRateComboBox.Text;
-
this.sBits=stopBitComboBox.Text;
-
-
this.Close();
- }
- }
- }
C#串口通信程序创建的相关内容就向你介绍到这里,希望对你了解创建C#串口通信程序的步骤和需要注意的事宜。
分享到:
相关推荐
C#写的【LOL自动挂机刷金币程序】,开放项目完整【源代码】 GitHub开源地址:https://github.com/MoonLord-LM/LolAutoPlay 我的博客地址:http://www.moonlord.cn/blog/1451477428.html C#贴吧地址:...
,C# 简单的作业调度,亦可参考博客:http://www.cnblogs.com/chenwolong/p/Job.html,C# 简单的作业调度,亦可参考博客:http://www.cnblogs.com/chenwolong/p/Job.html,C# 简单的作业调度,亦可参考博客:...
C#并发处理。存储过程版、EF框架版,详情请结合博客:http://www.cnblogs.com/chenwolong/p/BF.html 网址。 C#并发处理。存储过程版、EF框架版,详情请结合博客:http://www.cnblogs.com/chenwolong/p/BF.html ...
描述: 专业的C#语言在线帮助网站,主要提供C#语言方面的技术文章。专业性很强。 名称:DotNet247 地址:http://www.dotnet247.com 描述:最好的索引网站,分别按照门类及命名空间的索引,也提供了Microsoft KB...
支持语言:PHP,JSP,ASP,ASP.NET(C#),ASP.NET(VB),C++,VC,VC.NET,VB,VB.NET,C#,C#.NET,Delphi,C++Builder 支持平台:Visual Studio 6.0/2002/2003/2005/2008/2010,C++ Builder 6.0/2009/2010,Delphi 7/2009,Visual ...
http://www.360doc.com/userhome.aspx?userid=19107491&cid=3 jQuery基本选择器及用法 前端模块化开发(AMD和CDM规范) http://wenku.baidu.com/view/25ddbf420b4e767f5acfcee0.html jQuery.getJSON的缓存问题的解决...
c 使用 lepoco/wpfui: https://github.com/lepoco/wpfui Microsoft.Extensions.DependencyInjection serilog/serilog: https://github.com/serilog/serilog microsoft/webview2: ...GuerrillaNtp
ftp://61.132.59.166/计算机类/shubulo/ProfessionalCsharp_4thE_CHN.rar ftp://61.132.59.166/计算机类/shubulo/ProfessionalCsharp_4thE_CHN.rar ftp://61.132.59.166/计算机类/shubulo/ProfessionalCsharp_4thE...
https://download.csdn.net/download/p_xiaojia/9756173
C#与.NET3.5高级程序设计,中文,包含书中源码,本书比较深入的讲解C#编程。 整个压缩包共5个 C#与.NET3.5高级程序设计.part1 http://ishare.iask.sina.com.cn/f/15241795.html C#与.NET3.5高级程序设计.part2 ...
微信小程序获取小程序页面二维码API接口,通过后台post网址https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN, 获取access_token方式,参数{"path": "pages/index/index?query=...
摘要:VB/C#.Net实体代码生成工具(EntitysCodeGenerate)是一款专门为.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的程序代码基于面向对象、分层架构、ORM及反射+工厂设计模式等。支持.Net1.1及以上...
开发文档-ASP.NET(C#):http://www.cnblogs.com/xproer/archive/2010/12/04/1896552.html 开发文档-PHP:http://www.cnblogs.com/xproer/archive/2011/05/16/2047915.html 开发文档-JSP:...
C#与.NET3.5高级程序设计,中文,包含书中源码,本书比较深入的讲解C#编程。 整个压缩包共5个 C#与.NET3.5高级程序设计.part1 http://ishare.iask.sina.com.cn/f/15241795.html C#与.NET3.5高级程序设计.part2 ...
大恒图像halcon调用引擎.hdvp支持重新加载,PPT讲解 C++/Qt,C#也可以看,参考意义重大附带http://www.skcircle.com/?id=1344课程资源,
C#遍历treeview节点,以及对应名字文件的内容获取 Q692791问题的回答,https://ask.csdn.net/questions/692791
websocket-sharp 是非常好用的c#开源dll,这是我从https://github.com/sta/websocket-sharp上下载开源代码编译生成的dll,经过本人测试,完全可以使用
百度翻译旧服务已下线,迁移至 http://api.fanyi.baidu.com,本程序重新修改后,可以调用百度翻译的新的API。当然需要你自己申请APPID和密钥,然后就拥有属于你自己的翻译机了!
小demo,需要自己先安装mongodb http://blog.csdn.net/xue251248603/article/details/44243733
C# 最完美的仿黑客帝国字雨程序 源码有点狠,没胆量不要点,程序锁定键盘鼠标,一直下字雨 官方主页:http://www.8han.com 制作:梦想接口编程组 QQ讨论群:72470753