很久之前用Qt的serialport + qcustomplot 做了一个小工具,通过UART搜集ADC 数据,然后将波形展示在GUI上。简易代码已上传到gitee
https://gitee.com/xianting77/serialAdcPlot/tree/master
QSerialPort模块详细使用方法见下面,很清楚。
https://www.jb51.net/article/182566.htm
https://blog.csdn.net/yuyu414/article/details/42400721
使用过程中遇到了nullptr问题,最终参考后,解决问题。
QT编译器问题带来的编译错误:error: 'nullptr' was not declared in this scope
这个错误提示有点迷惑性,意思是nullptr在当前作用域没有被声明,就好像是变量没有声明一样的。
实际上,nullptr是C++11引入的关键字,这个编译器没有支持C++11。出现这个错误说明你的编译器没有支持C++11,至少没有完整支持C++11。
nullptr关键字用于标识空指针,是std::nullptr_t类型的(constexpr)变量。它可以转换成任何指针类型和bool布尔类型,但是不能被转换为整数。
char *p1 = nullptr; // 正确
int *p2 = nullptr; // 正确
bool b = nullptr; // 正确. if(b)判断为false
int a = nullptr; // error
解决办法可以在在qt中要在Makefile中添加相关的编译参数可以通过在xx.pro文件中修改来实现:
在xx.pro中通过使用QMAKE_CXXFLAGS设置来实现(以添加gdb调试参数为例)
QMAKE_CXXFLAGS += -g(在xx.pro文件中可能显示的是黑色,其他显示为有紫色)
要支持C++11 可以在后面加“ -std = c++11”