Qt串口问题

wk5882846 2012-04-08 06:22:34
我自己写了个串口调试助手那样的工具(按着linuxyafei的那个文章),第一次打开接收数据时,收到的数据显示出来是错的,跟我想接收的不一样。
我把别人用VC写的打开,接收到的数据就跟我发的一模一样了。
然后我再把VC写的关掉,再把我自己写的打开,我的也能正确接收数据了。而且之后把我的关掉再打开也是好的。

后来我在qtcn里下载了别人写的串口调试助手,效果跟我的一样,但人家写的那个很多人都认可了,为什么会这样呢?
...全文
153 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
haltwang 2012-04-12
  • 打赏
  • 举报
回复
各位大侠。。
我在串口初始化的时候就用的含参构造函数,代码如下
struct PortSettings myComSetting = {BAUD9600,DATA_8,PAR_NONE,STOP_1,FLOW_OFF,1};
myCom = new Win_QextSerialPort("com3",myComSetting,QextSerialBase::EventDriven);
而且我用网上一大神写的串口调试助手(Qt版)也是如此
好奇怪啊
我以为是单片机的问题,但是用别人VC写的就没问题
wk5882846 2012-04-12
  • 打赏
  • 举报
回复
6楼大神。。。
果然是先建立串口 在设置数据 在打开串口
原来顺序错了。。 多谢,多写
JaydenZhou 2012-04-12
  • 打赏
  • 举报
回复
收发数据出现这样的问题可能是你没有先打开串口,然后再设置的原因吧~
JaydenZhou 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

各位大侠。。
我在串口初始化的时候就用的含参构造函数,代码如下
struct PortSettings myComSetting = {BAUD9600,DATA_8,PAR_NONE,STOP_1,FLOW_OFF,1};
myCom = new Win_QextSerialPort("com3",myComSetting,QextSerialBase::EventDri……
[/Quote]
你用这个的话,串口名字com3得要看看是不是和你自己电脑的串口名称一样,以及波特率的设置是否正确。
碎炎 2012-04-10
  • 打赏
  • 举报
回复
我看了下源码 假如在构造函数的时候正确的传入了串口配置 那么应该通讯是没问题的
假如用了默认构造函数或者不带串口参数的构造函数
那么必须得打开串口后 才能改变串口设置 没打开前用它的成员函数来改变设置是无效的
pzhuyy 2012-04-10
  • 打赏
  • 举报
回复
这应该是没有配置波特率。呵呵,QextSerialPort要事后显示配置一下波特率,否则会使用上一次软件打开的波特率。构造函数哪个没用。
碎炎 2012-04-10
  • 打赏
  • 举报
回复
QextSerialPort?
我这里用着没问题 是不是参数设置和顺序不对
你也可以看看QextSerialPort的源码 直接用串口的overlapped读写

16,203

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