在.NET SerialPort类中,ReadExisting()
方法返回String
而不是字节数组。考虑到RS232通常用于移动7或8位值(这可能是也可能不是可打印字符),这似乎是一个奇怪的选择。这个选择有原因吗?
目前我最终使用System.Text.Encoding.GetBytes(recvd_data)
将String
转换为字节数组。有更有效的方法吗?
答案 0 :(得分:6)
SerialPort
有一个Read重载,它读入指定的Byte[]
。
http://msdn.microsoft.com/en-us/library/ms143549(v=vs.100).aspx
答案 1 :(得分:3)
我已广泛使用SerialPort
,我发现读取一系列字节的最佳方法是多次调用ReadByte()
。是的,你一次读取一个字节,但我发现保持简单避免了问题。
最好的方法是,这种方法可以让你不必进行转换(因为你会读入一个字节数组)。