c#读取串口发送缓冲区的字节数BytesToWrite,为什么一直为0 100
想在串口发送完数据开始计时。使用BytesToWrite有什么特殊要求么?对象浏览器中说publicintBytesToWrite{get;}为什么编译适合要求publi...
想在串口发送完数据开始计时。
使用BytesToWrite 有什么特殊要求么?
对象浏览器中说public int BytesToWrite { get ; }
为什么编译适合要求public int BytesToWrite{get;set}??
在线等候!!知道怎么用的告诉一下
我要的是BytesToWrite=0的时候,开始计时,
不是去获取BytesToRead 展开
使用BytesToWrite 有什么特殊要求么?
对象浏览器中说public int BytesToWrite { get ; }
为什么编译适合要求public int BytesToWrite{get;set}??
在线等候!!知道怎么用的告诉一下
我要的是BytesToWrite=0的时候,开始计时,
不是去获取BytesToRead 展开
1个回答
展开全部
this.serialPort.PortName = "COM1";//端口号
this.serialPort.DataBits = 8;//数据位
this.serialPort.StopBits = StopBits.One;//停止位
this.serialPort.Parity = Parity.None;//校验位
this.serialPort.BaudRate = 9600;//波特率57600
//this.serialPort.ReadTimeout = 60 * 60 * 1000;//读超时
//this.serialPort.WriteTimeout = 60 * 1000;//写超时
this.serialPort.ReadBufferSize = 1024;
this.serialPort.WriteBufferSize = 512;
//this.serialPort.DiscardInBuffer();//清除输入缓冲区
//this.serialPort.DiscardOutBuffer();//清除输出缓冲区
serialPort.Close();
if (!serialPort.IsOpen)
{
serialPort.Open();
}
this.serialPort.DiscardInBuffer();//清除输入缓冲区
this.serialPort.DiscardOutBuffer();//清除输出缓冲区
byte[] byteFirst = new byte[1] { 0x40};
serialPort.Write(byteFirst, 0, 1);
//这里已经写出去了。注意呀!!!!!然后延时一下。
if (this.serialPort.BytesToRead >0)
{
byte[] byteThird = new byte[9];
serialPort.Read(byteThird, 0, 9);
string sss = byteThird[1].ToString("X") + byteThird[2].ToString("X");
.....
}
我从我做的程序里截取的,不是复制别的人。你试一下吧。
this.serialPort.DataBits = 8;//数据位
this.serialPort.StopBits = StopBits.One;//停止位
this.serialPort.Parity = Parity.None;//校验位
this.serialPort.BaudRate = 9600;//波特率57600
//this.serialPort.ReadTimeout = 60 * 60 * 1000;//读超时
//this.serialPort.WriteTimeout = 60 * 1000;//写超时
this.serialPort.ReadBufferSize = 1024;
this.serialPort.WriteBufferSize = 512;
//this.serialPort.DiscardInBuffer();//清除输入缓冲区
//this.serialPort.DiscardOutBuffer();//清除输出缓冲区
serialPort.Close();
if (!serialPort.IsOpen)
{
serialPort.Open();
}
this.serialPort.DiscardInBuffer();//清除输入缓冲区
this.serialPort.DiscardOutBuffer();//清除输出缓冲区
byte[] byteFirst = new byte[1] { 0x40};
serialPort.Write(byteFirst, 0, 1);
//这里已经写出去了。注意呀!!!!!然后延时一下。
if (this.serialPort.BytesToRead >0)
{
byte[] byteThird = new byte[9];
serialPort.Read(byteThird, 0, 9);
string sss = byteThird[1].ToString("X") + byteThird[2].ToString("X");
.....
}
我从我做的程序里截取的,不是复制别的人。你试一下吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询