一种串口异步通信接收数据包的编程方法与流程

文档序号:32455057发布日期:2022-12-07 02:41阅读:152来源:国知局
一种串口异步通信接收数据包的编程方法与流程

1.本发明涉及通讯工具技术领域,具体为一种串口异步通信接收数据包的编程方法。


背景技术:

2.在以前mcu串口接收数据包的编程方法中,一般采用中断接收数据的方法,当接收到一个字节的数据时,mcu串口中断一次,mcu会判断收到的此字节数据是不是规定的协议包数据,如果是,继续接收串口中断数据,直到数据全部接受完毕,再判断数据包的完整性和准确性。实际上这种在串口中断程序中判断数据包的编程,极大的浪费了mcu资源,降低了mcu对其他事件的响应速度。我们知道:mcu的某种中断处理时间越长,对主程序或其他中断处理来说,响应的及时性就会变慢。所以我们要求,尽可能的减少中断处理时间,串口接收数据中断也如此,因此迫切的需要一种串口异步通信接收数据包的编程方法来解决上述不足之处。


技术实现要素:

3.针对现有技术的不足,本发明提供了一种串口异步通信接收数据包的编程方法,解决在串口中断程序中判断数据包的编程,极大的浪费了mcu资源,降低了mcu对其他事件的响应速度。我们知道:mcu的某种中断处理时间越长,对主程序或其他中断处理来说,响应的及时性就会变慢的问题。
4.本发明提供如下技术方案:一种串口异步通信接收数据包的编程方法,该编程方法通过将串口中断作为一个分支,独立接收数据,每个字节数据中断一次,且主程序作为一个分支,将接收的完整数据包进行判断,对数据包进行解析。
5.优选的,该编程方法包括以下步骤:
6.步骤一、对于接收数据方,利用数据包之间的时间间隔,且两个数据包的最短时间间隔为10ms;
7.步骤二、在串口接收到一个字节数据时,启动一个10ms超时定时器,每收到一个串口字节数据时,就启动这个超时定时器,直到没有下一个字节数据,超时生效,这样可以立即告诉主程序,一个完整的数据包接收完毕;
8.步骤三、主程序立即对此数据包进行解析,判断是否是规定的协议包,并进行处理,如果是非法数据,则丢弃。
9.优选的,在mcu串口异步通信方法中,串口进行中断接收数据时,每接收到一字节数据时,启动超时定时器,直到定时器超时,数据包被完整接收,并告知主程序,从而快速对数据包进行响应。
10.优选的,在mcu串口通信中,接收数据时,将数据包底层驱动和应用层分开。
11.优选的,该编程方法适用于stm32f103c8t6微处理器。
12.与现有技术对比,本发明具备以下有益效果:本发明创造的有益效果是,在mcu串
口异步通信方法中,串口进行中断接收数据时,每接收到一字节数据时,启动超时定时器,直到定时器超时,数据包被完整接收,并告知主程序,从而快速对数据包进行响应。
附图说明
13.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显:
14.图1为本发明串口异步通信接收数据包的编程方法流程图;
15.图2为本发明主程序流程图;
具体实施方式
16.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制,为了更好地说明本发明的具体实施方式,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸,对本领域技术人员来说,附图中某些公知结构、部件及其说明可能省略是可以理解的,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如可以是固定连接,可以是活动连接,也可以是可拆卸连接,或一体地连接,可以是机械连接,也可以是电连接,可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。下面将参考附图并结合实施例来详细说明本技术。
18.请参阅图1-2,一种串口异步通信接收数据包的编程方法,该编程方法通过将串口中断作为一个分支,独立接收数据,每个字节数据中断一次,且主程序作为一个分支,将接收的完整数据包进行判断,对数据包进行解析。
19.该编程方法包括以下步骤:
20.步骤一、对于接收数据方,利用数据包之间的时间间隔,且两个数据包的最短时间间隔为10ms;
21.步骤二、在串口接收到一个字节数据时,启动一个10ms超时定时器,每收到一个串口字节数据时,就启动这个超时定时器,直到没有下一个字节数据,超时生效,这样可以立即告诉主程序,一个完整的数据包接收完毕;
22.步骤三、主程序立即对此数据包进行解析,判断是否是规定的协议包,并进行处理,如果是非法数据,则丢弃。
23.优选的,在mcu串口异步通信方法中,串口进行中断接收数据时,每接收到一字节数据时,启动超时定时器,直到定时器超时,数据包被完整接收,并告知主程序,从而快速对数据包进行响应。
24.在mcu串口通信中,接收数据时,将数据包底层驱动和应用层分开。
25.该编程方法适用于stm32f103c8t6微处理器。
26.需要说明的是,本发明的工作原理:在以前mcu串口接收数据包的编程方法中,一
般采用中断接收数据的方法,当接收到一个字节的数据时,mcu串口中断一次,mcu会判断收到的此字节数据是不是规定的协议包数据,如果是,继续接收串口中断数据,直到数据全部接受完毕,再判断数据包的完整性和准确性。实际上这种在串口中断程序中判断数据包的编程,极大的浪费了mcu资源,降低了mcu对其他事件的响应速度。我们知道:mcu的某种中断处理时间越长,对主程序或其他中断处理来说,响应的及时性就会变慢。所以我们要求,尽可能的减少中断处理时间,串口接收数据中断也如此。
27.在mcu串口异步通信方法中,串口进行中断接收数据时,每接收到一字节数据时,启动超时定时器,直到定时器超时,数据包被完整接收,并告知主程序,从而快速对数据包进行响应;
28.在mcu串口通信中,接收数据时,将数据包底层驱动和应用层分开,逻辑清晰,能快速准确的接收数据,提高对数据的响应速度。
29.本说明中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
30.所需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
31.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1