最近一段时间,试验了串口的数据传输.在C#中,其实有一个很好的类SerialPort使串口间的通信变得简单而且好控制.
一.下面给出SerialPort的基本属性:
            serialPort1.PortName = "COM1";      //打开指定串口的名字,也可以是COM2.
            serialPort1.BaudRate = 9600;          //波特率,这是通信中的一术语,可以查相关资料,一般都是9600.
            serialPort1.DataBits = 8;     //传输数据位,一次传几位二进制数据.
            serialPort1.Parity = Parity.None;   //校验,它分为三种,一种奇校验,一种偶校验,还有一种是无校验.
            serialPort1.StopBits = StopBits.One;     //停止位.
            serialPort1.DtrEnable = true;  //是在开始时,启用数据终端.它与Modem上的TR信号灯对应,如果开始此灯不亮,则无法传输数据,所以在Modem的通信中,应该加上只句.让终端设备准备好.
            serialPort1.RtsEnable = true; //这个是请求发送.
serialPort1.Encoding = Encoding.ASCII; //因为数据发送时,是以字节数组形式发送所以可以定义好编码.
编码有:ASCII(只能传输英文),Unicode(可以传输中英文), UT8(中英文).根据自己的情况而定.
但要说明一点,要是你用write(byte[],int start,int length)的话,最好自己确定编码,而不用serialPort1.Encoding = Encoding.ASCII进行设置.如:
当你要传输
string strSend="hackenliu";
则先将strSend转为byte[]形式.如下:
byte []data= Encoding.ASCII.GetBytes(strSend);
serialport1.write(data,0,data.length); //发送数据了.
在Encoding下,可以选用上面的ASCII,也可以是Uicode,或是UT8.不过,一定要注意,接收双方的编码应该一样.
二.打开串口:
            if (serialPort1.IsOpen)
            {
                serialPort1.Close();
                serialPort1.Open();
            }
            else
                serialPort1.Open();
            lblShow.Text = "串口已打开";
三.发送数据:
serialPort类提供了很多的发送数据函数.有write(param),还有writeLine();
四.接收数据:
添加serialport类的事件
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
当有数据时,它会自动接收的.
如要源程序,可以给我留言或给我发电邮.
水平有限,如有错误,请指出.谢谢!
 
                   
                   
                   
                   本文介绍了如何使用C#中的SerialPort类实现串口通信,包括串口基本属性配置、串口的打开与关闭、数据发送及接收等关键步骤。
本文介绍了如何使用C#中的SerialPort类实现串口通信,包括串口基本属性配置、串口的打开与关闭、数据发送及接收等关键步骤。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   332
					332
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            