C#练习3、串口通信-示例

这篇博客介绍了如何在.NET 2.0中利用System.IO.Ports.SerialPort类进行串口通信。主要内容包括设置串口参数如波特率、奇偶校验、数据位和停止位,以及如何通过Open()和Close()方法打开和关闭串口。同时,讲解了读写数据的方法Read()和Write(),并提及了DataReceived事件用于监听数据到达。
摘要由CSDN通过智能技术生成

.NET 2.0提供了对串口通信功能的支持,在命名空间System.IO.Ports下找到SerialPort类,通过创建一个新的SerialPort对象,我们就可以在.NET程序中控制串口通讯的全过程。
(1).属性介绍
进行串口通讯时,需要设置一些相关参数,可以通过设置SerialPort类的属性来进行。
SerialPort属性主要包括:
.PortName 串口名称,COM1, COM2等。
.BaudRate 波特率,也就是串口通讯的速度,进行串口通讯的双方其波特率需要相同,如果用PC连接其他非PC系统,一般地,波特率由非PC系统决定。
.Parity 奇偶校验。可以选取枚举Parity中的值
.DataBits 数据位
.StopBits 停止位,枚举StopBits中的值
.Handshake 握手方式,也就是数据流控制方式,枚举Handshake中的值

(2).打开与关闭串口
在创建一个SerialPort对象,设置串口属性后,可以通过Open()方法打开串口。数据读写完成后,可以通过Close()方法关闭串口。
根据经验,对于有些系统,在打开串口后,还需要将RtsEnable设置为True,这样才能读写数据,否则不能正常读写数据。

(4).读写字节或字符数据 对于字节或字符数据,用Read()方法来读数据,该方法需要一个字节或字符数组作为参数来保存读取的数据,结果返回实际读取的字节或字符数。 写数据使用Write()方法,该方法可以将字节数组、字符数据或字符串发送给另一方。

(5).事件 SerialPort提供了DataReceived事件。当有数据进入时,该事件被触发。 该事件的触发由操作系统决定,当有数据到达时,该事件在辅助线程中被触发。辅助线程的优先级比较低,因此并不能确保每个字节的数据到达时,该事件都被触发。

========================效果图 ==============================
在这里插入图片描述
代码段:

public partial class SerialPortEx : Form
    {
        private SerialPort sp = new SerialPort();
        bool isOpen = false; //
        bool isSetProperty = false; //属性设置标志
        bool isHex = false; //十六进制显示标志
        bool isFileOpen = false;
        string RecvDataText = null;
        
        public SerialPortEx()
        {
            InitializeComponent();
        }

        private void SerialPort_Load(object sender, EventArgs e) //串口列表
        {
            for (int i 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值