提高串口数据接收正确性的方法和装置的制造方法_3

文档序号:9687387阅读:来源:国知局
数变量的初值以及预设值的差值得到),若在规定次数内检测到UART中断标记,则表明数据传输未完成,继续执行前面的接收数据的过程,若在规定次数内没有检测到UART中断标记,则表明数据传输已经完成,退出UART中断处理函数。若没有上述环节,有可能在数据未接收完毕时就退出了 UART中断处理函数,此时有新的数据传来后,还需要再次进入UART中断处理函数。通过上述方法可以进一步减少进出UART中断处理函数的次数
[0087]故本发明的提高串口数据接收正确性的方法进一步降低了微控制器的工作负荷,更加不会对微控制器当前进行的操作造成不利影响,进一步提高了软件的运行速度和运行效率,进一步提高了数据接收的正确性,以及进一步降低了系统的功耗。
[0088]另一方面,本发明还提供一种提高串口数据接收正确性的装置,如图7所示,包括:
[0089]开始模块11,用于进入UART中断处理函数;
[0090]读取模块12,用于读取UART缓存,将接收到的数据保存到内存中;
[0091]清除模块13,用于清除UART中断标记;
[0092]第一检测模块H,用于检测UART中断标记,若检测到UART中断标记,则转至读取模块12。
[0093]与上述提高串口数据接收正确性的方法对应的,本发明的提高串口数据接收正确性的装置降低了微控制器的工作负荷,不会对微控制器当前进行的操作造成不利影响,提高了软件的运行速度和运行效率,提高了数据接收的正确性,以及降低了系统的功耗。
[0094]作为本发明的提高串口数据接收正确性的装置的一种改进,如图8所示,第一检测模块14进一步用于:检测UART中断标记,若检测到UART中断标记,则转至读取模块12,否则转至定时模块21 ;
[0095]该装置还包括:
[0096]定时模块21,用于启动定时器,设置定时时间;
[0097]第一判断模块22,用于判断定时时间是否到,若是,转至第二检测模块23,否则,继续执行判断模块22 ;
[0098]第二检测模块23,用于检测UART中断标记,若检测到UART中断标记,则转至读取模块12,否则退出UART中断处理函数。
[0099]与上述提高串口数据接收正确性的方法对应的,本发明的提高串口数据接收正确性的装置进一步降低了微控制器的工作负荷,更加不会对微控制器当前进行的操作造成不利影响,进一步提高了软件的运行速度和运行效率,进一步提高了数据接收的正确性,以及进一步降低了系统的功耗。
[0100]上述定时时间为串口接收一帧数据的时间的倍数。
[0101]这样设置定时时间既可以保证在数据未接收完毕时就退出了 UART中断处理函数的情况不会发生,又不会使微处理器等待时间过长而浪费时间,提高了微处理器的工作效率。
[0102]优选的,定时时间可以为10_500ms。
[0103]作为本发明的提高串口数据接收正确性的装置的另一种改进,如图9所示,第一检测模块14进一步用于:检测UART中断标记,若检测到UART中断标记,则转至读取模块12,否则转至设置模块51 ;
[0104]该装置还包括:
[0105]设置模块51,用于设置计数变量的初值以及预设值;
[0106]第三检测模块52,用于检测UART中断标记,若检测到UART中断标记,则转至读取模块12,否则转至计数模块53 ;
[0107]计数模块53,用于使计数变量自加或自减;
[0108]第二判断模块54,用于判断计数变量的值是否等于预设值,若是,退出UART中断处理函数,否则,转至第三检测模块52。
[0109]与上述提高串口数据接收正确性的方法对应的,本发明的提高串口数据接收正确性的装置进一步降低了微控制器的工作负荷,更加不会对微控制器当前进行的操作造成不利影响,进一步提高了软件的运行速度和运行效率,进一步提高了数据接收的正确性,以及进一步降低了系统的功耗。
[0110]以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种提高串口数据接收正确性的方法,其特征在于,包括: 步骤S101:进入UART中断处理函数; 步骤S102:读取UART缓存,将接收到的数据保存到内存中; 步骤S103:清除UART中断标记; 步骤S104:检测UART中断标记,若检测到UART中断标记,则转至步骤S102。2.根据权利要求1所述的提高串口数据接收正确性的方法,其特征在于,所述步骤S104进一步为:检测UART中断标记,若检测到UART中断标记,则转至步骤S102,否则转至步骤S201 ; 所述方法还包括: 步骤S201:启动定时器,设置定时时间; 步骤S202:判断定时时间是否到,若是,转至步骤S203,否则,继续执行步骤S102 ; 步骤S203:检测UART中断标记,若检测到UART中断标记,则转至步骤S102,否则退出UART中断处理函数。3.根据权利要求2所述的提高串口数据接收正确性的方法,其特征在于,所述定时时间为串口接收一帧数据的时间的倍数。4.根据权利要求3所述的提高串口数据接收正确性的方法,其特征在于,所述定时时间为 10-500ms。5.根据权利要求1所述的提高串口数据接收正确性的方法,其特征在于,所述步骤S104进一步为:检测UART中断标记,若检测到UART中断标记,则转至步骤S102,否则转至步骤S501 ; 所述方法还包括: 步骤S501:设置计数变量的初值以及预设值; 步骤S502:检测UART中断标记,若检测到UART中断标记,则转至步骤S102,否则转至步骤S503 ; 步骤S503:使计数变量自加或自减; 步骤S504:判断计数变量的值是否等于预设值,若是,退出UART中断处理函数,否则,转至步骤S502。6.一种提高串口数据接收正确性的装置,其特征在于,包括: 开始模块,用于进入UART中断处理函数; 读取模块,用于读取UART缓存,将接收到的数据保存到内存中; 清除模块,用于清除UART中断标记; 第一检测模块,用于检测UART中断标记,若检测到UART中断标记,则转至读取模块。7.根据权利要求6所述的提高串口数据接收正确性的装置,其特征在于,所述第一检测模块进一步用于:检测UART中断标记,若检测到UART中断标记,则转至读取模块,否则转至定时模块; 所述装置还包括: 定时模块,用于启动定时器,设置定时时间; 第一判断模块,用于判断定时时间是否到,若是,转至第二检测模块,否则,继续执行判断模块; 第二检测模块,用于检测UART中断标记,若检测到UART中断标记,则转至读取模块,否则退出UART中断处理函数。8.根据权利要求7所述的提高串口数据接收正确性的装置,其特征在于,所述定时时间为串口接收一帧数据的时间的倍数。9.根据权利要求8所述的提高串口数据接收正确性的装置,其特征在于,所述定时时间为 10-500ms。10.根据权利要求6所述的提高串口数据接收正确性的装置,其特征在于,所述第一检测模块进一步用于:检测UART中断标记,若检测到UART中断标记,则转至读取模块,否则转至设置模块; 所述装置还包括: 设置模块,用于设置计数变量的初值以及预设值; 第三检测模块,用于检测UART中断标记,若检测到UART中断标记,则转至读取模块,否则转至计数模块; 计数模块,用于使计数变量自加或自减; 第二判断模块,用于判断计数变量的值是否等于预设值,若是,退出UART中断处理函数,否则,转至第三检测模块。
【专利摘要】本发明公开了一种提高串口数据接收正确性的方法和装置,属于数据传输领域。所述方法包括步骤S101:进入UART中断处理函数;步骤S102:读取UART缓存,将接收到的数据保存到内存中;步骤S103:清除UART中断标记;步骤S104:检测UART中断标记,若检测到UART中断标记,则转至步骤S102。与现有技术相比,本发明的提高串口数据接收正确性的方法降低了微控制器的工作负荷,不会对微控制器当前进行的操作造成不利影响,提高了软件的运行速度和运行效率,提高了数据接收的正确性,以及降低了系统的功耗。
【IPC分类】G06F13/42
【公开号】CN105446925
【申请号】CN201510335257
【发明人】贾天亮
【申请人】北京天诚盛业科技有限公司
【公开日】2016年3月30日
【申请日】2015年6月16日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1