由于现在的笔记本电脑一般不带有串口,再进行串口调试时,可以用虚拟串口代替。
虚拟串口下载链接:虚拟串口(Win7)下载
串口调试助手下载链接:串口调试助手
VS2010串口程序(使用的unicode库,纯API,不利用Mscomm控件)下载链接:VS2010串口程序
图1 虚拟串口界面
在进行串口调试的时候发现一个问题:就是两个串口的波特率不一致的时候,数据仍然能够正确的传输,无论是从每个串口发送还是接收都不会出错,这在逻辑上是说不通的。另外就是当从图中的COM2发送时,如果波特率不一致,那么COM1的波特率会变为9600(如果之前不是9600的话),COM2的波特率不变;而当从COM1发送数据的话,即使两个波特不一致,两个波特率的值都不变,数据传输也是正确的。真的不知道怎么回事?自己唯一能想到的就是虚拟串口内部能够根据两个串口的波特率,自适应的进行调整了。
图2 波特率不一致不影响传输正确性图
图3 虚拟串口调试结果图
从图中可以很方便的发现,两个互联的串口之间的Send和Receive之间的关系,注意到这个选项,emulation是“仿效; 竞赛; 努力追上并超越; 竞争”,Enable strict baudrate emulation意思就是"使能严格的波特率仿效,也就是让两个波特率传输一致",不选中并不意味着不进行 baudrate emulation,这是程度降低了,但是测试的效果是,波特率不匹配,传输依然正确。