我在用VB.NET开发winsCE,在用串口通信的时候,我用代码 n = Me.SerialPort1.BytesToRead
If n > 0 Then
Me.SerialPort1.Read(shuju, 0, 30)
end if
我定义的数组shuju是字节型的,在和PC机的串口连接之后,我在CE端用软件单步调试,监测所收到的串口数据,发现一直没有0
比如我在PC机串口调试助手中发十六进制字节数据AA AA 00 00 54
在CE端监测窗口中只有AA AA 54 ,却没有CE ,这是什么原因啊?
希望高手能指点下!
If n > 0 Then
Me.SerialPort1.Read(shuju, 0, 30)
end if
1.改成N>=0试试
2.把n = Me.SerialPort1.BytesToRead 这句话去掉
直接用
byte[] buffer = new byte[30]
serialPort1.Read(buffer, 0, buffer.Length);
看buffer接收的数据对不对。
你说的第一种方案我试过了。不行,第二种方案byte[] buffer = new byte[30]我不太明白是什么意思?
你把完整的给我写下!
谢谢啊!
byte[] buffer = new byte[30] --在.net里面数组其实就是一个sub-class,所以申明方式与C++不同!
serialPort1.Read(buffer, 0, buffer.Length);
你既然能收到AA AA 54! 是不是你在接受的时候吧所以 为零的数据全部过滤掉了?
看你的接受代码是怎么样的!
】
上面的方法是将所有的数据放到一个buf里面然后在打印出来 在验证一下数据的正确性
我试验了,但是有提示出错!
是不是要在窗体的开头添加API之类的啊!
另外,我希望能在我程序的基础上做些改动,实现我要的功能!
实现数据的正确接收!
谢谢啊!