• 4161阅读
  • 13回复

[提问]厚颜发问-谁有Qt使用多线程搞串口通信的资料 求一份 [复制链接]

上一主题 下一主题
离线z55716368
 

只看楼主 倒序阅读 楼主  发表于: 2015-06-22
现在我的项目关于线程串口通信这里出了很多问题。思路现在就是我首先自己封装了QSerialport的open、read、write函数,然后在通信层中开了 一个线程,在这个线程的构造函数中new了我封的serialport,并且就在这里打开,然后在下面的函数中进行了write和read的调用(封包是调用封包的函数,解包是触发接收到数据之后给的信号retureData)。
然后问题就来了
1.每次都写到串口了(open返回true,write返回了长度), 但是没有发出去。
2.只能发一次数据,并且有正确返回,但是接受完之后程序就崩溃了。


我感觉是线程的时间什么地方有问题,因为线程不是我写的,我只是封装了类,但是我们老大又说QSerialPort类不能跨线程调用。
我也不是很懂。
如果看明白我的问题,希望给我留个言,我们老大叫我来调所有通信,压力好大,两周了都没进展。这周五还得回学校拿毕业证来着~~
每一个问题 都是一次进步
离线chengsida

只看该作者 1楼 发表于: 2015-06-25
LZ问中线程的事件什么地方有问题, 是指直接用moveToThread来用这个串口类么?
我没写自己线程类,直接用moveToThread把一个没有parent的串口放到一个QTHREAD里是可以读写的。。。。
初学编程,初学QT,不太容易,多多帮忙
离线z55716368

只看该作者 2楼 发表于: 2015-06-25
回 chengsida 的帖子
chengsida:LZ问中线程的事件什么地方有问题, 是指直接用moveToThread来用这个串口类么?
我没写自己线程类,直接用moveToThread把一个没有parent的串口放到一个QTHREAD里是可以读写的。。。。 (2015-06-25 09:08) 

是在线程的构造函数中实例化了我封装的串口类的对象,报错的意思大概就是串口不能跨线程使用
每一个问题 都是一次进步
离线chengsida

只看该作者 3楼 发表于: 2015-06-25
刚学 不太懂 不好意思。。。是不是run()函数里加锁出错。。。
初学编程,初学QT,不太容易,多多帮忙
离线realfan

只看该作者 4楼 发表于: 2015-06-25
这个代码,可能供你参考一下。
http://www.qtcn.org/bbs/read-htm-tid-58308.html
离线chengsida

只看该作者 5楼 发表于: 2015-06-25
回 realfan 的帖子
realfan:这个代码,可能供你参考一下。
http://www.qtcn.org/bbs/read-htm-tid-58308.html
 (2015-06-25 15:36) 

谢谢 我也下来看看学习下
初学编程,初学QT,不太容易,多多帮忙
离线z55716368

只看该作者 6楼 发表于: 2015-07-01
回 chengsida 的帖子
chengsida:LZ问中线程的事件什么地方有问题, 是指直接用moveToThread来用这个串口类么?
我没写自己线程类,直接用moveToThread把一个没有parent的串口放到一个QTHREAD里是可以读写的。。。。 (2015-06-25 09:08) 

额 不是用movetothread 是直接在构造函数中实例化对象
每一个问题 都是一次进步
离线yanwuyue

只看该作者 7楼 发表于: 2015-07-07
我是直接写了一个线程,串口直接在线程里跑,信号发进去,感觉你应该和我一开始一样,串口还是没有移到线程里面,多线程里调这个串口冲突爆了
离线z55716368

只看该作者 8楼 发表于: 2015-07-07
回 yanwuyue 的帖子
yanwuyue:我是直接写了一个线程,串口直接在线程里跑,信号发进去,感觉你应该和我一开始一样,串口还是没有移到线程里面,多线程里调这个串口冲突爆了 (2015-07-07 08:28) 

那你是怎么解决的?
每一个问题 都是一次进步
离线yanwuyue

只看该作者 9楼 发表于: 2015-07-08
我的要求不高,不知道你的需求,我这样写响应速度可能会慢点

离线yanwuyue

只看该作者 10楼 发表于: 2015-07-08
回 z55716368 的帖子
z55716368:
那你是怎么解决的?


读写采用QMutex保证时序

tcom.cpp (4 K) 下载次数:17 tcom.h (1 K) 下载次数:14

离线z55716368

只看该作者 11楼 发表于: 2015-07-09
回 yanwuyue 的帖子
yanwuyue:读写采用QMutex保证时序
[图片]
....... (2015-07-08 13:12) 

哦哦 好的 我看看
每一个问题 都是一次进步
离线wuming123057

只看该作者 12楼 发表于: 2015-07-09
这方面好像刘工搞过,他的项目涉及到多个串口,http://www.qtcn.org/bbs/read-htm-tid-59060.html
离线z55716368

只看该作者 13楼 发表于: 2015-07-10
回 wuming123057 的帖子
wuming123057:这方面好像刘工搞过,他的项目涉及到多个串口,http://www.qtcn.org/bbs/read-htm-tid-59060.html (2015-07-09 13:56) 

感觉有点像 谢谢
每一个问题 都是一次进步
快速回复
限100 字节
 
上一个 下一个