Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3518954
  • 博文数量: 864
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10634
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(864)

文章存档

2023年(1)

2021年(1)

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: LINUX

2009-11-05 20:14:21

今天忙活一天好象是有点认识这个家伙了,终于能站在它的肩膀上摘果子的感觉了。

1.先把要用到的头文件建立,分别是QextSerialPort.h , QextSerialBase.h, Posix_QextSerialPort.h,并且要把静态库libqextserialport.a一同存放在所建立项目的目录中;

2.方便之处就在于可以直接继承它们,然后建立对象,并使用定义好的接口函数控制串口,例如:

//定义一个对象

QextSerialPort *port = new QextSerialPort("/dev/ttyS0");

 

//初始化端口

port->setBaudRate(BAUD38400);

port->setDataBits(DATA_8);

port->setFlowControl(FLOW_OFF);

port->setParity(PAR_NONE);

port->setStopBits(STOP_1);

 

//初始化好了之后,查看,这时候端口还没打开

qDebug()<isOpen()<

 

//使用接口函数打开串口

port->open(QIODevice::ReadOnly);

qDebug()<isOpen()<

 

//读串口

QByteArray array = port->readAll();

qDebug()<

简单的理解,明天继续学习。

附录:

1.关于foreach关键字:

      foreach(variables ,container)关键字是Qt对c++的一个扩展,主要用于按顺序历经容器(container)中的对象,例如:

QLinkList list;

QString str;

      foreach(str , list){

            qDebug()<

     }

这样就可以历经list里存储的对象了,它的作用相当于标准C++中的iterator

QLinkList list;

QLinkListIterator i(list);

while(i.hasNext()) {

qDebug()<

}

2.关于QTextCodec对象:

      该对象主要用于非Unicode编码数据与Unicode编码数据之间的转换,例如:

假设现在有一个采用俄国的KOI8-R编码格式的字符串encodedString,现在将它转换成Unicode

QByteArray encodedString = "Hello";

QTextCodec *codec = QTextCodec::codecForName("KOI8-R");

QString string = codec->toUnicode(encodedString);

上述操作完成后,string里存储的就是Unicode编码的字符串了

相反的过程:

QTextCodec *codec = QTextCodec::codecForName("UTP-8");

QByteArray encodedString = codec->fromUnicode(string);

操作完成后,encodedStirng里存储的就是从Unicode转换来的UTF-8编码的字符串了
1. 今天碰到的问题是,编译通过了,但程序总是意外退出,找不出原因,在编译的时候出现:nothing to be done for 'first',这个问题好办,先把从前的编译内容删除:
#make clean
然后在重新编译:
#make

    2.第二个问题:段错误
    google了一下,段错误主要是有指针引起,错误的使用了内存,指针越界例如:操作了已经释放的内存空间 ;没有申请内存空间被操作 ;或者内存越界等等。从这些地方入手就能找到问题。

    3.地三个问题:Object::connect: No such slot*****
     这个问题是因为头文件中没有声明:Q_OBJECT 导致的。
    具体原因:如果自定义的一个class想使用信号和槽的机制,那么就必须在该class的头文件中声明Q_OBJECT。

阅读(1429) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~