作者liaommx (Orz)
看板C_Sharp
标题Re: [问题] 几个有关serial port的问题.
时间Wed Jan 20 11:37:50 2010
感谢两位的回应,
我现在的方法是用datareceived event之後,
判断是不是有资料还没读完.
如果是的话,就一次读一个byte做转换.
读完之後再找另一个label放资料,并清空原来的textbox.
另外,闲聊一下readbyte和readexisting
readexisting好像读入的资料就是string了?
readbyte则是读入的资料是byte.
所以我想做到的convert.tostring(byte,16)
只能在readbyte执行,而不在readexisting执行..
void port_op_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
while (port_op.BytesToRead != 0)
{
change2(Convert.ToString(port_op.ReadByte(), 16), textBox2);
}
change(textBox2.Text, label9);
//change除了把textbox文字存入label9以外,
//存完之後把textbox清空
}
这样的方法,
不过有一个缺点,
因为datareceived和主程式的label是不同的执行绪,
所以不能跨执行绪更改label的text.
必须用delegate方法更改label的text
这方法我在板上有po过,就不多加叙述了.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.229.97