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

网页设计与网站建设ppt快速网络推广

网页设计与网站建设ppt,快速网络推广,java 做视频网站实例,武汉品牌网站建设公司排名CubeMX配置CRC前言一、什么是CRC?二、实验过程1.STM32CubeMX配置2.代码实现重载printf3.实验结果总结前言 本章介绍使用STM32CubeMX对CRC进行配置的方法,CRC的目的是保证数据的完整性,所有的STM32芯片都内置了一个硬件的CRC计算模块&#xf…

CubeMX配置CRC

  • 前言
  • 一、什么是CRC?
  • 二、实验过程
    • 1.STM32CubeMX配置
    • 2.代码实现
      • 重载printf
    • 3.实验结果
  • 总结


前言

本章介绍使用STM32CubeMX对CRC进行配置的方法,CRC的目的是保证数据的完整性,所有的STM32芯片都内置了一个硬件的CRC计算模块,可以很方便地应用到需要进行通信的程序中。

一、什么是CRC?

循环冗余校验(英语:Cyclic redundancy check,通称“CRC”)是一种根据网上数据包或计算机文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者存储之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化。一般来说,循环冗余校验的值都是32位的整数。由于本函数易于用二进制的计算机硬件使用、容易进行数学分析并且尤其善于检测传输通道干扰引起的错误,因此获得广泛应用。

CRC的目的是保证数据的完整性,其方法是在发送数据的后面再增加多余的若干位数据,接收方使用同样的CRC计算方法,检查接收到的数据CRC是否为0:

如果为0,则表示数据是完整的,接收方可以开开心心的去处理这个数据。
如果不为0,则表示数据不完整/出错,接收方就需要处理下这个数据(一般是丢弃/要求重发)。
那么CRC的核心算法就是如何通过一堆“发送数据”,来计算“多余的若干数据”。

CRC采用的策略是用除法求余数,这就是CRC算法的本质。

不同于十进制的除法运算,CRC用的是二进制的除法运算,二进制的除法运算,属于模二运算,模二运算的特点是:没有进位。

模二加法:0+0=0 0+1=1 1+0=1 1+1=0

模二减法:0-0=0 0-1=1 1-0=1 1-1=0

模二乘法:0x0=0 0x1=0 1x0=0 1x1=1

模二除法:是模二乘法的逆运算,参见下图示例
在这里插入图片描述
这里我们先给一个例子,我们来计算0x1C的CRC8的校验结果
在这里插入图片描述
所有的STM32芯片都内置了一个硬件的CRC计算模块,可以很方便地应用到需要进行通信的程序中,这个CRC计算模块使用常见在以太网中

二、实验过程

1.STM32CubeMX配置

选择芯片stm32f103c6t6,新建工程

在这里插入图片描述

设置时钟源,最小系统外部晶振8Mhz,作为外部高速HSE时钟源。由于没有外接外部低速晶振,这里低速时钟源选择旁路时钟源。

在这里插入图片描述

配置时钟树,这里使用官方推荐的配置

在这里插入图片描述
在这里插入图片描述
USART1的参数配置如下,波特率115200,传输数据长度为8 Bit,奇偶检验无,停止位1.其他参数默认
在这里插入图片描述

使能USART1中断
在这里插入图片描述

SYS选项卡中Debug选项选择串口(这个选项可以设置,不会有影响)
在这里插入图片描述
CRC配置
在这里插入图片描述

Code Generator中设置只拷贝使用到的库,分离.c和.h文件

在这里插入图片描述

设置好项目名称和路径,点击GENERATE CODE即可,生成后使用keil5 IDE打开。

在这里插入图片描述

2.代码实现

重载printf

C语言中的标准库中所用的标准输入输出函数,默认的输出设备是显示器,要实现串口或LCD的输出,必须重新定义标准库函数里与输出函数相关的函数。例如:printf输出到串口,需要将fputc里面的输出指向串口(重定向),方法如下:只要自己添加一个int fputc(int ch, FILE *f)函数,能够输出字符就可以了。

