我的 C# 桌面类库与 COM 串行端口通信。
com不是真正的com,它是一根USB to COM线连接到另一台电脑上的USB to COM,另一台电脑使用模拟器发送数据。
此解决方案工作正常,然后端口成功打开:
serialPort.Open();
if (serialPort.IsOpen)
{
serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
}
void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
var length = serialPort.BytesToRead;
byte[] buffer = new byte[length];
serialPort.Read(buffer, 0, length);
for (int i = 0; i < buffer.Length; i++)
{
System.IO.File.AppendAllText(@"c:\TestLogging.txt", string.Format("[Time = {0}] Data was received from serial port !", DateTime.Now)); }
}
模拟器一直在发送数据,我在课堂上收到数据,但我不是一直收到,我看到每 30 秒打印 1 行 - 尽管它假设一直打印!
有什么奇怪的 - 如果我在 var length = .. 行中放置断点,那么我会看到我在休息时停止的打印.. 传输的数据似乎是“缓存的”,当我点击“播放”时我收到了数据,但仅限于我暂停进程的时间。