
C/C++
文章平均质量分 78
C/C++应用开发
PegasusYu
化繁为简,由简入巧
展开
-
C语言CRC-32 MPEG-2格式校验函数
CRC-32校验产生4个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍MPEG-2格式的CRC-32校验函数。生成多项式为x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + 1。原创 2023-04-19 08:23:44 · 1666 阅读 · 0 评论 -
C语言CRC-16 DNP格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍DNP格式的CRC-16校验函数。生成多项式为x^16 + x^13 + x^12 + x^11 + x^10 + x^8 + x^6 + x^5 + x^2 + 1。原创 2023-05-22 08:29:00 · 824 阅读 · 0 评论 -
C语言CRC-16 CCITT-FALSE格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍CCITT-FALSE格式的CRC-16校验函数。生成多项式为x^16 + x^12 + x^5 + 1由于反向算法更适合于有输入字节倒位序和输出整体数据倒位序的情况,这里只介绍正向算法。原创 2023-05-17 08:10:55 · 5286 阅读 · 1 评论 -
C语言CRC-16 CCITT格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍CCITT格式的CRC-16校验函数。生成多项式为x^16 + x^12 + x^5 + 1。原创 2023-05-15 08:12:22 · 5062 阅读 · 0 评论 -
C语言CRC-16 XMODEM格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍XMODEM格式的CRC-16校验函数。生成多项式为x^16 + x^12 + x^5 + 1由于反向算法更适合于有输入字节倒位序和输出整体数据倒位序的情况,这里只介绍正向算法。原创 2023-05-10 08:08:07 · 2377 阅读 · 0 评论 -
C语言CRC-16 X25格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍X25格式的CRC-16校验函数。生成多项式为x^16 + x^12 + x^5 + 1。原创 2023-05-08 08:17:06 · 2930 阅读 · 0 评论 -
C语言CRC-16 MODBUS格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍MODBUS格式的CRC-16校验函数。生成多项式为x^16 + x^15 + x^2 + 1。原创 2023-05-03 08:34:52 · 2277 阅读 · 1 评论 -
C语言CRC-16 USB格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同应用规范通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的应用规范校验函数,这里介绍USB格式的CRC-16校验函数。生成多项式为x^16 + x^15 + x^2 + 1。原创 2023-05-01 11:56:31 · 1369 阅读 · 0 评论 -
C语言CRC-8 ROHC格式校验函数
CRC校验基于前处理和后处理的不同,由不同的协会标准推出了一些不同格式的版本。这里介绍CRC-8 ROHC格式的校验函数。原创 2023-04-27 08:13:04 · 1153 阅读 · 1 评论 -
C语言CRC-8 ITU格式校验函数
CRC校验基于前处理和后处理的不同,由不同的协会标准推出了一些不同格式的版本。这里介绍CRC-8 ITU格式的校验函数。原创 2023-04-26 08:19:09 · 1499 阅读 · 0 评论 -
C语言CRC-32 STM32格式校验函数
CRC-32校验产生4个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同厂家通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的厂家校验函数,这里介绍STM32硬件CRC对应格式的CRC-32校验函数。生成多项式为x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + 1。原创 2023-04-20 08:19:33 · 4352 阅读 · 1 评论 -
C语言标准CRC-32校验函数
CRC-32校验产生4个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。获得的校验码是随数据绑定获得。这里介绍CRC-32的64位计算方式和简化的32位计算方式。原创 2023-04-17 09:13:32 · 10119 阅读 · 0 评论 -
C语言CRC-16 MAXIM格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同厂家通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的厂家校验函数,这里介绍MAXIM格式的CRC-16校验函数。生成多项式为x^16 + x^15 + x^2 + 1。原创 2023-04-13 09:37:00 · 1089 阅读 · 0 评论 -
C语言CRC-16 IBM格式校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。不同厂家通过对输入数据前处理和输出数据后处理的方式不同,又产生了不同的厂家校验函数,这里介绍IBM格式的CRC-16校验函数。原创 2023-04-12 08:20:27 · 3650 阅读 · 1 评论 -
C语言标准CRC-16校验函数
CRC-16校验产生2个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。获得的校验码是随数据绑定获得。。这里介绍CRC-16的64位计算方式和简化的16位和8位计算方式。原创 2023-04-10 08:23:30 · 5357 阅读 · 0 评论 -
C语言CRC-8 MAXIM格式校验函数
CRC校验基于前处理和后处理的不同,由不同的公司推出了一些不同格式的版本。这里介绍CRC-8 MAXIM格式的校验函数。原创 2022-09-12 11:04:45 · 1956 阅读 · 0 评论 -
STM32CUBEIDE用作标准C开发编译工具
STM32CUBEIDE除了用作STM32等ST公司自己的芯片的代码编译调试工具,其内置了MinGW,也可以作为标准C代码的编译工具。这里以屏幕打印Hello World作为范例,在Windows系统控制台输出。原创 2022-09-05 09:47:29 · 1393 阅读 · 0 评论 -
C语言算术随笔
C语言应用中,有一些需要留意的小事项,随笔做个算术方面的memo。原创 2022-08-17 18:05:50 · 531 阅读 · 0 评论 -
C语言标准CRC-8校验函数
C语言标准CRC-8校验函数CRC校验原理及简单CRC-8校验函数(7个输入字节以内)可参考: CRC校验原理及CRC-8校验函数设计 。这里的函数是实现输入范围扩展,支持任意长度的输入字节的CRC-8校验。设计原理设计原理仍然基于无符号64位整型为一个计算单元,当超过64位时,将前一个单元的计算余数,与后面的输入数据重新组成64位数据,再进行模二除法,以此类推,得到最后的CRC-8校验值(余数)。这里的设计按照CRC计算基本原理来实现,容易理解。CRC-8校验函数这里的校验码采用标准校验码X^原创 2022-04-25 09:19:38 · 9721 阅读 · 0 评论 -
CRC校验原理及CRC-8简单校验函数设计
CRC校验原理及CRC-8校验函数设计CRC为循环冗余校验码,是一种常用的、具有检错、纠错能力的校验码。通常发送方在发送的数据之后,附上其CRC校验码。接收方收到数据后,也做同样的CRC校验,得到本地CRC校验码,并和接收到的CRC校验码比较,如果一致,则认为数据无误,如果不一致,则认为发收过程中出错。CRC校验码是被计算数据和计算码的二进制模二除法的余数。二进制模二除法和二进制常规算法的区别是,模二除法在除法运算过程中采用模二减法,不产生借位,也就是0-1=1,0-0=0,1-1=0,1-0=1;而0原创 2022-03-14 07:11:36 · 4458 阅读 · 0 评论 -
同指向双指针在STM32 DMA访问中的一种应用
双指针在STM32 DMA访问中的一种应用场景这里的双指针,是指定义了两个指针变量,而赋值了同样的地址。一般场景下,定义一个指针变量,根据要访问的对象(变量,结构体等)的变化,将其地址动态赋值给指针,再通过指针寻址访问,能满足大部分的应用场景,并不需要采用两个指针变量指向同一个地址。场景的起源在设计通过摄像头进行迹线抽取识别的编程中,通过STM32的DCMI接口(DMA方式)获得数据并由DMA放置到目的地址,目的地址是一个赋值了内存地址的指针。当获取了要捕获的迹线部分数据,需要将数据及时转存及处理,因原创 2021-11-23 16:56:54 · 639 阅读 · 0 评论 -
负数求余的补码分析
负数补码的求余补码的基本概念对于计算机处理器系统,在做计算时,是将原码转换为补码,进行计算后,最后的结果再将补码转换为原码。CPU里只有加法器的单元实现,没有减法器的单元实现。 X原码-Y原码 = X补码+(-Y)补码 。正数的补码是其本身。负数的补码是最高位不变(1),其它位取反后,整体最低位再加上1得到。如7 == 00000111(二进制8位原码) = 00000111(二进制8位补...原创 2019-11-24 16:20:49 · 451 阅读 · 0 评论 -
C语言指针的最简使用规则
基本使用通过type * variable的方式,如int *i的方式定义指针通过type array[num]的方式,如int a[10]的方式定义数组,数组名代表存储地址,对32位操作系统,地址为32位。通过i=array的方式,将数组地址赋值给指针。可以通过访问数组的方式进行数据写读,如a[5] = 6; x = a[6];可以通过指针对某个地址进行数据写读,如*I = 6; x...原创 2019-10-20 15:47:16 · 450 阅读 · 0 评论