背景
数据采集时想要同时使用xcom把数据存成带时间戳的txt,又想同时用arduino串口示波器观察波形,又懒得看别人的串口源码(整合改进功能,狗头围笑)。但众所周知串口是独占的,不能被两个程序同时访问,如下图

思路一尝试:
使用Virtual Serial Port Driver虚拟连接电脑的两个端口,在arduino里serial.write()
https://virtual-serial-port-driver.en.softonic.com/ 下载,安装完毕之后,打开界面(注:需要长期使用的请自行搜索破解一下,有14天试用)如下,



arduino代码如下:
int value = 0x00;
void setup()
{
// initialize serial communication at 9600 bits per second:
Serial.begin(115200);
Serial3.begin(115200);
}
void loop()
{
value = analogRead(A0);
Serial.println(value);
Serial.write(value);
delay(10);
}
结果:



思路二尝试:
使用 Eltima Software Serial Splitter,使用教程见http://www.xcar.com.cn/bbs/viewthread.php?tid=12227886
下载的过程是这个画风的(最后还是把Windows defender关了,下了带破解文件版的),给华军打个广告,http://www.onlinedown.net/soft/24957.htm上下载23333


选择要添加的端口名称,点击addport,如下




就是被分的COM3不能再用了

讨论
- 在一些博客上有提到说可以用钩子函数(知道的大佬方便交流下?)
- 似乎可以硬件上一个串口接了2条线分出另外两个串口,这样传输速度更有保障,不过程序多的情况下就比较麻烦了,而且arduino的mega板有TX/RX(1/2/3)但是查了那三个口不支持串口转usb,就觉得很麻烦了,(同样欢迎大佬们指教)。
- 还有个问题,每次上传代码就得delete,然后要用的时候再添加,不太友好
网友评论