《来自吴佩杉的回答:》
我们知道串口的协议数据一般包括帧头地址功能码校验码数据帧尾等等。请问,平时你是怎么处理串口协议的?我使用了两种方法。第三种方法已经从别人那里听说过,但我不知道如何实现它。首先是加班判断。其思想是保存数据并在接收到串行端口数据后分配一个变量,然后该变量的值将在计时器中减少。如果变量值减小到零,另一方的数据传输完成,从而判断接收完成。下一步是在主程序中处理串口数据。这种方法现在基本上不用了。二是在接收中断时逐步判断。只有当第一级数据判断正确时,才能进行接收。最后,判断校验码和帧尾。只有当整个过程的数据是正确的,才能确定数据接收是完整的。此时,标志位被置位,相应的程序通过主程序中的该标志位被执行。现在我一直在使用这种方法,但它很容易有一个限制,即只能处理一帧数据,也就是说,在另一方发送一帧数据后,下一帧数据将每隔一段时间(例如10毫秒)发送一次。如果两帧或更多帧数据一起发送,第二种处理方法将产生错误。第三个:我也听到人们说它可以解决第二个一次只能接收一帧数据的问题。我不清楚具体的实现思路,只能单独简单描述一下。第三种方法也是我发帖和咨询的目的。这种处理方法是打开一个相对较大的数组来存储接收到的数据。接收程序只接收数据。如果接收到的数据到达数组的末尾,下一个接收到的数据将从数组头中存储,即先前存储的数据将被覆盖。在主程序中,连续扫描存储在阵列中的数据,并搜索阵列中的功能协议。每个协议都是从数组中搜索的,并且每一个周期都要搜索一次。我的问题是我怀疑我犯了一个错误。在这种情况下,仅搜索协议就要花费大量的CPU时间,这似乎不现实。
《来自雷成礼的回答:》
1:第一种方法主要适用于变字长帧接收,但它的缺点是占用一个定时器(当两个字节之间的间隔超过4个字节时,一个帧被认为已经完全传输);2.如果数据帧是固定字长的,那么你最好使用第二种方法。第三种方法实际上是上述两种方法的扩展。它主要适用于通信速率繁忙的情况。您可以用多个变量记录每帧的字长,并循环存储数据。如果内部内存足够大,您可以使用多缓存阵列状态机来处理它。
上一篇:喝过的人感觉清肺茶有用吗
下一篇:凤仙花结构有谁了解
南充装修装饰网提供南充装修公司排名与装饰公司排名,让您轻松找到靠谱的装修公司及装修效果图。网站免费发布南充装修招标,找优质家装、工装公司就到南充装修网!本文主要介绍了关于串口数据传输协议用的哪几种处理方法有哪些的详细装修介绍和相关装修说明,装修问答栏目还介绍了装修行业好不好及怎么样的问题,关注装修问答更多栏目内容,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解装修问答怎么挑选选哪个的要点,是您装修问答装修参考的小助手。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://www.dajiafc.com/article/248304.html
《来自吴佩杉的回答:》
我们知道串口的协议数据一般包括帧头地址功能码校验码数据帧尾等等。请问,平时你是怎么处理串口协议的?我使用了两种方法。第三种方法已经从别人那里听说过,但我不知道如何实现它。首先是加班判断。其思想是保存数据并在接收到串行端口数据后分配一个变量,然后该变量的值将在计时器中减少。如果变量值减小到零,另一方的数据传输完成,从而判断接收完成。下一步是在主程序中处理串口数据。这种方法现在基本上不用了。二是在接收中断时逐步判断。只有当第一级数据判断正确时,才能进行接收。最后,判断校验码和帧尾。只有当整个过程的数据是正确的,才能确定数据接收是完整的。此时,标志位被置位,相应的程序通过主程序中的该标志位被执行。现在我一直在使用这种方法,但它很容易有一个限制,即只能处理一帧数据,也就是说,在另一方发送一帧数据后,下一帧数据将每隔一段时间(例如10毫秒)发送一次。如果两帧或更多帧数据一起发送,第二种处理方法将产生错误。第三个:我也听到人们说它可以解决第二个一次只能接收一帧数据的问题。我不清楚具体的实现思路,只能单独简单描述一下。第三种方法也是我发帖和咨询的目的。这种处理方法是打开一个相对较大的数组来存储接收到的数据。接收程序只接收数据。如果接收到的数据到达数组的末尾,下一个接收到的数据将从数组头中存储,即先前存储的数据将被覆盖。在主程序中,连续扫描存储在阵列中的数据,并搜索阵列中的功能协议。每个协议都是从数组中搜索的,并且每一个周期都要搜索一次。我的问题是我怀疑我犯了一个错误。在这种情况下,仅搜索协议就要花费大量的CPU时间,这似乎不现实。
《来自雷成礼的回答:》
1:第一种方法主要适用于变字长帧接收,但它的缺点是占用一个定时器(当两个字节之间的间隔超过4个字节时,一个帧被认为已经完全传输);2.如果数据帧是固定字长的,那么你最好使用第二种方法。第三种方法实际上是上述两种方法的扩展。它主要适用于通信速率繁忙的情况。您可以用多个变量记录每帧的字长,并循环存储数据。如果内部内存足够大,您可以使用多缓存阵列状态机来处理它。
如需了解更多相关内容请关注 杭州尚品装修网装饰。