Qt串口实现921600波特率的方法

环境配置:
主机:XP
QT:5.4.0

写在这里的重点并不是告诉人如何在Qt的串口编程中实现921600的Bps。

1、在Qt中使用串口,我们需要一个第三方的串口类:qextserialport。在其qextserialbase.h文件中,提供了如下常用的波特率:

enum BaudRateType
{
    BAUD50,                //POSIX ONLY
    BAUD75,                //POSIX ONLY
    BAUD110,
    BAUD134,               //POSIX ONLY
    BAUD150,               //POSIX ONLY
    BAUD200,               //POSIX ONLY
    BAUD300,
    BAUD600,
    BAUD1200,
    BAUD1800,              //POSIX ONLY
    BAUD2400,
    BAUD4800,
    BAUD9600,
    BAUD14400,             //WINDOWS ONLY
    BAUD19200,
    BAUD38400,
    BAUD56000,             //WINDOWS ONLY
    BAUD57600,
    BAUD76800,             //POSIX ONLY
    BAUD115200,
    BAUD128000,            //WINDOWS ONLY
    BAUD256000             //WINDOWS ONLY
};

2、其实要做的简单来说就是添加一种我们需要的波特率,不需要特别的知识,考虑下从应用层到OS层串口实现的流程,我们只要按照这个流程,添加相应的数据—宏定义/枚举值即可。

3、那么,动手吧。以921600bps为例。

1)在Qt编程时,设置串口波特率调用BaudRateType里的枚举值,那么就在BaudRateType中添加921600的枚举值:

enum BaudRateType
{
	......
	BAUD921600
} 

2)BAUD921600底层的调用在win_qextserialport.cpp文件的void Win_QextSerialPort::setBaudRate(BaudRateType baudRate)中,那么我们就添加其对应的case语句:

void Win_QextSerialPort::setBaudRate(BaudRateType baudRate)
{
      ......
      /* 921600 baud */
      case BAUD921600:
           TTY_PORTABILITY_WARNING("Win_QextSerialPort Portability Warning: POSIX does not support 921600 baud operation.");
           Win_CommConfig.dcb.BaudRate=CBR_921600;
           break;
}

3)现在,我们需要找到CBR_921600的底层调用,它在Qt安装目录C:\Qt\Qt5.4.0\Tools\mingw491_32\i686-w64-mingw32\include下面的winbase.h文件中:

C:\Qt\Qt5.4.0\Tools\mingw491_32\i686-w64-mingw32\include\winbase.h:
#define CBR_110 110
#define CBR_300 300
#define CBR_600 600
#define CBR_1200 1200
#define CBR_2400 2400
#define CBR_4800 4800
#define CBR_9600 9600
#define CBR_14400 14400
#define CBR_19200 19200
#define CBR_38400 38400
#define CBR_56000 56000
#define CBR_57600 57600
#define CBR_115200 115200
#define CBR_128000 128000
#define CBR_256000 256000
#define CBR_460800 460800
#define CBR_921600 921600

我们只需要添加自己需要的波特率对应的CBR_921600即可。

4)大功告成

4、写到这里,重点是体会到,面对问题时的思考方式。或者是思路,是非常重要的。简单来说就是,多动脑。

时间: 2024-11-05 19:39:16

Qt串口实现921600波特率的方法的相关文章

Qt 串口类QSerialPort 使用笔记

Qt 串口类QSerialPort 使用笔记 虽然现在大多数的家用PC机上已经不提供RS232接口了.但是由于RS232串口操作简单.通讯可靠,在工业领域中仍然有大量的应用.Qt以前的版本中,没有提供官方的对RS232串口的支持,编写串口程序很不方便.现在好了,在 Qt5.1 中提供了QtSerialPort模块,方便编程人员快速的开发应用串口的应用程序. 本文就简单的讲讲QtSerialPort模块的使用. 当前的QtSerialPort模块中提供了两个C++类,分别是QSerialPort 

Qt串口通信专题教程

