找回密码
 立即注册
收起左侧

串口 the Runtime error

6
回复
7337
查看
[复制链接]
累计签到:168 天
连续签到:1 天
来源: 2014-10-8 10:50:02 显示全部楼层 |阅读模式
5Qter豆
本帖最后由 6gv0000 于 2014-10-8 11:30 编辑

写了一个串口通信的程序,之前可以运行,最近加了些其他东西之后(但并未改变之前串口部分的代码),每次向串口发数据的时候都error:
This application has requested the Runtime to terminate it in an unusual way.

会是程序的问题吗?





开发环境:window+qt5.2。

求帮助,十分感谢!


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

出现运行时错误,不是没有声明,很有可能是数据有问题,建议使用调试函数将数据输出一下,看是不是预期的值。
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2014-10-8 10:50:03 显示全部楼层
6gv0000 发表于 2014-10-13 16:05
断点调试,在第17行:emit updateCurve(elapsed); 出现Runtime error,updateCurve(double)已经声明在头 ...

出现运行时错误,不是没有声明,很有可能是数据有问题,建议使用调试函数将数据输出一下,看是不是预期的值。

点评

嗯,已经调好了,自己大意了,在之前调试的时候中把elapsed关闭了,自己忘了,加了个bool函数就好用了。  详情 回复 发表于 2014-10-16 14:24
回复

使用道具 举报

累计签到:168 天
连续签到:1 天
2014-10-8 11:31:00 显示全部楼层
输出有错误提示:

QML debugging is enabled. Only use this in a safe environment.
void QSerialPortPrivate::detectDefaultSettings(): Unexpected flow control settings
ASSERT failure in QVector<T>::  operator[]: "index out of range", file C:\Qt\Qt5.2.1\5.2.1\mingw48_32\include\QtCore/qvector.h, line 369
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.
LEAK: 121 RenderObject
LEAK: 1 Page
LEAK: 1 Frame
LEAK: 41 CachedResource
LEAK: 220 WebCoreNode
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2014-10-11 16:30:42 显示全部楼层
6gv0000 发表于 2014-10-8 11:31
输出有错误提示:

QML debugging is enabled. Only use this in a safe environment.

代码问题啊

点评

断点调试,在第232行:emit updateCurve(elapsed); 出现Runtime error,updateCurve(double)已经声明在头文件signal下,请问yafei老师知道哪出了问题吗?之前一直好用的...  详情 回复 发表于 2014-10-13 16:05
回复

使用道具 举报

累计签到:168 天
连续签到:1 天
2014-10-13 16:05:54 显示全部楼层
yafeilinux 发表于 2014-10-11 16:30
代码问题啊
  1. void MainWindow::readData()
  2. {
  3.     QByteArray rdata = serial->readAll();
  4.     QDataStream out(&rdata,QIODevice::ReadWrite);
  5.     qreal y;
  6.     while(!out.atEnd())
  7.     {
  8.         quint16 outChar =0;

  9.         out>>outChar;   //每字节填充一次,直到结束
  10.         y = outChar/(qPow(2,12)-1);

  11.         double elapsed = data_clock.elapsed();
  12.         QPointF s( elapsed/1000.0, y );
  13.         SignalData::instance().append( s );

  14.         emit updateCurve(elapsed);

  15.         QString str = QString("%1").arg(outChar,4,16,QLatin1Char(' '));
  16.         //十六进制的转换
  17.         if(!consoleDisp->currentIndex())
  18.         {
  19.             console->insertPlainText(str.append("/"));
  20.             console->insertPlainText(QString::number(y,'f',3).append(","));
  21.         }
  22.     }
  23. }
复制代码
断点调试,在第17行:emit updateCurve(elapsed); 出现Runtime error,updateCurve(double)已经声明在头文件signal下,请问yafei老师知道哪出了问题吗?之前一直好用的...
回复

使用道具 举报

累计签到:168 天
连续签到:1 天
2014-10-15 09:35:29 显示全部楼层
有没有知道的大牛,帮帮忙吧,我还没改出来呢,时而好时而坏的
回复

使用道具 举报

累计签到:168 天
连续签到:1 天
2014-10-16 14:24:23 显示全部楼层
yafeilinux 发表于 2014-10-15 20:20
出现运行时错误,不是没有声明,很有可能是数据有问题,建议使用调试函数将数据输出一下,看是不是预期的 ...

嗯,已经调好了,自己大意了,在之前调试的时候中把elapsed关闭了,自己忘了,加了个bool函数就好用了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了