SerialPort com = new SerialPort("COM7", 115200,Parity.Mark,8,StopBits.One);
byte[] newline = new byte[2];
newline[0] = 13;
newline[1] = 10;
if (!com.IsOpen)
{
com.ReadTimeout = 200;
com.ReadBufferSize = 512;
com.WriteBufferSize = 512;
com.Open();
com.DiscardInBuffer();
com.DiscardOutBuffer();
} //if (!com1.IsOpen)
//{
// com1.ReadTimeout = 200;
// com1.ReadBufferSize = 512;
// com1.Open();
//}
//Array.Reverse(cmdarr, 0, cmdarr.Length);
for (int i = 0; i < cmdarr.Length; i++)
{
com.Write(cmdarr, i, 1);
Thread.Sleep(1100);
}
com.Write(newline, 0, 1);
Thread.Sleep(1100);
com.Write(newline, 1, 1);
//com.Write(cmdarr, 5, 2);
//com.Write(cmdarr, 1, 7);
System.Threading.Thread.Sleep(2000);
byte[] buffer = new byte[100];
int j = com.BytesToRead;
for (int i = 0; i < 20; i++)
{
buffer[i] = (byte)com.ReadByte();
}
com.Close();
com.Dispose();
该段代码 给单片机发信息,一个一个发没问题,改为com.Write(newline, 0, cmdarr.Length);完蛋。
单片机回发则每个字节后都会多跟一个0x3F。求答案。很无奈
byte[] newline = new byte[2];
newline[0] = 13;
newline[1] = 10;
if (!com.IsOpen)
{
com.ReadTimeout = 200;
com.ReadBufferSize = 512;
com.WriteBufferSize = 512;
com.Open();
com.DiscardInBuffer();
com.DiscardOutBuffer();
} //if (!com1.IsOpen)
//{
// com1.ReadTimeout = 200;
// com1.ReadBufferSize = 512;
// com1.Open();
//}
//Array.Reverse(cmdarr, 0, cmdarr.Length);
for (int i = 0; i < cmdarr.Length; i++)
{
com.Write(cmdarr, i, 1);
Thread.Sleep(1100);
}
com.Write(newline, 0, 1);
Thread.Sleep(1100);
com.Write(newline, 1, 1);
//com.Write(cmdarr, 5, 2);
//com.Write(cmdarr, 1, 7);
System.Threading.Thread.Sleep(2000);
byte[] buffer = new byte[100];
int j = com.BytesToRead;
for (int i = 0; i < 20; i++)
{
buffer[i] = (byte)com.ReadByte();
}
com.Close();
com.Dispose();
该段代码 给单片机发信息,一个一个发没问题,改为com.Write(newline, 0, cmdarr.Length);完蛋。
单片机回发则每个字节后都会多跟一个0x3F。求答案。很无奈
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货