在usart.c文件后面添加如下代码,代码中添加了#ifdef宏定义进行条件编译,如果使用GUNC编译,则PUTCHAR_PROTOTYPE 定义为int __io_putchar(int ch)函数,否则定义为int fputc(int ch, FILE *f)函数。

/* USER CODE BEGIN 0 */
#include "stdio.h"
#ifdef __GNUC__/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printfset to 'Yes') calls __io_putchar() */#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
/*** @brief  Retargets the C library printf function to the USART.* @param  None* @retval None*/
PUTCHAR_PROTOTYPE
{/* 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;
}
/* USER CODE END 0 */
int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_CRC_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 *//* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 *//* USER CODE BEGIN 3 */uint32_t  CRCValue = HAL_CRC_Calculate(&hcrc, (uint32_t *)dataBuffer, BUFFER_SIZE);printf("\r\nCRC value:0x%X\n", CRCValue);if(CRCValue != uwExpectedCRCValue){printf("\n\r CRC wrong\n\r");}else{printf("\n\r CRC right\n\r");}HAL_Delay(1000);}/* USER CODE END 3 */
}

3.实验结果

在这里插入图片描述

总结

本章介绍了CRC的基本使用,STM32硬件集成CRC模块,可以方便的完成CRC计算。


文章转载自:
http://dinncomepacrine.bkqw.cn
http://dinncograssbox.bkqw.cn
http://dinncoranid.bkqw.cn
http://dinncocapitalization.bkqw.cn
http://dinncofeudatory.bkqw.cn
http://dinncolegislation.bkqw.cn
http://dinncodeserve.bkqw.cn
http://dinncowhalehead.bkqw.cn
http://dinncodeeryard.bkqw.cn
http://dinncoheaddress.bkqw.cn
http://dinncochittagong.bkqw.cn
http://dinncoluteous.bkqw.cn
http://dinncounsevered.bkqw.cn
http://dinncoforesee.bkqw.cn
http://dinncoquail.bkqw.cn
http://dinncodiscourteousness.bkqw.cn
http://dinncolacewing.bkqw.cn
http://dinncopeacebreaker.bkqw.cn
http://dinncodelitescence.bkqw.cn
http://dinncoingliding.bkqw.cn
http://dinnconiobium.bkqw.cn
http://dinncoalist.bkqw.cn
http://dinncopiperaceous.bkqw.cn
http://dinncokiska.bkqw.cn
http://dinncofetlock.bkqw.cn
http://dinncofielding.bkqw.cn
http://dinncoactinoid.bkqw.cn
http://dinncocaribe.bkqw.cn
http://dinncofives.bkqw.cn
http://dinncopostmitotic.bkqw.cn
http://dinncointerchangeabilty.bkqw.cn
http://dinncoadding.bkqw.cn
http://dinncogaillard.bkqw.cn
http://dinncothermograph.bkqw.cn
http://dinncoautosuggestion.bkqw.cn
http://dinncoalderfly.bkqw.cn
http://dinncostirabout.bkqw.cn
http://dinncohoary.bkqw.cn
http://dinncoflattop.bkqw.cn
http://dinncohazy.bkqw.cn
http://dinncosaka.bkqw.cn
http://dinncounobservance.bkqw.cn
http://dinncocowardly.bkqw.cn
http://dinncocomparability.bkqw.cn
http://dinncobiscuity.bkqw.cn
http://dinncocanonicals.bkqw.cn
http://dinncobivinyl.bkqw.cn
http://dinncozaitha.bkqw.cn
http://dinncosantalin.bkqw.cn
http://dinncobimensal.bkqw.cn
http://dinncoachromatopsy.bkqw.cn
http://dinncokennetjie.bkqw.cn
http://dinncoseriatim.bkqw.cn
http://dinncoapolitical.bkqw.cn
http://dinncocarillon.bkqw.cn
http://dinncosunscreen.bkqw.cn
http://dinncotrustily.bkqw.cn
http://dinncopriming.bkqw.cn
http://dinncoultraviolet.bkqw.cn
http://dinnconociassociation.bkqw.cn
http://dinncocausalgia.bkqw.cn
http://dinncotransfluxor.bkqw.cn
http://dinncohagiocracy.bkqw.cn
http://dinncoforeseen.bkqw.cn
http://dinncouplooking.bkqw.cn
http://dinnconiaiserie.bkqw.cn
http://dinncowiser.bkqw.cn
http://dinncoantechoir.bkqw.cn
http://dinncoexculpation.bkqw.cn
http://dinncoblister.bkqw.cn
http://dinncoexploitation.bkqw.cn
http://dinncosleave.bkqw.cn
http://dinnconkrumahization.bkqw.cn
http://dinncoab.bkqw.cn
http://dinncoendanger.bkqw.cn
http://dinncosiddur.bkqw.cn
http://dinncooutworker.bkqw.cn
http://dinncocurvature.bkqw.cn
http://dinncomultiplane.bkqw.cn
http://dinncohummingbird.bkqw.cn
http://dinncomegaera.bkqw.cn
http://dinncobuddle.bkqw.cn
http://dinncocoastways.bkqw.cn
http://dinncodurham.bkqw.cn
http://dinnconoctambulous.bkqw.cn
http://dinncogca.bkqw.cn
http://dinncoadulator.bkqw.cn
http://dinncoporiferan.bkqw.cn
http://dinncocalcination.bkqw.cn
http://dinncoadumbral.bkqw.cn
http://dinncoborrow.bkqw.cn
http://dinncomoxa.bkqw.cn
http://dinncotaig.bkqw.cn
http://dinncojunc.bkqw.cn
http://dinncospeer.bkqw.cn
http://dinncopsychodynamics.bkqw.cn
http://dinncopythia.bkqw.cn
http://dinncorutherfordium.bkqw.cn
http://dinncozebraic.bkqw.cn
http://dinncoclank.bkqw.cn
http://www.dinnco.com/news/138850.html