查看以前的教程:Qt编写串口通信程序全程图文讲解 查看Wincom和Lincom介绍:Qt跨平台串口通信软件Wincom与Lincom 下载软件,文档和源码:资源下载 --------------2010年7月8日更新--------------– 网友 赵文杰 使用多线程完成的linux下的串口通信. 下载源码:下载 ------------------------------------- 以下是正文: 前言 去年我使用Qt编写串口通信程序时,将自己的学习过程写成了教程(Qt编写串口通信程序

Qt 串口通信

在Qt5之前,串口通信基本依赖于第三方库,下面是我曾接触过的串口通信类库: 名称 语言 平台   QextSerialPort QT C++ Win/Linux http://sourceforge.net/projects/qextserialport/files/ QSerialPort QT C++ QT5已经集成 libserial C++ Linux http://files.cnblogs.com/kyyblabla/libserial-0.5.2.gz.7z 以上串口通信类库通信过

QT开发(五十)——QT串口编程基础

QT开发(五十)--QT串口编程基础 一.QtSerialPort简介 1.串口通信基础 目前使用最广泛的串口为DB9接口,适用于较近距离的通信.一般小于10米.DB9接口有9个针脚. 串口通信的主要参数如下: A.波特率:衡量通信速度的参数,表示每秒钟传送的bit的个数.例如9600波特表示每秒钟发送9600个bit. B.数据位:衡量通信中实际数据位的参数,当计算机发送一个信息包,实际包含的有效数据位个数. C.停止位:用于表示单个包的最后一位.典型的值为1和2位. D.奇偶校验位:串口通信

发布Qt Quick桌面应用程序的方法

发布Qt Quick桌面应用程序的方法 Qt是一款优秀的跨平台开发框架,它可以在桌面.移动平台以及嵌入式平台上运行.目前Qt 5介绍程序发布的文章帖子比较少.大家又非常想要知道如何发布Qt应用程序,于是我花了一点儿时间介绍一下如何发布Qt桌面应用程序. 上海萌梦信息科技有限公司(微博:http://weibo.com/qtdream)原创文章,首发地址:http://qtdream.com/topic/114.欢迎同行前来探讨. 上篇文章介绍了如何简单快速地发布Qt Widgets应用.目前Qt

公布Qt Widgets桌面应用程序的方法

公布Qt Widgets桌面应用程序的方法 Qt是一款优秀的跨平台开发框架,它能够在桌面.移动平台以及嵌入式平台上执行.眼下Qt 5介绍程序公布的文章帖子比較少.大家又很想要知道怎样公布Qt应用程序,于是我花了一点儿时间介绍一下怎样公布Qt桌面应用程序. 上海萌梦信息科技有限公司(微博:http://weibo.com/qtdream)原创文章,首发地址:http://qtdream.com/topic/113.欢迎同行前来探讨. 首先我们从最简单的项目Qt Widgets開始说起.Qt Wid

发布Qt Widgets桌面应用程序的方法

发布Qt Widgets桌面应用程序的方法 Qt是一款优秀的跨平台开发框架,它可以在桌面.移动平台以及嵌入式平台上运行.目前Qt 5介绍程序发布的文章帖子比较少.大家又非常想要知道如何发布Qt应用程序,于是我花了一点儿时间介绍一下如何发布Qt桌面应用程序. 上海萌梦信息科技有限公司(微博:http://weibo.com/qtdream)原创文章,首发地址:http://qtdream.com/topic/113.欢迎同行前来探讨. 首先我们从最简单的项目Qt Widgets开始说起.Qt Wi

用Qt生成dll类库及调用方法

空白工程新建DLL后,将DLL和LIB文件放入需要调用的"指定目录" 项目->属性->连接器->常规->附加库目录->添加"指定目录" 项目->属性->连接器->输入->附加依赖项->添加"LIB文件" 添加头文件到项目中,则DLL可用! VC6.0: 使一个项目编译生成DLL库而不生成可执行文件: 删除main()方法: 将.pro项目文件中的TEMPLATE = app改为TEMPL

macbook pro的usb串口失效的的处理方法

macbook pro的usb串口失效的的处理方法 2011-08-24 12:14:32|  分类: mac|举报|字号 订阅 今天开电脑,无端端一个usb的串口失效了,接入鼠标 iphone均没反应~ 还以为是硬件坏了,匆忙在官网上用express lane预约了他们的advisor,按照他们提供的几个操作重置一下mbp的硬件就行了~ 具体如下 接上电源 关机 先按下shift+ctrl+opt+开机键,等待10秒,这10秒是没有反应的,屏幕不会亮,系统不会跑起来 10秒过后松开所有键 再按