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

C# serialport类串口通信有关问题

2013-01-11 
C#serialport类串口通信问题最近买了一个设备,是USB接口的,插到电脑上为虚拟串口com3。利用serialport类编

C# serialport类串口通信问题
最近买了一个设备,是USB接口的,插到电脑上为虚拟串口com3。利用serialport类编写了串口读写功能,但程序始终无法进入DataReceive事件。利用portmon软件监测,当设备自带软件发送特定指令时,会收到数据。为什么我编的软件就是读取不到数据,跪求大家指导!谢谢,在线等~~~
[解决办法]
port1_DataReceived 的问题,你要看你接收的是字符串还是16进制的数据,加一个选项设置一下,比如起名叫协议,当为字符串时用ReadExisting(),然后做处理,

否则为16进制的数据,用Read(readBuffer, 0, readBuffer.Length),然后处理

最后用BeginInvoke去显示结果


[解决办法]
void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            if (e.EventType != SerialData.Chars)
                return;
            if (sp.BytesToRead <= 0) return;
            byte[] ReadBuf = new byte[sp.BytesToRead];
            sp.Read(ReadBuf, 0, ReadBuf.Length);
            //接收数据
            lock(queMsgs) queMsgs.Enqueue(ReadBuf);            
            PostMessage(this.handler, MsgId, 0, 0);
        }

热点排行