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

串口不能输出

2
回复
7979
查看
[复制链接]
累计签到:4 天
连续签到:1 天
来源: 2018-4-9 15:51:39 显示全部楼层 |阅读模式
10Qter豆
串口程序,期望能通过串口发送指定的字符,运行结果,串口无输出。QObject::startTimer: Timers can only be used with threads started with QThread请帮助看一下是什么问题,串口经过测试都是正常的。int main(){
    Mat img_src_blue;    Mat img_src_green;    Mat img_src_red;    //Cap_settime(-6);    foreach (const QSerialPortInfo &info,QSerialPortInfo::availablePorts())    {        QSerialPort serial;        serial.setPort(info);        if(serial.open(QIODevice::ReadWrite))        {            //serial.close();        }    }     QSerialPort *serial;     serial = new QSerialPort("COM1");    //打卡串口    serial->open(QIODevice::ReadWrite);    //设置波特率    serial->setBaudRate(QSerialPort::Baud19200);  //波特率    //设置数据位数    serial->setDataBits(QSerialPort:ata8);    serial->setParity(QSerialPort::NoParity);    serial->setStopBits(QSerialPort::OneStop);    //设置流控制    serial->setFlowControl(QSerialPort::NoFlowControl);    serial->write("123454");    return(0);}

回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2018-4-10 09:04:54 显示全部楼层
这个问题一般是把一个拥有 parent( 父对象) 的 Object 移动到了子线程里面导致的,但是看你的代码好像没有这个问题~
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2018-4-11 08:14:42 显示全部楼层
Since 发表于 2018-4-10 09:04
这个问题一般是把一个拥有 parent( 父对象) 的 Object 移动到了子线程里面导致的,但是看你的代码好像没有 ...

我就是想通过串口输出命令控制一个设备,连接后发现被控设备没有反应,通过串口COM1和COM3互联,观测,发现收的口也收不到数据。
同样的代码如下:
void MainWindow:n_OpenSerialButton_clicked()
{
    if(ui->OpenSerialButton->text() == tr("open"))
    {
        serial = new QSerialPort;
        //设置串口名
        serial->setPortName("COM1");
        //打卡串口
        serial->open(QIODevice::ReadWrite);
        //设置波特率
        serial->setBaudRate(QSerialPort::Baud19200);
        //设置数据位数
        switch (ui->BitBox->currentIndex())
        {
        case 8:
            serial->setDataBits(QSerialPort:ata8);
            break;
        default:
            break;
        }
        //设置校验位
        switch (ui->arityBox->currentIndex())
        {
        case 0:
            serial->setParity(QSerialPort::NoParity);
            break;
        default:
            break;
        }
        //设置停止位
        switch (ui->BitBox->currentIndex())
        {
        case 1:
            serial->setStopBits(QSerialPort::OneStop);
            break;
        case 2:
            serial->setStopBits(QSerialPort::TwoStop);
        default:
            break;
        }
        //设置流控制
        serial->setFlowControl(QSerialPort::NoFlowControl);
        for(int i=0;i<10000;i++)
        {
            serial->write("123456");
        }}
在UI中点击打开,就可以输出。
由于是刚接触QT,不知道是什么yuan
回复

使用道具 举报

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

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