当前位置:编程学习 > C#/ASP.NET >>

serialPort控件

我用serialPort做串口通信,用3个Button实现  初始化   发送    接受  的功能   

初始化   
            serialPort1.PortName = "com1";//选择串口COM1   
            serialPort1.BaudRate = 9600;//设置通信口参数   
            serialPort1.DataBits = 8;//数据位    
            serialPort1.Parity = Parity.None;//校验位 None   
            serialPort1.StopBits = StopBits.One;//停止位1位   


发送   
            byte[] bytesData = {123,23};    

            if (!serialPort1.IsOpen)   
            {   
                serialPort1.Open();   
                serialPort1.Write(bytesData, 0, bytesData.Length);   
            }      

接受   
            byte[] b = new byte[serialPort1.BytesToRead];   
            serialPort1.Read(b, 0, b.Length);   
            serialPort1.Close();   

问题1:  
我想问下高手  为什么我在接受的时候b里没有数据呢?   

问题2:  
如果我要发送并接受这样一串数据  $GPRMC,013946.00,A,3337.3186,N,11900.4483,E,0.05,218.30,111105,4.5,W,A*20..   
怎么发送呢? --------------------编程问答-------------------- 问题1
先查看一下serialPort1.BytesToRead是多少?是0当然有错,
问题2:
serialPort1 .WriteLine (string text); --------------------编程问答-------------------- 有没有添加类的方法声明?
2/ 用ASCII方式收发还是2进制方式? --------------------编程问答-------------------- 你用Button接受数据应该是不对的吧,数据发送出去了后,有个接受超时,应该在DataReceived事件中接受。 --------------------编程问答-------------------- 1楼的朋友   serialPort1.BytesToRead是0  为什么呢?我不是发送数据了吗?

2楼的朋友   我想用ASCII方式收发  
你说的添加类的方法声明,怎么添加?请教下 --------------------编程问答-------------------- 3楼的朋友 
用DataReceived事件接受时 接受超时大概多少ms

        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            byte[] b = new byte[serialPort1.BytesToRead];
            serialPort1.Read(b, 0, b.Length); 
        }

这么写对吗?
--------------------编程问答-------------------- 串口是实现两个主机之间的通讯的,要想在一个PC电脑上实现接收和发送数据,一定要将串口的第2、3针连起来。

--------------------编程问答-------------------- 很抱歉,写错了。
串口是实现两个主机之间的通讯的,要想在一个PC电脑上实现接收和发送同样的数据,一定要将串口的第2、3针连起来 --------------------编程问答--------------------
引用 7 楼 baihe_591 的回复:
很抱歉,写错了。 
串口是实现两个主机之间的通讯的,要想在一个PC电脑上实现接收和发送同样的数据,一定要将串口的第2、3针连起来
--------------------编程问答-------------------- 不过,你可以通过串口工具来分别调试你的发送和接收函数是否正确!!
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,