关于串口复用的尝试

2019-04-17  本文已影响0人  nnnnxcj

背景

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

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

VSPD界面 查看设备端口名 连接COM3和COM2如下,

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);
}
结果:
连接了串口之后上传代码出现超时,把pair删掉以后就能上传代码,所以这种方法不行,于是先烧arduino代码再连接COM2 COM3,结果如下 删除pair之后,串口监视器结果如下 本次尝试失败,serial.write()不能复制串口数据(对它俩的理解有误),如果要使用Virtual Serial Port Driver的话,得用别的方式。

思路二尝试:

使用 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,如下
先上传arduino代码,再按上面的步骤添加端口(步骤不能反,不然还超时),arduino打开COM2,XCOM打开COM3,奈斯!结果如下,
就是被分的COM3不能再用了

讨论
上一篇 下一篇

猜你喜欢

热点阅读