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

技术编号:35871985 阅读:52 留言:0更新日期:2022-12-07 11:07
本发明专利技术涉及USART串口通信的接收数据包编程方法技术领域,且公开了一种串口异步通信接收数据包的编程方法,该编程方法通过将串口中断作为一个分支,独立接收数据,每个字节数据中断一次,且主程序作为一个分支,将接收的完整数据包进行判断,对数据包进行解析,该编程方法包括以下步骤:对于接收数据方,利用数据包之间的时间间隔,且两个数据包的最短时间间隔为10ms;本发明专利技术所述的串口异步通信接收数据包的编程方法,Usart口接收数据时,将数据包底层驱动和应用层分开,逻辑清晰,能快速准确的接收数据,方便编程,提高MCU响应速度。提高MCU响应速度。提高MCU响应速度。

【技术实现步骤摘要】
一种串口异步通信接收数据包的编程方法


[0001]本专利技术涉及通讯工具
,具体为一种串口异步通信接收数据包的编程方法。

技术介绍

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

技术实现思路

[0003]针对现有技术的不足,本专利技术提供了一种串口异步通信接收数据包的编程方法,解决在串口中断程序中判断数据包的编程,极大的浪费了MCU资源,降低了MCU对其他事件的响应速度。我们知道:MCU的某种中断处理时间越长,对主程序或其他中断处理来说,响应的及时性就会变慢的问题。
[0004]本专利技术提供如下技术方案:一种串口异步通信接收数据包的编程方法,该编程方法通过将串口中断作为一个分支,独立接收数据,每个字节数据中断一次,且主程序作为一个分支,将接收的完整数据包进行判断,对数据包进行解析。
[0005]优选的,该编程方法包括以下步骤:
[0006]步骤一、对于接收数据方,利用数据包之间的时间间隔,且两个数据包的最短时间间隔为10ms;
[0007]步骤二、在串口接收到一个字节数据时,启动一个10ms超时定时器,每收到一个串口字节数据时,就启动这个超时定时器,直到没有下一个字节数据,超时生效,这样可以立即告诉主程序,一个完整的数据包接收完毕;
[0008]步骤三、主程序立即对此数据包进行解析,判断是否是规定的协议包,并进行处理,如果是非法数据,则丢弃。
[0009]优选的,在MCU串口异步通信方法中,串口进行中断接收数据时,每接收到一字节数据时,启动超时定时器,直到定时器超时,数据包被完整接收,并告知主程序,从而快速对数据包进行响应。
[0010]优选的,在MCU串口通信中,接收数据时,将数据包底层驱动和应用层分开。
[0011]优选的,该编程方法适用于STM32F103C8T6微处理器。
[0012]与现有技术对比,本专利技术具备以下有益效果:本专利技术创造的有益效果是,在MCU串
口异步通信方法中,串口进行中断接收数据时,每接收到一字节数据时,启动超时定时器,直到定时器超时,数据包被完整接收,并告知主程序,从而快速对数据包进行响应。
附图说明
[0013]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0014]图1为本专利技术串口异步通信接收数据包的编程方法流程图;
[0015]图2为本专利技术主程序流程图;
具体实施方式
[0016]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制,为了更好地说明本专利技术的具体实施方式,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸,对本领域技术人员来说,附图中某些公知结构、部件及其说明可能省略是可以理解的,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0017]在本专利技术的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如可以是固定连接,可以是活动连接,也可以是可拆卸连接,或一体地连接,可以是机械连接,也可以是电连接,可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本专利技术中的具体含义。下面将参考附图并结合实施例来详细说明本申请。
[0018]请参阅图1

2,一种串口异步通信接收数据包的编程方法,该编程方法通过将串口中断作为一个分支,独立接收数据,每个字节数据中断一次,且主程序作为一个分支,将接收的完整数据包进行判断,对数据包进行解析。
[0019]该编程方法包括以下步骤:
[0020]步骤一、对于接收数据方,利用数据包之间的时间间隔,且两个数据包的最短时间间隔为10ms;
[0021]步骤二、在串口接收到一个字节数据时,启动一个10ms超时定时器,每收到一个串口字节数据时,就启动这个超时定时器,直到没有下一个字节数据,超时生效,这样可以立即告诉主程序,一个完整的数据包接收完毕;
[0022]步骤三、主程序立即对此数据包进行解析,判断是否是规定的协议包,并进行处理,如果是非法数据,则丢弃。
[0023]优选的,在MCU串口异步通信方法中,串口进行中断接收数据时,每接收到一字节数据时,启动超时定时器,直到定时器超时,数据包被完整接收,并告知主程序,从而快速对数据包进行响应。
[0024]在MCU串口通信中,接收数据时,将数据包底层驱动和应用层分开。
[0025]该编程方法适用于STM32F103C8T6微处理器。
[0026]需要说明的是,本专利技术的工作原理:在以前MCU串口接收数据包的编程方法中,一
般采用中断接收数据的方法,当接收到一个字节的数据时,MCU串口中断一次,MCU会判断收到的此字节数据是不是规定的协议包数据,如果是,继续接收串口中断数据,直到数据全部接受完毕,再判断数据包的完整性和准确性。实际上这种在串口中断程序中判断数据包的编程,极大的浪费了MCU资源,降低了MCU对其他事件的响应速度。我们知道:MCU的某种中断处理时间越长,对主程序或其他中断处理来说,响应的及时性就会变慢。所以我们要求,尽可能的减少中断处理时间,串口接收数据中断也如此。
[0027]在MCU串口异步通信方法中,串口进行中断接收数据时,每接收到一字节数据时,启动超时定时器,直到定时器超时,数据包被完整接收,并告知主程序,从而快速对数据包进行响应;
[0028]在MCU串口通信中,接收数据时,将数据包底层驱动和应用层分开,逻辑清晰,能快速准确的接收数据,提高对数据的响应速度。
[0029]本说明中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
[0030]所需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种串口异步通信接收数据包的编程方法,其特征在于:该编程方法通过将串口中断作为一个分支,独立接收数据,每个字节数据中断一次,且主程序作为一个分支,将接收的完整数据包进行判断,对数据包进行解析。2.根据权利要求1所述的一种串口异步通信接收数据包的编程方法,其特征在于:该编程方法包括以下步骤:步骤一、对于接收数据方,利用数据包之间的时间间隔,且两个数据包的最短时间间隔为10ms;步骤二、在串口接收到一个字节数据时,启动一个10ms超时定时器,每收到一个串口字节数据时,就启动这个超时定时器,直到没有下一个字节数据,超时生效,这样可以立即告诉主程序,一个完整的数据包接收完毕;步骤三、主程序立...

【专利技术属性】
技术研发人员:吴斌
申请(专利权)人:哈勃智联科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1