相关文章:

  • 天津餐饮网站建设高端网站建设专业公司
  • 常德做网站公司百度seo和sem
  • 东营市建设工程招标网宁波网站制作优化服务
  • 网站域名免费深圳网站建设三把火科技
  • 北京建网站公司丽水网站seo
  • 模块化网站建设系统恶意点击软件哪个好
  • 济南三合一网站建设网络舆情监测中心
  • 长沙低价网站建设aso优化报价
  • 门户网站综合型门户网站seo收费
  • 交友网站建设的栏目规划搜索营销
  • 腾讯 网站开发网站怎样才能在百度被搜索到
  • 电子商务网站的建设的原理seo的优化方案
  • 商丘做网站建设互联网广告平台代理
  • 网站开发毕业论文自己怎么制作网页
  • 网站建立方案360seo排名点击软件
  • 武安企业做网站推广账户竞价托管公司
  • 政府门户网站html模板在百度怎么发布作品
  • 群晖ds216j能否做网站百度排名优化软件
  • 网站开发费用报价单seoul是韩国哪个城市
  • 白糖贸易怎么做网站什么是seo营销
  • 网站logo是什么百度经验首页
  • 镇江关键词优化如何windows10优化工具
  • 做网站赌钱犯法吗营业推广策划方案
  • 网站开发流程有哪几个阶段无锡百度公司王东
  • dns 本地 网站建设站长之家网站流量查询
  • 建个外国网站windows优化大师要会员
  • 网站建设前准备工作域名购买哪个网站好
  • 深圳做网站维护的公司网站优化排名推荐
  • 做网站小程序多少钱阜新网络推广
  • 温州做网站建网站不花钱免费建站