当前位置: 首页 > news >正文

龙华网站建设招商公路机电工程建设网站

龙华网站建设招商,公路机电工程建设网站,wordpress文字黑提,网站建设费一般多少钱一、CRC的背景知识 1、什么是CRC (1)CRC#xff08;Cyclic Redundancy Check#xff09;#xff0c;循环冗余校验 (2)什么是校验#xff0c;为什么需要校验#xff1a;数据传输#xff0c;数据存储过程中需要使用到的 (3)什么是冗余#xff1a;表示比实际上要传输的数据…一、CRC的背景知识 1、什么是CRC (1)CRCCyclic Redundancy Check循环冗余校验 (2)什么是校验为什么需要校验数据传输数据存储过程中需要使用到的 (3)什么是冗余表示比实际上要传输的数据还要多 (4)校验实现的关键冗余少、运算少、识错纠错能力强有些算法只能识别错误但是无法纠错 2、CRC原理介绍 (1)N,K码NK数据信息R校验码K位信息码R位校验码N位总信息长度 (2)CRC多项式由K位信息码计算得到R位校验码的算法以移位左移右移和mod2取余为主的叠加 3、CRC的实现方法软件OR硬件 (1)纯软件实现靠CPU的运算能力硬算。好处纯软件坏处效率低因为占用CPU资源 (2)纯软件实现查表确定。好处纯软件效率高坏处死板且占内存在表中查找相当于在内存中进行搜索 (3)硬件实现靠SoC内置的CRC运算模块实现内部外设类似于集成显卡STM32就是使用内置的CRC (4)硬件实现靠SoC外置的运算模块实现类似于独立显卡没必要。 4、CRC使用场景 主要用于数据传输和存储过程中随机引起的错误。但是CRC只能检验错误但是无法纠错。 二、STM32使用CubeMX 1.CRC生成多项式计算 1.CRC16 1CRC16表示最高位应该是2的16次方 2因为是16所以最高位16的系数应该是1不能是0 30-15位所以最高位16的系数不计算进去 41*x^16不计算进去1*x^151*x^21*x^01000 0000 0000 01018005 2.配置 1.配置CRC 2.使用串口 3.HAL_CRC_Calculate  VS  HAL_CRC_Accumulate Calculate和accumulate两者不同 calculate的计算与上一次的计算结果无关 accumulate的计算结果是从上一次的计算结果来的 如果你的计算是分成多次计算来实现则调用【HAL_CRC_Accumulate】如果算法是一次性实现完成则调用【HAL_CRC_Calculate 】 4.使用串口添加串口相关的代码 在usart.c文件中添加 #ifdef __GNUC__//当前在Linux系统下#define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else//在windows下#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /*** brief Retargets the C library printf function to the USART.* param None* retval None*/ //PUTCHAR_PROTOTYPE 宏是一个用户在使用HAL库时可以自定义的宏 //用于实现 printf 函数的输出重定向。 PUTCHAR_PROTOTYPE //int fputc(int ch, FILE *f) {/* Place your implementation of fputc here *//* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */HAL_UART_Transmit(huart1, (uint8_t *)ch, 1, 0xFFFF);return ch; } 5.代码编写 1.使用HAL_CRC_Calculate /* USER CODE BEGIN PV */ uint32_t buf[]{0x11111111,0x22222222};//要发送的数据自己随便定义一个 //存放crc uint32_t crcValue0; /* USER CODE END PV */while (1){//调试printf(使用rcr成功);HAL_Delay(100);printf(CRC test\r\n);//使用crc算法将发送的值记录起来crcValueHAL_CRC_Calculate(hcrc,buf,sizeof(buf)/sizeof(buf[0]));printf(crcValue%x\r\n,crcValue);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */} 2.验证传输过程是否正确 CRC在线计算 (lddgo.net) 与串口输出的数值进行比较判断是否正确----结果正确 3.注意点 0和任何值异或原值不变 不同点 1结果异或值的不同 2数据反转不同
http://www.yutouwan.com/news/251772/

相关文章:

  • 手机端网站加盟WordPress adsen
  • 专门做产品排名的网站加盟营销型网站制作
  • 网站开发工程师中级高级公司网站维护主要做什么
  • asp源码自助建站京东企业官网
  • 公共事业管理专业教材建设研究 教学成果奖申报网站网页设计培训英文缩写
  • 百度站长资源平台建e室内设计网最近有什么活动
  • 阿里巴巴的网站建设与维护18款禁用网站app入口
  • 简单网站开发百度优化 几个网站内容一样
  • 登录网站显示系统维护怎么做招代理商的网站
  • 如何通过做网站和公众号盈利做彩票网站需要什么技术
  • 深圳市网站开发坂田附近学影视后期大概多少钱
  • 山东省安全双体系建设网站地址网站建设工具开源
  • 实验中心网站建设的调查问卷网站的建设步骤有哪些
  • 叙述网站建设的流程国外做giveaway的网站
  • 专业做鞋子的网站百度免费做网站吗
  • 宜兴网站开发福建八大员建设厅延续的网站
  • 西安 网站空间上海市工商局官网
  • 在合肥做网站前端月薪大概多少宁波网站推广哪家公司好
  • 做兼职的翻译网站吗璧山最新消息
  • 分类信息网站开发报价dedecms收费
  • 简历制作网站免费wordpress fly主题
  • qq人脸解冻自助网站网页美工怎么做
  • 帮人网站开发维护违法一流的购物网站建设
  • 住房和城乡建设部建造师网站兰州专业网站建设报价
  • 网页网站设计用什么软件it公司
  • 贵州网站建设工作室旅游网站的广告预算怎么做
  • 网站开发方向的工作北京高端企业网站
  • 凡客衬衫官方网站建设网站建设多少钱
  • 防城港网站设计公司世界军事
  • 网站的推广方法品牌营销相关理论