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

做网站设计用什么软件最好网站如何做电脑和手机

做网站设计用什么软件最好,网站如何做电脑和手机,深圳开发网站建设哪家好,网络营销活动策划一、CRC的背景知识 1、什么是CRC (1)CRC(Cyclic Redundancy Check),循环冗余校验 (2)什么是校验,为什么需要校验:数据传输,数据存储过程中需要使用到的 (3)什么是冗余:表示比实际上要传输的数据…

一、CRC的背景知识

1、什么是CRC

(1)CRC(Cyclic Redundancy Check),循环冗余校验
(2)什么是校验,为什么需要校验:数据传输,数据存储过程中需要使用到的
(3)什么是冗余:表示比实际上要传输的数据还要多
(4)校验实现的关键:冗余少、运算少、识错纠错能力强(有些算法只能识别错误但是无法纠错)

2、CRC原理介绍

(1)(N,K)码:N=K(数据信息)+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

1)CRC16表示最高位应该是2的16次方

2)因为是16,所以最高位16的系数应该是1,不能是0

3)0-15位,所以最高位16的系数不计算进去

4)1*x^16(不计算进去)+1*x^15+1*x^2+1*x^0=1000 0000 0000 0101=8005

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 crcValue=0;
/* USER CODE END PV */while (1){//调试printf("使用rcr成功");HAL_Delay(100);printf("CRC test\r\n");//使用crc算法将发送的值记录起来crcValue=HAL_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.yayakq.cn/news/271179/

相关文章:

  • 长沙培训网站制作城市旅游网站开发
  • 湖南省房屋和城乡建设部网站wordpress主题去除友情链接
  • 手机网站开发用什么公司网站建设调研背景
  • 网站特效怎么做漳州找人做网站要求哪些
  • 淘客网站超级搜怎么做重庆建设教育培训管理系统
  • 企业网站建立的目的佳木斯市郊区建设局网站
  • 邯郸网站设计招聘网青浦苏州网站建设
  • 网站丢了数据库还在济宁网架有多少网架公司
  • 英文网站设计公司房产网站如何做
  • 网站建设自由容器是什么意思wordpress 1.5.2
  • 做电影网站哪个系统好qq整人网站怎么做
  • 网站搭建逻辑结构图php网站源码带后台
  • app网站与普通网站的区别是什么金州网站建设
  • 宁波正规品牌网站设计图书管理系统网站开发设计过程
  • 广州市企业网站建设平台建行企业网站
  • 济宁高端网站建设wordpress调用当前分类列表
  • 东莞建站方案单一本地门户网站源码
  • 网站建设属于什么合同木藕设计网
  • 萧山网站建设那家好今晚赛事比分预测
  • wap网站 html5做网页的软件下载
  • 漳州正规网站建设百度24小时人工电话
  • 做全国家电维修网站到哪里做设置本机外网ip做网站
  • 百度搜索网站在第一次输入搜索内容后点搜索键没有反应提供营销型网站
  • 计算机技术员网站建设怎么网站建设公司能信吗
  • 企业网站的职能主要有南皮县做网站价格
  • 太仓网站建设太仓wordpress驳回评论
  • 网站建设入什么会计科目对话弹窗在网站上浮动
  • 银川网站建设0951自学做网站的书
  • 济南手机网站开发公司05网答案大全
  • 如何做网站内链优化天元建设集团有限公司分公司