当前位置:装修公司 >文章页

串口数据传输协议用的哪几种处理方法有哪些

来源:南充装修装饰网 浏览数:27次查看 发布时间:2025-07-13 03:53:24
简介:关于串口数据传输协议用的哪几种处理方法有哪些的相关装修疑问,相信很多朋友对此并不是非常清楚,为了帮助大家更好的了解相关装修知识要点,小编特此为大家整理出如下讲解内容,希望下面的装修内容对大家有所帮助!
如果有更好的建议或者想看更多关于装修问答怎么样到底好不好,可以多多关注南充装修装饰网。

《来自吴佩杉的回答:》

我们知道串口的协议数据一般包括帧头地址功能码校验码数据帧尾等等。请问,平时你是怎么处理串口协议的?我使用了两种方法。第三种方法已经从别人那里听说过,但我不知道如何实现它。首先是加班判断。其思想是保存数据并在接收到串行端口数据后分配一个变量,然后该变量的值将在计时器中减少。如果变量值减小到零,另一方的数据传输完成,从而判断接收完成。下一步是在主程序中处理串口数据。这种方法现在基本上不用了。二是在接收中断时逐步判断。只有当第一级数据判断正确时,才能进行接收。最后,判断校验码和帧尾。只有当整个过程的数据是正确的,才能确定数据接收是完整的。此时,标志位被置位,相应的程序通过主程序中的该标志位被执行。现在我一直在使用这种方法,但它很容易有一个限制,即只能处理一帧数据,也就是说,在另一方发送一帧数据后,下一帧数据将每隔一段时间(例如10毫秒)发送一次。如果两帧或更多帧数据一起发送,第二种处理方法将产生错误。第三个:我也听到人们说它可以解决第二个一次只能接收一帧数据的问题。我不清楚具体的实现思路,只能单独简单描述一下。第三种方法也是我发帖和咨询的目的。这种处理方法是打开一个相对较大的数组来存储接收到的数据。接收程序只接收数据。如果接收到的数据到达数组的末尾,下一个接收到的数据将从数组头中存储,即先前存储的数据将被覆盖。在主程序中,连续扫描存储在阵列中的数据,并搜索阵列中的功能协议。每个协议都是从数组中搜索的,并且每一个周期都要搜索一次。我的问题是我怀疑我犯了一个错误。在这种情况下,仅搜索协议就要花费大量的CPU时间,这似乎不现实。

《来自雷成礼的回答:》

1:第一种方法主要适用于变字长帧接收,但它的缺点是占用一个定时器(当两个字节之间的间隔超过4个字节时,一个帧被认为已经完全传输);2.如果数据帧是固定字长的,那么你最好使用第二种方法。第三种方法实际上是上述两种方法的扩展。它主要适用于通信速率繁忙的情况。您可以用多个变量记录每帧的字长,并循环存储数据。如果内部内存足够大,您可以使用多缓存阵列状态机来处理它。

南充装修装饰网提供南充装修公司排名与装饰公司排名,让您轻松找到靠谱的装修公司及装修效果图。网站免费发布南充装修招标,找优质家装、工装公司就到南充装修网!本文主要介绍了关于串口数据传输协议用的哪几种处理方法有哪些的详细装修介绍和相关装修说明,装修问答栏目还介绍了装修行业好不好及怎么样的问题,关注装修问答更多栏目内容,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解装修问答怎么挑选选哪个的要点,是您装修问答装修参考的小助手。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://www.dajiafc.com/article/248304.html

点赞 890收藏 98
装修要花多少钱?
3份精准装修报价PK知底价!
装修效果图
  • 友情链接
  • 装修美图
  • 热门公司
  • 热门攻略
  • 热门专题
  • 热门城市
  • 附近城市

关于我们 | 联系我们 | 帮助中心 | 意见反馈 | 商务合作 | 在线招聘

免责声明:本网站部分内容由用户自行上传,如权利人发现存在误传其作品情形,请及时与本站联系。© 2018 www.dajiafc.com 大家装修网网和设计师社区 保留所有权利

Copyright 2010-2020 zx123.cn,大家装修网装修平台 — 大家装修网科技有限公司版本所有,并保留所有权利。
免费热线:4000-000-000 / 0571-00000000 ICP备案证书号:蜀ICP备12015828号 手机版 | 电脑版

串口数据传输协议用的哪几种处理方法有哪些

作者:南充装修装饰网2020-10-23 21:29:5627+关注

《来自吴佩杉的回答:》

我们知道串口的协议数据一般包括帧头地址功能码校验码数据帧尾等等。请问,平时你是怎么处理串口协议的?我使用了两种方法。第三种方法已经从别人那里听说过,但我不知道如何实现它。首先是加班判断。其思想是保存数据并在接收到串行端口数据后分配一个变量,然后该变量的值将在计时器中减少。如果变量值减小到零,另一方的数据传输完成,从而判断接收完成。下一步是在主程序中处理串口数据。这种方法现在基本上不用了。二是在接收中断时逐步判断。只有当第一级数据判断正确时,才能进行接收。最后,判断校验码和帧尾。只有当整个过程的数据是正确的,才能确定数据接收是完整的。此时,标志位被置位,相应的程序通过主程序中的该标志位被执行。现在我一直在使用这种方法,但它很容易有一个限制,即只能处理一帧数据,也就是说,在另一方发送一帧数据后,下一帧数据将每隔一段时间(例如10毫秒)发送一次。如果两帧或更多帧数据一起发送,第二种处理方法将产生错误。第三个:我也听到人们说它可以解决第二个一次只能接收一帧数据的问题。我不清楚具体的实现思路,只能单独简单描述一下。第三种方法也是我发帖和咨询的目的。这种处理方法是打开一个相对较大的数组来存储接收到的数据。接收程序只接收数据。如果接收到的数据到达数组的末尾,下一个接收到的数据将从数组头中存储,即先前存储的数据将被覆盖。在主程序中,连续扫描存储在阵列中的数据,并搜索阵列中的功能协议。每个协议都是从数组中搜索的,并且每一个周期都要搜索一次。我的问题是我怀疑我犯了一个错误。在这种情况下,仅搜索协议就要花费大量的CPU时间,这似乎不现实。

《来自雷成礼的回答:》

1:第一种方法主要适用于变字长帧接收,但它的缺点是占用一个定时器(当两个字节之间的间隔超过4个字节时,一个帧被认为已经完全传输);2.如果数据帧是固定字长的,那么你最好使用第二种方法。第三种方法实际上是上述两种方法的扩展。它主要适用于通信速率繁忙的情况。您可以用多个变量记录每帧的字长,并循环存储数据。如果内部内存足够大,您可以使用多缓存阵列状态机来处理它。

不感兴趣
杭州装修要花多少钱?

城市合伙人 | 商家入驻 | 关于我们 | 在线招聘

装修咨询热线:4000--00-000

ICP备案证书号:蜀ICP备12015828号

触屏版 | 电脑版