发送40 40 00 84 00 00 00 11 11 11 11 41 41 41 04 0d 0a
串口线 2 3短接,自发自收第一次发送之后收到 40 40 00 84 00 00 00 11 11 11 11 41 41 41 04 0d 0a 但是第二次以后发送之后只收到 40 40 00 84 00 00 00 11 11 11 11 41 41 4104 0d 0a 没了 经测试发现第二次以后发送,bytes = port.Read(recvBytes, 0, recvBytes.Length);
recvBytes最大只能接收到14字节,超出的部分没掉了求达人推测原因
串口线 2 3短接,自发自收第一次发送之后收到 40 40 00 84 00 00 00 11 11 11 11 41 41 41 04 0d 0a 但是第二次以后发送之后只收到 40 40 00 84 00 00 00 11 11 11 11 41 41 4104 0d 0a 没了 经测试发现第二次以后发送,bytes = port.Read(recvBytes, 0, recvBytes.Length);
recvBytes最大只能接收到14字节,超出的部分没掉了求达人推测原因
try
{ bool isGet = false;
string received = string.Empty;
int nTimeout = 0;
do
{
received += m_Port.ReadExisting();
if (received.IndexOf("\x0a") >= 0)
{
//.....do your work
} }
while (!isGet);
}
catch
{ }
bytes = port.Read(recvBytes, 0, recvBytes.Length);
用的就是byte收发
1,接收等待时间不够,只接受到04之前的的字节,后面的还没收到就不等了,一般都有循环接收,然后把结果+起来,然后判断是否有需要的数据,你那里接收太简单了。
2,刚才说过,任何时候都不能使用string对象来处理发送和接受的数据,string对象在某些情况下会把04等字符截断。