最近做一个项目需要用到串口实时发送与接收,串口通信采用同步的方式。
在开发本机上测试没有任何问题后,放到测试机上运行,发现内存以 4 KB / S 的速度增长,再次将测试机上程序拷贝到开发机器上发现无内存增长。。
于是开始查找原因,发现测试机上使用的是电脑原生的串口,开发机上使用的是USB转串口,于是在开发机上用原生串口与USB转串口分别测试。
结果发现 ,原生串口内存增长,USB转串口没有任何问题。
于是拿了三种不同机器测试,发现结果一样(其中有一台机器的USB转串口芯片不一样也会内存增长)。正常的USB转串口芯片为(PL2301和FTDI232),异常的为原生串口与CH340G。
于是抱着试一试的态度用Qt第三方的串口类测试一下,链接为 https://sourceforge.net/projects/qextserialport/?source=typ_redirect
测试代码分别如下
class QOriginSerialPort : public QThread
{
Q_OBJECT
public:
QOriginSerialPort(QObject* parent = 0)