c#读取串口发送缓冲区的字节数BytesToWrite,为什么一直为0 100

想在串口发送完数据开始计时。使用BytesToWrite有什么特殊要求么?对象浏览器中说publicintBytesToWrite{get;}为什么编译适合要求publi... 想在串口发送完数据开始计时。

使用BytesToWrite 有什么特殊要求么?
对象浏览器中说public int BytesToWrite { get ; }
为什么编译适合要求public int BytesToWrite{get;set}??

在线等候!!知道怎么用的告诉一下
我要的是BytesToWrite=0的时候,开始计时,
不是去获取BytesToRead
展开
 我来答
sd19758
推荐于2016-10-26
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
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");

.....

}

我从我做的程序里截取的,不是复制别的人。你试一下吧。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式