首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# winform Net2.0 SerialPort串口发送接收解决方案

2013-09-21 
c# winform Net2.0 SerialPort串口发送接收c# winform Net2.0 SerialPort串口发送接收vs2005中拖入serialP

c# winform Net2.0 SerialPort串口发送接收
c# winform Net2.0 SerialPort串口发送接收


vs2005中拖入serialPort1 ,命名sPt

private void button1_Click(object sender, EventArgs e)
        {
            //发送串口数据
            sPt.PortName = "COM3";//串口 [COM3]
            sPt.BaudRate = 9600;//波特率 [9600]
            sPt.DataBits = 8;//数据位 [8]
            sPt.Parity = Parity.None;//奇偶校验 [无]
            sPt.StopBits = StopBits.One;//停止位 [1]
            sPt.Open();

            byte[] data = Encoding.Unicode.GetBytes(textBox1.Text);
            string str = Convert.ToBase64String(data);
            sPt.WriteLine(str);
         }



private void sPt_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            byte[] data = Convert.FromBase64String(sPt.ReadLine());
            string str = Encoding.Unicode.GetString(data);
            sPt.Close();
        }


单击按钮,发送textBox1文本中的指令,下位机无法接收到。不知代码那里错误。
请教各位指导。谢谢!
[解决办法]
用串口调试助手这个软件调试下,看看是没有发出,还是下位机没有收到。
[解决办法]
http://download.csdn.net/detail/yeqi3000/6011213
------解决方案--------------------


向下位机发送数据是用sPt.Write这个函数。当下位机给我们回了数据后,sPt.BytesToRead会大于0,那是串口返回的可读取数据的字节长度。当 sPt.BytesToRead会大于0时就可以sPt.Read(buff,0,sPt.BytesToRead)。当然,要实时读取返回的数据,建议用AxMSComm控件,在其OnComn响应函数中实时读取返回的数据。
[解决办法]

引用:
向下位机发送数据是用sPt.Write这个函数。当下位机给我们回了数据后,sPt.BytesToRead会大于0,那是串口返回的可读取数据的字节长度。当 sPt.BytesToRead会大于0时就可以sPt.Read(buff,0,sPt.BytesToRead)。当然,要实时读取返回的数据,建议用AxMSComm控件,在其OnComn响应函数中实时读取返回的数据。

+1

热点排行