我需要连续读取Arduino板上的字节流。 为此,我创建了一个方法,它在循环中读取Serialport并将ByteStream暴露给其他类:
public async void ReadSerialPort
{
dataReader = new DataReader(SerialPort.InputStream)
while (true) {
uint ReadBufferLength = 16;
Task < UInt32 > loadAsyncTask;
loadAsyncTask = dataReader.LoadAsync(ReadBufferLength).AsTask();
UInt32 rxbytes = await loadAsyncTask;
RxBytes = new byte[rxbytes];
if (rxbytes > 0) {
datareader.ReadBytes(ByteStream);
}
}
}
但我认为这不是连续读取串口的最有效方法,因为这种方法需要几毫秒才能获得字节流。 是否有替代方法来读取字节流?
答案 0 :(得分:0)
使用事件从SerialPort读取数据:
static void Main(string[] args)
{
SerialPort sp= new SerialPort();
sp.DataReceived += Sp_DataReceived;
}
private static void Sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
throw new NotImplementedException();
}