CN102508757A - 一种Linux系统的串口调试实现方法 - Google Patents
一种Linux系统的串口调试实现方法 Download PDFInfo
- Publication number
- CN102508757A CN102508757A CN2011103409134A CN201110340913A CN102508757A CN 102508757 A CN102508757 A CN 102508757A CN 2011103409134 A CN2011103409134 A CN 2011103409134A CN 201110340913 A CN201110340913 A CN 201110340913A CN 102508757 A CN102508757 A CN 102508757A
- Authority
- CN
- China
- Prior art keywords
- control
- button
- data
- serial ports
- triggered
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Input From Keyboards Or The Like (AREA)
Abstract
本发明公开了一种Linux系统的串口调试实现方法,涉及嵌入式、串口通讯技术,旨在提供一种可以运行在Linux系统下的串口调试实现方法。其技术要点:采用Qtdesigner语言编程;包括:1:建立“发送数据按钮”、“发送数据输入框”、“接收数据显示框”等控件;2:定义串口对象;3:建立“串口波特率按钮”、“串口数据位数按钮”、“设置有无奇偶校验按钮”、“设置停止位位数按钮”等控件;4:读取串口缓冲区中数据并显示到“接收数据显示框”,同时判断“发送数据按钮”是否被触发,若被触发则执行:将“发送数据输入框”控件中的数据以ASCII码形式写入串口。
Description
技术领域
本发明涉及嵌入式技术、串口通讯技术,具体是描述如何实现计算机(PC)与嵌入式设备之间进行方便通讯的技术。
背景技术
串口助手是专门用于测试串口通信使用的工具,目前网络上的串口调试助手也有各种各样的版本,但实现原理上都是相同或相近的。串口调试助手以其方便、稳定、交互性强的特性给软件开发人员带来了极大的便利。而且许多串口助手上都附加了定时发送、文件发送等功能,其功能也是越来越强大。但是这些串口调试助手都运行与windows操作系统下。
目前Linux系统下并没有一款简洁便利的串口调试助手,虽然有Minicom这一款软件,但是其使用起来并不方便,因为在安装需要做许多配置,并且不是可视化操作界面,给用户带来很多不便。
Qt designer是一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt designer是完全面向对象的,很容易扩展,并且允许真正地组件编程。Qt designer支持 Windows及Linux等平台。
发明内容
本发明的目的是针对目前,Linux系统下没有一款使用方便的串口调试助手的情况提供一种可以运行在Linux系统下的串口调试实现方法。
本发明采用的技术方案是这样的:采用Qt designer语言编程实现;包括:
步骤1:建立“发送数据按钮”控件、“发送数据输入框”控件、“接收数据显示框”控件;
步骤2:定义串口对象;
步骤3:建立“串口波特率按钮”控件,被触发后执行串口波特率设定动作;
建立“串口数据位数按钮”控件,被触发后执行串口数据位数设定动作;
建立“设置有无奇偶校验按钮”控件,被触发后执行有无串口数据奇偶校验位设置动作;
建立“设置停止位位数按钮”控件,被触发后执行设置串口数据停止位位数动作;
建立“打开串口按钮”控件,被触发后执行串口打开动作;
建立“关闭串口按钮”控件,被触发后执行串口关闭,停止通信动作;
步骤4:读取串口缓冲区中所有数据并显示到“接收数据显示框”控件,同时判断“发送数据按钮”控件是否被触发,若“发送数据按钮”控件被触发则执行步骤5;
步骤5:检测“发送数据输入框”控件中是否有数据,若有数据,则将“发送数据输入框”控件中的数据以ASCII码形式写入串口。
优选地,“发送数据按钮”控件被触发且检测到“发送数据输入框”控件中没有数据,则执行对话框指令,提醒用户未输入需要发送的数据。
优选地,“打开串口按钮”控件被触发后,“打开串口按钮”控件本身、“串口波特率按钮”控件、“串口数据位数按钮”控件、“设置有无奇偶校验按钮”控件、“设置停止位位数按钮”控件均设置为无效状态;“关闭串口按钮”控件设置为有效状态。
优选地,“关闭串口按钮”控件被触发后,“关闭串口按钮”控件设置为无效状态;“打开串口按钮”控件、“串口波特率按钮”控件、“串口数据位数按钮”控件、“设置有无奇偶校验按钮”控件、“设置停止位位数按钮”控件均设置为有效状态。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
由于本方法采用Qt designer语言实现,能够运行在Windows、Linux等系统下;本方法可以方便移植到ARM9平台上,方便测试ARM与PC机的通讯;
本方法具有芯片无关性,在linux平台下为一款通用的串口测试方法;
具有串口添加设备、串口数据收发等功能。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是本方法响应用户测试操作的流程图。
图2是本方法响应用户测试操作时各个按钮控件状态设置流程图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
本发明中的串口调试实现方法采用Qt designer语言实现,可以运行在Linux系统下。在Qt下编写串口助手的基本思想,总体来说主要包括两个方面:第一,界面的设计,在Qt下设计界面使用的是Qt designer工具,这就如同VC下的dialog对话框的使用,可以拖拽控件,对控件布局等,极为方便;第二,通讯的实现,其中包括按钮控件、Text控件的显示、串口参数的设置等。
本发明中的串口调试实现方法包括以下步骤:
步骤1:建立“发送数据按钮”控件、“发送数据输入框”控件、“接收数据显示框”控件;
步骤2:定义串口对象;
步骤3:建立“串口波特率按钮”控件,被触发后执行串口波特率设定动作;
建立“串口数据位数按钮”控件,被触发后执行串口数据位数设定动作;
建立“设置有无奇偶校验按钮”控件,被触发后执行有无串口数据奇偶校验位设置动作;
建立“设置停止位位数按钮”控件,被触发后执行设置串口数据停止位位数动作;
建立“打开串口按钮”控件,被触发后执行串口打开动作;
建立“关闭串口按钮”控件,被触发后执行串口关闭,停止通信动作;
步骤4:读取串口缓冲区中所有数据并显示到“接收数据显示框”控件,同时判断“发送数据按钮”控件是否被触发,若“发送数据按钮”控件被触发则执行步骤5;
步骤5:检测“发送数据输入框”控件中是否有数据,若有数据,则将“发送数据输入框”控件中的数据以ASCII码形式写入串口。
具体实现方案如下:
(1)、基本收发界面设计
在Qt Creator中新建工程myCom。新建工程需要的工程文件:qextserialbase.cpp和qextserialbase.h 及posix_qextserialport.cpp和posix_qextserialport.h。在建立的工程的ui文件当中添加Text Browser和Line Edi部件,另外添加一个发送数据用的按钮。其中的Text Browser 区用来显示接收到的数据,即所述的“接收数据显示框”控件。Line Edit区用来输入要发送的数据,即为所述的“发送数据输入框”控件,sendmsg按钮,即“发送数据按钮”控件,用来发送数据。保持各部件的属性为默认值即可。
(2)、定义串口对象
指定串口名和查询模式,Linux下使用Polling。利用Posix_QextSerialPort 函数实现串口:myCom =
new Posix_QextSerialPort(“/dev/ttyS0”,QextSerialBase::Polling)。
(3)、串口参数设置
建立“串口波特率按钮”控件,该控件被触发后执行:
myCom->setBaudRate(BAUD9600)函数,设置波特率,这里设置为9600。
建立“串口数据位数按钮”控件,该控件被触发后执行:
myCom->setDataBits(DATA_8)设置串口数据位数,本实施例设置数据位为8位。
建立“设置有无奇偶校验按钮”控件,该控件被触发后执行:
myCom->setParity(PAR_NONE),设置有无奇偶校验位,本实施例设置为无奇偶校验位。
建立“设置停止位位数按钮”控件,该控件被触发后执行:
myCom->setStopBits(STOP_1),设置停止位位数,本实施例设置为1位停止位。
建立“打开串口按钮”控件,被触发后执行串口打开动作。
建立“关闭串口按钮”控件,被触发后执行串口关闭,停止通信动作。
(4)、串口收发数据的实现
利用QByteArray temp = myCom->readAll()语句读取串口缓冲区的所有数据给临时变量temp中,然后执行语句ui->textBrowser->insertPlainText(temp)即可实现在“接收数据显示框”控件中显示读取的数据。
发送数据按钮函数的实现:在按钮上右击“go to slot”,系统将自动生成on_pushButton_clicked()函数,为该函数添加代码:
myCom->write(ui->lineEdit->text().toAscii()),即可将“串口数据输入框”控件中的数据以ASCII码形式写入串口。
见图1,本方法响应用户操作的流程是: 首先,用于点击“串口波特率按钮”控件、“串口数据位数按钮”控件、“设置有无奇偶校验按钮”控件、“设置停止位位数按钮”控件对串口通信的参数进行设置。
然后,点击“打开串口按钮”,执行串口打开动作。判断串口数据缓冲区中是否有数据,若有,则通过QByteArray temp = myCom->readAll()语句读取串口缓冲区的所有数据给临时变量temp中,然后执行语句ui->textBrowser->insertPlainText(temp)即可实现在“接收数据显示框”控件中显示读取的数据。在读串口数据缓冲区的同时,若“发送数据按钮”被点击,还需要通过添加好代码的on_pushButton_clicked()函数,将“串口数据输入框”控件中的数据以ASCII码形式写入串口。作为一个容错处理,当“发送数据按钮”被点击后,“串口数据输入框”又没有数据,将弹出对话框提醒用户未输入需要发送的数据。当显示完数据或发送完数据后,用户点击“关闭串口按钮”,程序退出。
在操作串口时,可以根据实际情况设置上述各个“按钮”有效/无效状态,能够有效防止出现用户的错误操作。其中一个具体实施例是:在用户点击“打开串口按钮”后,需要设置其它“按钮”有效/无效状态,例如,通过槽函数on_openMyComBtn_clicked() 设置“关闭串口”按钮可用,而“打开串口按钮”按钮设置为不可用,“串口波特率按钮”控件、“串口数据位数按钮”控件、“设置有无奇偶校验按钮”控件、“设置停止位位数按钮”也均设为无效状态。也可以在上述实施例的基础上,在串口关闭状态下设置“关闭串口按钮”为无效,“打开串口按钮”控件、“串口波特率按钮”控件、“串口数据位数按钮”控件、“设置有无奇偶校验按钮”控件、“设置停止位位数按钮”控件均设置为有效,如图2。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (4)
1.一种Linux系统的串口调试实现方法,其特征在于,采用Qt designer语言编程实现;包括:
步骤1:建立“发送数据按钮”控件、“发送数据输入框”控件、“接收数据显示框”控件;
步骤2:定义串口对象;
步骤3:建立“串口波特率按钮”控件,被触发后执行串口波特率设定动作;
建立“串口数据位数按钮”控件,被触发后执行串口数据位数设定动作;
建立“设置有无奇偶校验按钮”控件,被触发后执行有无串口数据奇偶校验位设置动作;
建立“设置停止位位数按钮”控件,被触发后执行设置串口数据停止位位数动作;
建立“打开串口按钮”控件,被触发后执行串口打开动作;
建立“关闭串口按钮”控件,被触发后执行串口关闭,停止通信动作;
步骤4:读取串口缓冲区中所有数据并显示到“接收数据显示框”控件,同时判断“发送数据按钮”控件是否被触发,若“发送数据按钮”控件被触发则执行步骤5;
步骤5:检测“发送数据输入框”控件中是否有数据,若有数据,则将“发送数据输入框”控件中的数据以ASCII码形式写入串口。
2.根据权利要求1所述的一种Linux系统的串口调试实现方法,其特征在于,“发送数据按钮”控件被触发且检测到“发送数据输入框”控件中没有数据,则执行对话框指令,提醒用户未输入需要发送的数据。
3.根据权利要求1或2所述的一种Linux系统的串口调试实现方法,其特征在于,“打开串口按钮”控件被触发后,“打开串口按钮”控件本身、“串口波特率按钮”控件、“串口数据位数按钮”控件、“设置有无奇偶校验按钮”控件、“设置停止位位数按钮”控件均设置为无效状态;“关闭串口按钮”控件设置为有效状态。
4.根据权利要求3所述的一种Linux系统的串口调试实现方法,其特征在于,“关闭串口按钮”控件被触发后,“关闭串口按钮”控件设置为无效状态;“打开串口按钮”控件、“串口波特率按钮”控件、“串口数据位数按钮”控件、“设置有无奇偶校验按钮”控件、“设置停止位位数按钮”控件均设置为有效状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103409134A CN102508757A (zh) | 2011-11-02 | 2011-11-02 | 一种Linux系统的串口调试实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103409134A CN102508757A (zh) | 2011-11-02 | 2011-11-02 | 一种Linux系统的串口调试实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102508757A true CN102508757A (zh) | 2012-06-20 |
Family
ID=46220849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103409134A Pending CN102508757A (zh) | 2011-11-02 | 2011-11-02 | 一种Linux系统的串口调试实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102508757A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699609A (zh) * | 2015-03-12 | 2015-06-10 | 青岛海尔智能家电科技有限公司 | 一种串口通信检测方法及装置 |
CN107608835A (zh) * | 2017-09-05 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种串口读写测试方法及装置 |
CN108280025A (zh) * | 2018-01-18 | 2018-07-13 | 中国地质大学(武汉) | 一种at指令模块的学习调试系统 |
CN108845897A (zh) * | 2018-05-25 | 2018-11-20 | 北京无线电测量研究所 | 串口通信调试方法、装置及存储介质 |
CN110795375A (zh) * | 2019-10-31 | 2020-02-14 | 浪潮金融信息技术有限公司 | 一种基于linux下操作串口及HID外设的通讯方法 |
CN112764379A (zh) * | 2021-01-18 | 2021-05-07 | 四川长虹电器股份有限公司 | 一种基于dsp系统的iap控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101131658A (zh) * | 2007-08-13 | 2008-02-27 | 中兴通讯股份有限公司 | 在dsp上利用同步串口输出异步串口调试信息的方法 |
CN101221550A (zh) * | 2008-01-30 | 2008-07-16 | 许新朋 | 一种串行通讯的方法及芯片 |
-
2011
- 2011-11-02 CN CN2011103409134A patent/CN102508757A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101131658A (zh) * | 2007-08-13 | 2008-02-27 | 中兴通讯股份有限公司 | 在dsp上利用同步串口输出异步串口调试信息的方法 |
CN101221550A (zh) * | 2008-01-30 | 2008-07-16 | 许新朋 | 一种串行通讯的方法及芯片 |
Non-Patent Citations (1)
Title |
---|
赖于树等: "《ARM微处理器与应用开发》", 31 August 2007, 电子工业出版社 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699609A (zh) * | 2015-03-12 | 2015-06-10 | 青岛海尔智能家电科技有限公司 | 一种串口通信检测方法及装置 |
CN107608835A (zh) * | 2017-09-05 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种串口读写测试方法及装置 |
CN108280025A (zh) * | 2018-01-18 | 2018-07-13 | 中国地质大学(武汉) | 一种at指令模块的学习调试系统 |
CN108280025B (zh) * | 2018-01-18 | 2021-03-16 | 中国地质大学(武汉) | 一种at指令模块的学习调试系统 |
CN108845897A (zh) * | 2018-05-25 | 2018-11-20 | 北京无线电测量研究所 | 串口通信调试方法、装置及存储介质 |
CN110795375A (zh) * | 2019-10-31 | 2020-02-14 | 浪潮金融信息技术有限公司 | 一种基于linux下操作串口及HID外设的通讯方法 |
CN112764379A (zh) * | 2021-01-18 | 2021-05-07 | 四川长虹电器股份有限公司 | 一种基于dsp系统的iap控制方法 |
CN112764379B (zh) * | 2021-01-18 | 2022-05-03 | 四川长虹电器股份有限公司 | 一种基于dsp系统的iap控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10592397B2 (en) | Representing a test execution of a software application using extended reality | |
CN102508757A (zh) | 一种Linux系统的串口调试实现方法 | |
US8726233B1 (en) | System and method of using an active link in a state programming environment to locate an element | |
CN103049369B (zh) | 一种自动化测试方法及系统 | |
WO2015019074A1 (en) | Automated application test system | |
CN103309667B (zh) | 安卓系统中定位ui控件及图片修改位置的方法 | |
EP1546849A2 (en) | Customizable drag and drop for industrial software applications | |
US9594608B2 (en) | Message-based modeling | |
CN112860369A (zh) | 用户指导的部分图形执行 | |
US8561028B1 (en) | Methods and systems for debugging event-driven software applications | |
WO2006066037A2 (en) | Tools for system-level design environments | |
US20190278591A1 (en) | Representing a software application using extended reality | |
US9507888B1 (en) | Active state visualization for finite state machine models | |
US20140365199A1 (en) | Pairing a physical device with a model element | |
US9244652B1 (en) | State management for task queues | |
CN103810292A (zh) | 一种图形界面的配置方法及装置 | |
CN104102468B (zh) | 一种网络分析仪公式编辑器及其数据图形显示方法和装置 | |
TW201435364A (zh) | 使用裝置服務橋接器的遠端裝置自動化 | |
US8700374B1 (en) | System and method of using an active link in a state programming environment to locate an element in a graphical programming environment | |
CN113919158A (zh) | 一种用于飞行控制面板的仿真方法、装置及存储介质 | |
US20090024696A1 (en) | Integration of client and server development environments | |
CN107025040B (zh) | 基于oled屏幕的显示设置方法、系统及图形用户界面 | |
US9280627B1 (en) | GUI based verification at multiple abstraction levels | |
CN102662662A (zh) | 嵌入式图形界面生成系统及方法 | |
US10902171B1 (en) | Clock crossing interface for integrated circuit generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120620 |