我在zigbee的node上向serial port发送数据如:“0,1,2,3,4,5...."这样的8位整型数。
我在接受的时候,用HyperTerminal,读取,是正常的ASCII对应的0,1,2,3,4,5....的符号。
但是用在C#中,用serail por读取出来的数据,如果用:
SerialPort sp;
int s = sp.ReadChar();(不知道为什么 readchar函数返回值是int型)读出来的数字,就一直是63.
如果用:
int s = sp.ReadByte();读出来的数值都是254,或者255,255,255(后面圈是255)
我读取数字用的而是:
Invoke(new Action(delegate(){this.richTextBox1.Text += s.ToString() +"\t";}));
因为鄙人用的是vs 2008,下的线程,所以,需要用代理。如何才能争取的读取并且显示出来呢?
我在接受的时候,用HyperTerminal,读取,是正常的ASCII对应的0,1,2,3,4,5....的符号。
但是用在C#中,用serail por读取出来的数据,如果用:
SerialPort sp;
int s = sp.ReadChar();(不知道为什么 readchar函数返回值是int型)读出来的数字,就一直是63.
如果用:
int s = sp.ReadByte();读出来的数值都是254,或者255,255,255(后面圈是255)
我读取数字用的而是:
Invoke(new Action(delegate(){this.richTextBox1.Text += s.ToString() +"\t";}));
因为鄙人用的是vs 2008,下的线程,所以,需要用代理。如何才能争取的读取并且显示出来呢?
int s = sp.ReadByte();读出来的数值都是254,或者255,255,255(80%以上是255,偶尔出现254)
node是每一秒发送一次数据。
读取数据的时候是在while()中,每次读取thread.sleep(500);
如果用int s = sp.ReadByte();偶尔会出现timeout.
http://www.cnblogs.com/viki117/articles/1263744.html
用BYTE接收,就好了。
奇怪,我最初也一直收的就是63。
sp.ReadByte()的返回值是整型的...费解……
然后,鄙人就byte firstByte=Convert.ToByte(sp.ReadByte());先读一下数据看看
结果,数据依然是255.呕吐中
因为读出来的一直是255的话,就是FF..