CN116521435A - 一种串口初始化方法、装置、电子设备、及储存介质 - Google Patents
一种串口初始化方法、装置、电子设备、及储存介质 Download PDFInfo
- Publication number
- CN116521435A CN116521435A CN202310091671.2A CN202310091671A CN116521435A CN 116521435 A CN116521435 A CN 116521435A CN 202310091671 A CN202310091671 A CN 202310091671A CN 116521435 A CN116521435 A CN 116521435A
- Authority
- CN
- China
- Prior art keywords
- baud rate
- serial port
- preset
- value
- data
- 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
- 238000011423 initialization method Methods 0.000 title claims abstract description 19
- 239000000872 buffer Substances 0.000 claims abstract description 158
- 238000000034 method Methods 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明实施例提供了一种串口初始化方法、装置、设备、及介质,该方法包括:获取串口对应的计数器的当前计数值;判断当前计数值是否小于预设计数值;若当前计数值小于预设计数值,则检测串口的缓冲区中是否存在读取失败的数据,若缓冲区中不存在读取失败的数据,则将串口的波特率设置为预设波特率数值;若当前计数值大于或等于预设计数值,则检测串口的波特率是否为预设波特率数值,若波特率不为预设波特率数值,则将串口的波特率设置为预设波特率数值;根据预设波特率数值的波特率获取串口的缓冲区中的数据。本发明在串口缓冲区中存在读取失败的数据的情况下,将缓冲区中的数据重新读取出来,以解决缓冲区中的数据被重置,导致数据丢失的问题。
Description
技术领域
本发明涉及串口数据技术领域,特别是涉及一种串口初始化方法、一种串口初始化装置、一种电子设备和一种储存介质。
背景技术
串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。其特点是通信线路简单,只要一对传输线就可以实现双向通信,从而大大降低了成本,特别适用于远距离通信,但传输速度较慢。由于串口使用简单,成本低廉,现在被普遍应用于产品的开发和测试过程中。
在现有技术中,通过串口的缓冲区传输数据时,如果停止传输数据,则可能导致缓冲区中还有数据未被传输出去,当重新开始传输数据时,缓冲区中的数据可能被重置,可能导致数据丢失。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种串口初始化方法、一种串口初始化装置、一种电子设备和一种储存介质。
为了解决上述问题,本发明实施例公开了一种串口初始化方法,应用于服务器,所述服务器包括串口,所述串口配置有缓冲区和对应的计数器,所述方法包括:
获取所述串口对应的所述计数器的当前计数值;
判断所述当前计数值是否小于预设计数值;
若所述当前计数值小于所述预设计数值,则检测所述串口的所述缓冲区中是否存在读取失败的数据,若所述缓冲区中不存在读取失败的数据,则将所述串口的波特率设置为预设波特率数值;
若所述当前计数值大于或等于所述预设计数值,则检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值;
根据所述预设波特率数值的波特率获取所述串口的所述缓冲区中的数据。
可选地,所述检测所述串口的所述缓冲区中是否存在读取失败的数据,包括:
获取所述串口的波特位的数值;所述数值用于表示所述缓冲区的状态;
根据所述状态判断所述串口的所述缓冲区中是否存在读取失败的数据。
可选地,所述根据所述状态判断所述串口的所述缓冲区中是否存在读取失败的数据,包括:
若所述串口的所述缓冲区的所述状态为空,则确定所述缓冲区中不存在读取失败的数据;
若所述串口的所述缓冲区的所述状态不为空,则确定所述缓冲区中存在读取失败的数据。
可选地,所述获取所述串口的波特位的数值之后,还包括:
对所述计数器的所述当前计数值进行更新;
所述方法还包括:
若所述串口的所述缓冲区中存在读取失败的数据,则返回执行判断所述当前计数值是否小于预设计数值的步骤。
可选地,所述检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值,包括:
判断所述串口是否设置了所述波特率;
若所述串口未设置所述波特率,则将所述串口的所述波特率设置为所述预设波特率数值。
可选地,所述检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值,还包括:
若所述串口设置了所述波特率,判断所述波特率与所述预设波特率数值是否一致,若所述波特率与所述预设波特率数值不一致,则将所述串口的所述波特率设置为所述预设波特率数值。
可选地,所述方法还包括:
若所述波特率与所述预设波特率数值一致,则将所述串口的数据位、和或停止位、和或校验位设置为预设数值。
相应的,本发明实施例还公开了一种串口初始化装置,应用于服务器,所述服务器包括串口,所述串口配置有缓冲区和对应的计数器,所述装置包括:
计数值获取模块,用于获取所述串口对应的所述计数器的当前计数值;
计数值判断模块,用于判断所述当前计数值是否小于预设计数值;
串口数据检测模块,用于若所述当前计数值小于所述预设计数值,则检测所述串口的所述缓冲区中是否存在读取失败的数据,若所述缓冲区中不存在读取失败的数据,则将所述串口的波特率设置为预设波特率数值;
波特率检测模块,用于若所述当前计数值大于或等于所述预设计数值,则检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值;
串口数据获取模块,用于根据所述预设波特率数值的波特率获取所述串口的所述缓冲区中的数据。
可选地,所述串口数据检测模块包括:
数值获取子模块,用于获取所述串口的波特位的数值;所述数值用于表示所述缓冲区的状态;
状态判断子模块,用于根据所述状态判断所述串口的所述缓冲区中是否存在读取失败的数据。
可选地,所述状态判断子模块包括:若所述串口的所述缓冲区的所述状态为空,则确定所述缓冲区中不存在读取失败的数据;若所述串口的所述缓冲区的所述状态不为空,则确定所述缓冲区中存在读取失败的数据。
可选地,所述数值获取子模块包括:
计数值更新单元,用于对所述计数器的所述当前计数值进行更新;
所述装置包括:
返回执行模块,用于若所述串口的所述缓冲区中存在读取失败的数据,则返回执行判断所述当前计数值是否小于预设计数值的步骤。
可选地,所述波特率检测模块包括:
第一波特率判断子模块,用于判断所述串口是否设置了所述波特率;
波特率设置子模块,用于若所述串口未设置所述波特率,则将所述串口的所述波特率设置为所述预设波特率数值。
可选地,所述波特率检测模块包括:
第二波特率判断子模块,用于若所述串口设置了所述波特率,判断所述波特率与所述预设波特率数值是否一致,若所述波特率与所述预设波特率数值不一致,则将所述串口的所述波特率设置为所述预设波特率数值。
可选地,所述波特率检测模块包括包括:
串口位数设置子模块,用于若所述波特率与所述预设波特率数值一致,则将所述串口的数据位、和或停止位、和或校验位设置为预设数值。
相应的,本发明实施例公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述串口初始化方法实施例的各个步骤。
相应的,本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述串口初始化方法实施例的各个步骤。
本发明实施例包括以下优点:获取所述串口对应的所述计数器的当前计数值;判断所述当前计数值是否小于预设计数值;若所述当前计数值小于所述预设计数值,则检测所述串口的所述缓冲区中是否存在读取失败的数据,若所述缓冲区中不存在读取失败的数据,则将所述串口的波特率设置为预设波特率数值;若所述当前计数值大于或等于所述预设计数值,则检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值;根据所述预设波特率数值的波特率获取所述串口的所述缓冲区中的数据。在本发明实施例中,可以在串口缓冲区中存在读取失败的数据的情况下,可以根据修改后的波特率,将缓冲区中的数据重新读取出来,以解决缓冲区中的数据可能被重置,导致数据丢失的问题。
附图说明
图1是本发明实施例提供的一种串口初始化方法的步骤流程图;
图2是本发明实施例提供的另一种串口初始化方法的步骤流程图;
图3是本发明实施例提供的一种串口初始化方法的流程图;
图4是本发明实施例提供的一种串口初始化装置的结构框图;
图5是本发明实施例提供的一种电子设备;
图6是本发明实施例提供的一种计算机可读存储介质。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明实施例提供的一种串口初始化方法的步骤流程图,应用于服务器,所述服务器包括串口,所述串口配置有缓冲区和对应的计数器,所述方法具体可以包括如下步骤:
步骤101,获取所述串口对应的所述计数器的当前计数值。
串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口(Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
波特率(Baud Rate)单位bps-串口每秒传送的字节数Byte Per Second。是串口模拟线路信号的速率,也称调制速率,以波形每秒的振荡数来衡量。如果数据不压缩,波特率等于每秒钟传输的数据位数,如果数据进行了压缩,那么每秒钟传输的数据位数通常大于调制速率,使得交换使用波特和比特/秒偶尔会产生错误。波特率是指数据信号对载波的调制速率,它用单位时间内载波调制状态改变的次数来表示,其单位是波特(Baud)。
串口使用时一般包含两个缓冲区,即发送缓冲区和接收缓冲区。发送数据时,先将数据存在发送缓冲区,然后通过串口发送;接收数据时,先将接收的数据存在接收缓冲区,然后再进行读取。
在串口通过波特率传输数据时,如果发生特殊情况,比如,串口断开等情况,可能导致串口的缓冲区中的数被重置,导致缓冲区中的数据丢失,所以为了避免这种情况,可以设置串口对应的计数器,根据计数器的计数值,对串口的数据进行判断,避免偶然性的事情发生,如果是偶然性的事情,说明不需要进行处理,串口自动将缓冲区中的数据读取了出去。
在启动服务器之后,串口被首次启动时,将串口对应的计数器的计数值设置为初始值,比如,初始值可以为0,初始值可以根据需求进行设置,本发明实施例在此不加以限制。如果串口的缓冲区中存在读取失败的数据,可以获取串口对应的计数器的当前计数值,其中,读取失败的数据可以为串口的缓冲区中存在的数据,串口一直在工作,但是该数据一直在缓冲区中未被读取出去。
步骤102,判断所述当前计数值是否小于预设计数值。
在获取到当前计数值之后,为了避免缓冲区中偶然性的数据未被读取出去,可以设置一个预设计数值,判断当前计数值是否小于预设计数值,如果当前计数值小于预设计数值,说明缓冲区中的数据可能存在未被读取出去们可以在多读取几次,如果当前计数值大于或等于预设计数值,则说明已经经过很多次的读取了,但是缓冲区中的数据还是一直未能读取出来,具体的预设计数值可以根据实际情况进行设置,本发明实施例在此不加以限制。
步骤103,若所述当前计数值小于所述预设计数值,则检测所述串口的所述缓冲区中是否存在读取失败的数据,若所述缓冲区中不存在读取失败的数据,则将所述串口的波特率设置为预设波特率数值。
如果当前计数值小于预设计数值,为了查看在判断的过程中,缓冲区中的数据是否被读取出去,可以对缓冲区进行检测,检测串口的缓冲区中是否存在读取失败的数据,如果缓冲区中不存在读取失败的数据,则说明缓冲区中的数据被读取出去了,则可以通过LCR寄存器(Line Control Register,线路控制寄存器)和Base寄存器(串口的第一个寄存器),根据串口规范,将串口的波特率设置为预设波特率数值,具体的预设波特率数值可以根据实际情况进行设置,本发明实施例在此不加以限制。
步骤104,若所述当前计数值大于或等于所述预设计数值,则检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值。
如果当前计数值大于或等于预设计数值,则说明已经经过很多次的读取了,但是缓冲区中的数据还是一直未能读取出来,则可以检测串口的波特率是否为预设波特率数值,因为,波特率不对也可能导致缓冲区中的数据读取不出去,如果串口的波特率不为预设波特率数值,则可以通过LCR寄存器和Base寄存器,根据串口规范,将串口的波特率设置为预设波特率数值。
步骤105,根据所述预设波特率数值的波特率获取所述串口的所述缓冲区中的数据。
在通过LCR寄存器和Base寄存器,根据串口规范,将串口的波特率设置为预设波特率数值后,串口可以根据预设波特率数值的波特率读取缓冲区中的数据,将数据读取出来之后,串口可以进行重置等操作,以使串口中的数据,不会因为缓冲区的重置而丢失。
获取串口对应的计数器的当前计数值;判断当前计数值是否小于预设计数值;若当前计数值小于预设计数值,则将串口的波特率设置为预设波特率数值;若当前计数值大于或等于预设计数值,则检测串口的波特率是否为预设波特率数值,若波特率不为预设波特率数值,则将串口的波特率设置为预设波特率数值;根据预设波特率数值的波特率获取串口的缓冲区中的数据。在本发明实施例中,可以在串口缓冲区中存在读取失败的数据的情况下,可以根据修改后的波特率,将缓冲区中的数据重新读取出来,以解决缓冲区中的数据可能被重置,导致数据丢失的问题。
参照图2,示出了本发明实施例提供的另一种串口初始化方法的步骤流程图,应用于服务器,所述服务器包括串口,所述串口配置有缓冲区和对应的计数器,所述方法具体可以包括如下步骤:
步骤201,获取所述串口对应的所述计数器的当前计数值;
步骤202,判断所述当前计数值是否小于预设计数值;
步骤203,若所述当前计数值小于所述预设计数值,则获取所述串口的波特位的数值;所述数值用于表示所述缓冲区的状态;根据所述状态判断所述串口的所述缓冲区中是否存在读取失败的数据,若所述缓冲区中不存在读取失败的数据,则将所述串口的波特率设置为预设波特率数值;
如果当前计数值小于预设计数值,为了查看在判断的过程中,缓冲区中的数据是否被读取出去,可以通过读取LSR寄存器的数据对缓冲区进行检测,可以获取LSR寄存器的数据中波特位的数值,波特位的数值可以用于表示缓冲区的状态,比如,波特位的数值为0,可以表示为状态为空,波特位的数值为1,可以表示为状态不为空,可以根据状态判断串口的缓冲区中是否存在读取失败的数据,如果缓冲区中不存在读取失败的数据,则说明缓冲区中的数据被读取出去了,则可以通过LCR寄存器和Base寄存器,根据串口规范,将串口的波特率设置为预设波特率数值,具体的波特位的数值与状态的关系可以根据实际情况进行设置,本发明实施例在此不加以限制。
在本发明实施例中,所述根据所述状态判断所述串口的所述缓冲区中是否存在读取失败的数据,包括:
若所述串口的所述缓冲区的所述状态为空,则确定所述缓冲区中不存在读取失败的数据;
若所述串口的所述缓冲区的所述状态不为空,则确定所述缓冲区中存在读取失败的数据。
在获取到数值对应的状态之后,可以根据状态判断缓冲区是否存在读取失败的数据,如果串口的缓冲区的状态为空,则可以确定缓冲区中不存在读取失败的数据,如果串口的缓冲区的状态不为空,则可以确定缓冲区中存在读取失败的数据。
在本发明实施例中,所述获取所述串口的波特位的数值之后,还包括:
对所述计数器的所述当前计数值进行更新。
所述方法还包括:
若所述串口的所述缓冲区中存在读取失败的数据,则返回执行判断所述当前计数值是否小于预设计数值的步骤。
在获取到串口的波特位的数值之后,可以对计数器的计数值进行更新,更新的方法可以为将计数值加1,计数值可以用于表示对缓冲区中的数据读取了多少次,避免数据偶然性的在缓冲区中未读出去,具体的更新计数值的方法可以根据实际情况进行设置,本发明实施例在此不加以限制。
如果串口的缓冲区中存在读取失败的数据,则可以返回执行当前计数值是否小于预设计数值的步骤,要更新后的当前计数值与预设计数值进行判断,对步骤进行循环。
步骤204,若所述当前计数值大于或等于所述预设计数值,则检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值;
在本发明实施例中,所述检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值,包括:
判断所述串口是否设置了所述波特率;
若所述串口未设置所述波特率,则将所述串口的所述波特率设置为所述预设波特率数值。
在当前计数值大于或等于预设计数值的情况下,如果串口未设置波特率,则可以通过LCR寄存器和Base寄存器,根据串口规范,将串口的波特率设置为预设波特率数值,使串口可以根据预设波特率数值的波特率读取缓冲区中的数据。
在本发明实施例中,所述检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值,还包括:
若所述串口设置了所述波特率,判断所述波特率与所述预设波特率数值是否一致,若所述波特率与所述预设波特率数值不一致,则将所述串口的所述波特率设置为所述预设波特率数值。
如果串口设置了波特率,则可以判断串口的波特率与预设波特率数值是否一致,如果波特率与预设波特率数值不一致,则说明有可能是因为波特率不对导致缓冲区中的数据读取不出来,则可以通过LCR寄存器和Base寄存器,根据串口规范,将串口的波特率设置为预设波特率数值,使串口可以根据预设波特率数值的波特率读取缓冲区中的数据。
在本发明实施例中,所述方法还包括:
若所述波特率与所述预设波特率数值一致,则将所述串口的数据位、和或停止位、和或校验位设置为预设数值。
如果波特率与预设波特率数值一致,则有可能是因为串口的寄存器的数值不对导致缓冲区中的数据读取不出来,则可以将串口的寄存器的数据位、和或停止位、和或校验位设置为预设数值,使串口可以根据寄存器修改后的数据读取缓冲区中的数据,其中,可以同时修改数据位、停止位、校验位的数值,也可以根据需求修改对应位置的数值,预设数值可以根据数据位、停止位、校验位的不同而不同,比如,数据位的预设数值可以为1,停止位的预设数值可以为0,校验位的预设数值可以为2,具体的预设数值可以根据实际情况进行设置,本发明实施例在此不加以限制。
步骤205,根据所述预设波特率数值的波特率获取所述串口的所述缓冲区中的数据。
在通过LCR寄存器和Base寄存器,根据串口规范,将串口的波特率设置为预设波特率数值后,串口可以根据预设波特率数值的波特率读取缓冲区中的数据,将数据读取出来之后,串口可以进行重置等操作,以使串口中的数据,不会因为缓冲区的重置而丢失。
获取串口对应的计数器的当前计数值;判断当前计数值是否小于预设计数值;若当前计数值小于预设计数值,则检测串口的缓冲区中是否存在读取失败的数据,若缓冲区中不存在读取失败的数据,则将串口的波特率设置为预设波特率数值;若当前计数值大于或等于预设计数值,则检测串口的波特率是否为预设波特率数值,若波特率不为预设波特率数值,则将串口的波特率设置为预设波特率数值;根据预设波特率数值的波特率获取串口的缓冲区中的数据。在本发明实施例中,可以在串口缓冲区中存在读取失败的数据的情况下,可以根据修改后的波特率,将缓冲区中的数据重新读取出来,以解决缓冲区中的数据可能被重置,导致数据丢失的问题。
为了使本领域计数人员能够更好地理解本发明实施例,下面通过一个例子对本发明实施例加以说明:参照图3,示出了本发明实施例提供的一种串口初始化方法的流程图;
首先,可以将串口对应的计数器的当前计数值设置为初始值,可以获取计数器的当前计数值,判断当前计数值是否小于预设计数值,若当前计数值小于预设计数值,则可以获取串口的寄存器的波特位的数值,并确定数值对应的状态,根可以据状态判断缓冲区中是否存在读取失败的数据,如果缓冲区中存在读取失败的数据,则可以返回执行判断当前计数值是否小于预设计数值的步骤,如果缓冲区中不存在读取失败的数据,则可以通过LCR寄存器和Base寄存器,根据串口规范,将串口的波特率设置为预设波特率数值。
其次,如果当前计数值大于或等于预设计数值,则可以判断串口是否设置了波特率,如果串口没有设置波特率,则可以通过LCR寄存器和Base寄存器,根据串口规范,将串口的波特率设置为预设波特率数值,如果如果串口设置了波特率,则可以判断波特率与预设波特率数值是否一致,如果波特率与预设波特率数值一致,则可以将串口的数据位、和或停止位、和或校验位设置为预设数值,如果波特率与预设波特率数值不一致,则可以通过LCR寄存器和Base寄存器,根据串口规范,将串口的波特率设置为预设波特率数值,使串口可以根据修改后的数值读取缓冲区中的读取失败的数据。
获取串口对应的计数器的当前计数值;判断当前计数值是否小于预设计数值;若当前计数值小于预设计数值,则检测串口的缓冲区中是否存在读取失败的数据,若缓冲区中不存在读取失败的数据,则将串口的波特率设置为预设波特率数值;若当前计数值大于或等于预设计数值,则检测串口的波特率是否为预设波特率数值,若波特率不为预设波特率数值,则将串口的波特率设置为预设波特率数值;根据预设波特率数值的波特率获取串口的缓冲区中的数据。在本发明实施例中,可以在串口缓冲区中存在读取失败的数据的情况下,可以根据修改后的波特率,将缓冲区中的数据重新读取出来,以解决缓冲区中的数据可能被重置,导致数据丢失的问题。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明实施例提供的一种串口初始化装置的结构框图,应用于服务器,所述服务器包括串口,所述串口配置有缓冲区和对应的计数器,具体可以包括如下模块:
计数值获取模块301,用于获取所述串口对应的所述计数器的当前计数值;
计数值判断模块302,用于判断所述当前计数值是否小于预设计数值;
串口数据检测模块303,用于若所述当前计数值小于所述预设计数值,则检测所述串口的所述缓冲区中是否存在读取失败的数据,若所述缓冲区中不存在读取失败的数据,则将所述串口的波特率设置为预设波特率数值;
波特率检测模块304,用于若所述当前计数值大于或等于所述预设计数值,则检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值;
串口数据获取模305,用于根据所述预设波特率数值的波特率获取所述串口的所述缓冲区中的数据。
本发明公开了一种串口初始化装置,本发明实施例,可以在串口缓冲区中存在读取失败的数据的情况下,可以根据修改后的波特率,将缓冲区中的数据重新读取出来,以解决缓冲区中的数据可能被重置,导致数据丢失的问题。
可选地,所述串口数据检测模块303包括:
数值获取子模块,用于获取所述串口的波特位的数值;所述数值用于表示所述缓冲区的状态;
状态判断子模块,用于根据所述状态判断所述串口的所述缓冲区中是否存在读取失败的数据。
可选地,所述状态判断子模块包括:若所述串口的所述缓冲区的所述状态为空,则确定所述缓冲区中不存在读取失败的数据;若所述串口的所述缓冲区的所述状态不为空,则确定所述缓冲区中存在读取失败的数据。
可选地,所述数值获取子模块包括:
计数值更新单元,用于对所述计数器的所述当前计数值进行更新;
所述装置包括:
返回执行模块,用于若所述串口的所述缓冲区中存在读取失败的数据,则返回执行判断所述当前计数值是否小于预设计数值的步骤。
可选地,所述波特率检测模块304包括:
第一波特率判断子模块,用于判断所述串口是否设置了所述波特率;
波特率设置子模块,用于若所述串口未设置所述波特率,则将所述串口的所述波特率设置为所述预设波特率数值。
可选地,所述波特率检测模块304包括:
第二波特率判断子模块,用于若所述串口设置了所述波特率,判断所述波特率与所述预设波特率数值是否一致,若所述波特率与所述预设波特率数值不一致,则将所述串口的所述波特率设置为所述预设波特率数值。
可选地,所述波特率检测模块304包括包括:
串口位数设置子模块,用于若所述波特率与所述预设波特率数值一致,则将所述串口的数据位、和或停止位、和或校验位设置为预设数值。
本发明公开了一种串口初始化装置,本发明实施例,可以在串口缓冲区中存在读取失败的数据的情况下,可以根据修改后的波特率,将缓冲区中的数据重新读取出来,以解决缓冲区中的数据可能被重置,导致数据丢失的问题。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图5,示出了本发明实施例提供的一种电子设备50,包括:
包括处理器501、存储器502及存储在所述存储器上并能够在所述处理器上运行的计算机程序5021,该计算机程序5021被处理器执行时实现上述数据管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
参照图6,示出了本发明实施例提供的一种计算机可读存储介质60,计算机可读存储介质上存储计算机程序601,计算机程序601被处理器执行时实现上述数据管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种串口初始化方法、一种串口初始化装置、一种电子设备和一种储存介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种串口初始化方法,其特征在于,应用于服务器,所述服务器包括串口,所述串口配置有缓冲区和对应的计数器,所述方法包括:
获取所述串口对应的所述计数器的当前计数值;
判断所述当前计数值是否小于预设计数值;
若所述当前计数值小于所述预设计数值,则检测所述串口的所述缓冲区中是否存在读取失败的数据,若所述缓冲区中不存在读取失败的数据,则将所述串口的波特率设置为预设波特率数值;
若所述当前计数值大于或等于所述预设计数值,则检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值;
根据所述预设波特率数值的波特率获取所述串口的所述缓冲区中的数据。
2.根据权利要求1所述的方法,其特征在于,所述检测所述串口的所述缓冲区中是否存在读取失败的数据,包括:
获取所述串口的波特位的数值;所述数值用于表示所述缓冲区的状态;
根据所述状态判断所述串口的所述缓冲区中是否存在读取失败的数据。
3.根据权利要求2所述的方法,其特征在于,所述根据所述状态判断所述串口的所述缓冲区中是否存在读取失败的数据,包括:
若所述串口的所述缓冲区的所述状态为空,则确定所述缓冲区中不存在读取失败的数据;
若所述串口的所述缓冲区的所述状态不为空,则确定所述缓冲区中存在读取失败的数据。
4.根据权利要求3所述的方法,其特征在于,所述获取所述串口的波特位的数值之后,还包括:
对所述计数器的所述当前计数值进行更新;
所述方法还包括:
若所述串口的所述缓冲区中存在读取失败的数据,则返回执行判断所述当前计数值是否小于预设计数值的步骤。
5.根据权利要求1所述的方法,其特征在于,所述检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值,包括:
判断所述串口是否设置了所述波特率;
若所述串口未设置所述波特率,则将所述串口的所述波特率设置为所述预设波特率数值。
6.根据权利要求5所述的方法,其特征在于,所述检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值,还包括:
若所述串口设置了所述波特率,判断所述波特率与所述预设波特率数值是否一致,若所述波特率与所述预设波特率数值不一致,则将所述串口的所述波特率设置为所述预设波特率数值。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述波特率与所述预设波特率数值一致,则将所述串口的数据位、和或停止位、和或校验位设置为预设数值。
8.一种串口初始化装置,其特征在于,应用于服务器,所述服务器包括串口,所述串口配置有缓冲区和对应的计数器,所述装置包括:
计数值获取模块,用于获取所述串口对应的所述计数器的当前计数值;
计数值判断模块,用于判断所述当前计数值是否小于预设计数值;
串口数据检测模块,用于若所述当前计数值小于所述预设计数值,则检测所述串口的所述缓冲区中是否存在读取失败的数据,若所述缓冲区中不存在读取失败的数据,则将所述串口的波特率设置为预设波特率数值;
波特率检测模块,用于若所述当前计数值大于或等于所述预设计数值,则检测所述串口的所述波特率是否为所述预设波特率数值,若所述波特率不为所述预设波特率数值,则将所述串口的所述波特率设置为所述预设波特率数值;
串口数据获取模块,用于根据所述预设波特率数值的波特率获取所述串口的所述缓冲区中的数据。
9.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7中任一项所述的串口初始化方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的串口初始化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310091671.2A CN116521435A (zh) | 2023-02-09 | 2023-02-09 | 一种串口初始化方法、装置、电子设备、及储存介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310091671.2A CN116521435A (zh) | 2023-02-09 | 2023-02-09 | 一种串口初始化方法、装置、电子设备、及储存介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116521435A true CN116521435A (zh) | 2023-08-01 |
Family
ID=87391068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310091671.2A Pending CN116521435A (zh) | 2023-02-09 | 2023-02-09 | 一种串口初始化方法、装置、电子设备、及储存介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521435A (zh) |
-
2023
- 2023-02-09 CN CN202310091671.2A patent/CN116521435A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766236B (zh) | 测试任务自动化管理方法、装置、设备及存储介质 | |
CN111104272B (zh) | 一种基于rx和tx的can总线控制器测试方法 | |
CN110941218A (zh) | 一种can总线控制器测试方法 | |
US8843800B2 (en) | Semiconductor integrated circuit | |
CN103530215B (zh) | 一种内部集成电路主机的自检方法、装置及主机 | |
CN112445490A (zh) | 文件序列处理方法、装置、终端设备及存储介质 | |
CN112817883A (zh) | 接口平台的适配方法、设备、系统及计算机可读存储介质 | |
US6539338B1 (en) | Self-diagnostic testing of a network interface adapter | |
CN116521435A (zh) | 一种串口初始化方法、装置、电子设备、及储存介质 | |
CN107678917B (zh) | 测试机自动化管理方法、装置、设备及存储介质 | |
CN111611186B (zh) | 一种嵌入式芯片中传输控制方法和装置 | |
US8554966B2 (en) | Method for data exchange | |
WO2010050957A1 (en) | Bit inversion for communication interface | |
CN116010158A (zh) | 配置寄存器的校验装置、校验系统和芯片设备 | |
CN111930582B (zh) | 系统管理总线检测平台、处理器及系统管理总线检测方法 | |
CN115422099A (zh) | 一种通信信息发送方法、装置、电子设备及存储介质 | |
CN111914128A (zh) | 关联用户的确定方法、装置、电子设备及可读存储介质 | |
CN110492979B (zh) | 一种增量数据传输方法、装置、从机及存储介质 | |
CN116341011B (zh) | 一种检测系统及方法 | |
CN219351748U (zh) | 一种ble生产检测装置 | |
CN117519113A (zh) | 车载故障诊断系统的可靠性测试用例设计方法及装置 | |
TWI757606B (zh) | 伺服器裝置及其基板管理控制器與可程式邏輯單元之間的通訊協定方法 | |
CN107239363A (zh) | 一种ecc信息上报方法及系统 | |
CN108320031B (zh) | 一种线缆管理的方法及测试设备 | |
CN109101359B (zh) | 设备、设备部件间信息传输方法、模块及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |