当前位置:  技术问答>linux和unix

有谁用过“http://www.yafeilinux.com/?p=820”编的lincom吗?串口打不开是什么原因?

    来源: 互联网  发布时间:2017-05-01

    本文导语:  我完全按照“http://www.yafeilinux.com/?p=820”编写的linux下的串口调试程序lincom,串口为“/dev/ttyS0”,运行是没有问题的,但是不能接收和发送数据。调试发现串口好像没打开,另外用minicom测试串口是可以正常收发数据的...

我完全按照“http://www.yafeilinux.com/?p=820”编写的linux下的串口调试程序lincom,串口为“/dev/ttyS0”,运行是没有问题的,但是不能接收和发送数据。调试发现串口好像没打开,另外用minicom测试串口是可以正常收发数据的,说明串口本身是没有问题的,问题是在用Qt编写的lincom程序。但是我是严格按照yafeilinux介绍的编写的,不知各位网友有没有出现过这种问题?是怎么解决的?下面是wiget.cpp的代码。
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
        ui->setupUi(this);
    myCom = new
        Posix_QextSerialPort("/dev/ttyS0",QextSerialBase::Polling );
           //定义串口对象,指定串口名和查询模式,这里使用事件驱动Polling


        myCom->open(QIODevice::ReadWrite);
        //以读写方式打开串口


        myCom->setBaudRate(BAUD9600);
        //波特率设置为9600
        myCom->setDataBits(DATA_8);
        //设置数据位为8
        myCom->setParity(PAR_NONE);
        //奇偶校验设置为无校验
        myCom->setStopBits(STOP_1);
        //停止位设置为1位
        myCom->setFlowControl(FLOW_OFF);
        //数据流控制设置为无流控制
        myCom->setTimeout(500);
        //延时设置,延时500MS

        readTimer = new QTimer(this);

        readTimer->start(100);
        connect(readTimer,SIGNAL(timeout()),this,SLOT(readMyCom())  );
         //信号和槽函数关联,延时一段时间,进行读串口操作

    }

    //实现槽函数

    void Widget::on_pushButton_clicked() //发送数据
    {
        myCom->write(ui->lineEdit->text().toAscii() );
        //以ASCII码形式将数据写入串口
    }
    void Widget::readMyCom()  //读取串口数据并显示出来
    {
        QByteArray temp=myCom->readAll();
        //读取串口缓冲区临时变量temp
        ui->textBrowser->insertPlainText(temp);
        //将串口的数据显示在窗口的文本浏览器中
    }

Widget::~Widget()
{
    delete ui;
}

void Widget::changeEvent(QEvent *e)
{
    QWidget::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}

|
1.QextSerialBase::Polling 这是轮询机制不是事件驱动机制,更正一下。
2.终端看看/etc/dev下面串口ttys0应该是有人占用吧,还有你用的是U转串的线吧,所以啊你要建立一个符号链接吧USB口和ttys*进行连接 *号是一个未被占用的号码,随便都行只要没被占用就好。建立符号链接的命令ln 参数是s.
希望能够帮到你

|

我表示,不理解了。还是坐等高手吧。话说你为什么用国产的麒麟啊?

|
权限不够吧。minicom都得sudo的

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教!出现这个提示是什么原因..是模块版本问题,还是其他问题..http://220.114.102.28/xitong/ProductShow.asp?ArticleID=82
  • 包 javax.servlet ,javax.servlet.http 不存在,原因?解决办法?谢了!
  • java命名空间javax.xml.ws.http接口httpbinding成员方法: http_binding定义参考
  • 防病毒的HTTP代理服务器 HTTP Anti Virus Proxy
  • java命名空间java.net枚举proxy.type的类成员方法: http定义及介绍
  • HTTP开发工具包 http-kit
  • java命名空间javax.print.attribute.standard类referenceurischemessupported的类成员方法: http定义及介绍
  • Java HTTP客户端 http4j
  • java命名空间java.net类httpurlconnection的类成员方法: http_accepted定义及介绍
  • 如何设置服务器, 使http://localhost/hello.php变成http://www.example.com/hello.php生效?
  • java命名空间java.net类httpurlconnection的类成员方法: http_unauthorized定义及介绍
  • Java HTTP 客户端开发包 jcabi-http
  • java命名空间java.net类httpurlconnection的类成员方法: http_created定义及介绍
  • linux c socket http编程 返回http消息体出错!
  • java命名空间java.net类httpurlconnection的类成员方法: http_forbidden定义及介绍
  • 请问如何在c程序里调用一段http地址,比如http://test/reload.jsp
  • java命名空间java.net类httpurlconnection的类成员方法: http_gone定义及介绍
  • 为什么输http://www.china-java.net,会自动改为http://www.china-java.net:8081?
  • java命名空间java.net类httpurlconnection的类成员方法: http_ok定义及介绍
  • http协议中文分词 http-scws
  • java命名空间java.net类httpurlconnection的类成员方法: http_conflict定义及介绍
  • MM求助:怎样多线程下载http://java.sun.com上的东东? 用http方式,谢谢了.
  • java命名空间java.net类httpurlconnection的类成员方法: http_reset定义及介绍
  • 异步 HTTP 客户端开发包 android-async-http


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,