• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

串口函数中,crc是干啥的,

huihui163 2017-11-27 浏览量:1759

1.png

串口中CRC这是怎么回事

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 用来做奇偶校验的,在串口通讯中通常使用8N1,代表8位数据 没有(none)校验,1个停止位。

    当这个N选择奇校验或者偶校验的时候,就需要这个CRC了,将前面8位数据相加,看这个和数是奇数还是偶数来确认CRC位的值,达到了校验前面接收的8个字节是否正确的目的,如果正确接受,不正确则放弃或者重发。

    • 发布于 2017-11-27
    • 举报
    • 评论 1
    • 0
    • 0
huihui163 回复了 赤心木zqw:我是看不懂了,检验时才需要CRC 回复

其他答案 数量:17
  • 是用来校验的,有时候串口传输数据可能出现对不上的情况,就用它来验证
    • 发布于2017-11-27
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :https://www.nxp.com/docs/en/fact-sheet/S12ZVCFS.pdf 回复

  • 用来校验的,

    看下面链接,希望对你有用

    http://blog.sina.com.cn/s/blog_67b729700100no1t.html​

    • 发布于2017-11-27
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :型号: CES-0202MC 厂牌: Copal Electronics 回复

  • 校验数据传输是否正确
    • 发布于2017-11-27
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :这颗料已经停产,能查到的资料都是型号中没有B的,尾缀B的含义建议问一下供应商 回复

  • 串口参数在设置时可以设置数据为,停止位,校验位,校验位可以校验数据在传输过程中是否出现错误,通用使用奇校验或者偶校验。
    • 发布于2017-11-27
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :常开 回复

  • 校验值,确保在串口传输过程中数据没有被改变。
    • 发布于2017-11-27
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :各个平台及原厂都没有查到尾缀具体代表什么,建议问一下供应商 回复

  • CRC是做冗余校验的,一般在报文 的末尾,为整个报文或报文一部分的校验值,用于判断焦文完整性的。
    • 发布于2017-11-27
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :附件实物图参考一下,具体以收到的实物为准 回复

电子老工程师 回复了  :没有规格书,详情见官网衔接https://ecat.aptiv.com/product/15363992 回复

  • calcCRC函数是对接收数据进行CRC校检。

    addCRC函数是对发送数据添加CRC校检。

    CRC校检是根据一整个帧的数据的每一个位进行CRC计算得到一个校检值。

    这样双方通讯的时候接收端根据数据计算CRC校检值和发送过来的CRC进行比较,如果不一致则认为数据包错误。

    我记得ModBus文档里面有一个简单的CRC算法,并给出了例程,可以参考一下。

    • 发布于2017-11-28
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :封装: SOP-4_P2.54 品牌: EVERLIGHT(台湾亿光) 型号: EL357N(C)(TA)-G 没有参数完全一样的,需确认 回复

  • CRC即循环冗余校验码(Cyclic Redundancy Check),是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。

    一般是附加值报文的末尾,用于为整个报文或报文的一部分提供检测值。

    简单说来就是,有一段信息,在发送端传递这个信息,并传递一个CRC值(根据发送数据和计算规则计算出的),接收端接收信息和CRC值,接收端把接收到的信息按同样规则计算一个CRC值,如果和传送端发过来的CRC值一致,则认为接收到的数据是完整的。


    不过头文件中addCRC感觉有点问题啊,居然没有参数?用全局变量传递数据?这个可能不是太好。


    • 发布于2017-11-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 通讯的过程可能存在丢包,丢字节等问题,增加校验是确保你接收的数据帧是完整的,你才放心使用。

    CRC的方式也有很多,参看下http://blog.51cto.com/winda/1063951,了解下。

    • 发布于2017-11-28
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :客户提供的型号电流是1A的不是30A,根据客户提供的的参数配型,1000V/30A这个参数,没有SOD123封装的, 回复

  • 这个calcCRC函数接收一个字符串指针,和一个表示长度的8位数据,会输出一个数

    把输出的数与接收到的用于校验的数比较

    如果不相等,就跳过

    如果相等,进入下一步操作,数据解析


    • 发布于2017-11-28
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :Y-FCT-200 可不可以让客户多提供一些参数, 回复

  • 校验位,接收方判断校验值,检测数据传输是否正确
    • 发布于2017-11-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 校验的,数据错误校验,实际应用中,线路中存在干扰,检验数据的对错。
    • 发布于2017-11-28
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :原厂型号错误,请确认正确型号。 回复

  • CRC用于判断接收过来的数据是否有误,但是不能修正错误。

    • 发布于2017-11-28
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :A:无卤,符合ROHS TMA1:代表包装 回复

  • CRC进行传输数据包的校检。发送端和接收端计算的CRC对的上,才是正确的数据包、
    • 发布于2017-11-30
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :通过手工测试,建议客户做静电防护,后续会降低不良率的 回复

  • 冗余校验,防止数据出错的。如果有错,即CRC不对,那么就丢掉这一帧数据,如果正确就使用这一帧数据。
    • 发布于2017-12-01
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :T5含义资料没有具体说明 回复

相关问题

问题达人换一批

串口函数中,crc是干啥的,