QT串口与 51 单片机通信 通过这个小例子主要想说明 QT 怎样进行线程编程的思想,实例如图,好吧,下面是过程 上一个例子我们采用的是手工编写代码的方法,这个例子我们来玩一下 designer,其实 Qt4 己经把界面与功能分开了,用 designer 来进行界面 设计,再手工编写一些功能,如信号与槽,这样开发效率会大大提高,呵呵,开一个终端,输入/usr/local/Trolltech/Qt-4.5.1/bin/designer ,如果第一次打开出现字体不对,可以打开 qtconfig 进行一些相关配置,打开后我们新建一个Main Window,在右边的属性框中设置一下界面大小, 我 ARM 板的 LCD 大小为 320x240,所以我也设为 320x240;左边是一些我们常用的窗口部件,这里我们用到一个 lable 标签来做显示,再放几个 pushButton 按钮,在属性 objectName 重新更改它的名字,改为我们记得的,这样在写功能时记得哪个按钮叫什么名字,对于一个初学QT 的 人来说,很想知道每一个部件到底有什么信号和槽,别急,我们可以这样来看,选中一个 lable,按 F4,再点击lable 拖动出现接地符号时松开 ,弹出编辑信号与槽,这时左边列出的是信号,右边为槽,这里我们不用配置连接,等下我们再手工写,最后我们用到一个 lable 标签和三个 pushButton 按钮,并命名为 dis_label、writeButton、readButton、closeButton,然后保存为 mainwindow.ui,这样 designer 就完工了,呵呵.. 下面我们编写一个线程,用于管理串口收发工作,它不涉及到任何界面,只做好它的本份工作就得了,编写一个 thread.h 文件 gedit thread.h, #ifndef THREAD_H #define THREAD_H #include class Thread:public QThread { Q_OBJECT public: Thread(); char buf[128]; volatile bool stopped; volatile bool write_rs; volatile bool read_rs; protected: virtual void run(); }; #endif 我们定义一个Thread 类,它继承于QThread,看到只设有一些变量和一个run 函数,virtual 表示为虚函数,你也可以去掉,加上去会增加一些内存开销, 但提高了效率,对于这个小程序是看不出什么效果的,volatile 这个大家都懂了吧,就是防止偷懒,呵呵,再看看thread.cpp #include"thread.h" #include #include #include #include //串口用到的 #include #include #i...