STM32的CRC32 实现代码 -- Ether】的更多相关文章

uint32_t reverse_32( uint32_t data ) { asm("rbit r0,r0"); return data; } ; uint32_t crc32_ether( char *buf, int len, int clear ) { uint32_t *p = (uint32_t*) buf; uint32_t crc, crc_reg; if ( clear ) CRC_ResetDR( ); ) { crc_reg = CRC_CalcCRC( reve…
// STM32 CRC32 Test App - sourcer32@gmail.com #include <windows.h> #include <stdio.h> DWORD Crc32( DWORD Crc, DWORD Data ) { int i; Crc = Crc ^ Data; ; i < ; i++ ) if ( Crc & 0x80000000 ) Crc = ( Crc << ) ^ 0x04C11DB7; // Polynomi…
对于STM32的32位CRC,如果假定它的一个主要目的是为了校验往内部FLASH存储数据的可靠性,那么(余数)初值是全1当然是比较合理的.由于STM32的32位CRC是纯32位,即每次必须输入32位的数,所以如果数据不到32位,应该往低位用1来填充比较合理: 另外,如果输入数据是 "1234"-0x31 0x32 0x33 0x34, 那么输入的CRC数据是 0011-0100 0011-0011 0011-0010 0011-0001 :: 0x34333231 由于STM32的32…
#ifndef _IIC_H #define _IIC_H #include "stdio.h" #include "stm32f1xx_hal.h" /* 定义控制 SDA SCL 的宏 标准库版 #define I2C_SDA_UP GPIO_SetBits (GPIOC,GPIO_PIN_8) //SDA高电平 #define I2C_SDA_LOW GPIO_ResetBits(GPIOC,GPIO_PIN_8) //SDA低电平 #define I2C_S…
void ili9341_Initializtion(void) { u16 i; RCC->APB2ENR|=<<; //使能PORTB时钟 GPIOB->CRH&=0XFFF0FFFF; GPIOB->CRH|=0X00030000;//PB.12推挽输出 GPIOB->ODR|=<<; //PB.12输出高 LCD_X_Init(); //初始化连接LCD彩色液晶屏上的管脚,比如这里连接的是FSMC总线 ILI9341_RESX_H; Dela…
源:STM32 CRC32与对应的软件CRC32 简单实现STM32 CRC32使用 使用前记得使能STM32 CRC时钟 //STM32硬件CRC32 byte数据计算,将数据移到最高位,低位补上FF u32 stm32_crc32_byte(u8 *pBuff, u32 len) { u32 i; u8 buff[]; u32 *p32 = (u32 *)buff; CRC->CR = ; //复位CRC寄存器 buff[] = buff[] = buff[] = buff[] = 0XFF…
Iap,全名为in applacation programming,即在应用编程,与之相对应的叫做isp,in system programming,在系统编程,两者的不同是isp需要依靠烧写器在单片机复位离线的情况下编程,需要人工的干预,而iap则是用户自己的程序在运行过程中对User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级.在工程应用中经常会出现我们的产品被安装在某个特定的机械结构中,更新程序的时候拆机很不方便,使用ia…
只要按照下面的一步步来,绝对能从0开始建立一个STM32工程.不仅包括工程建立过程,还有Jlink设置方法.本文使用芯片为STM32F103CB. 1 下载stm32F10x的官方库 http://www.st.com/web/en/catalog/tools/PF257890 2 新建工程 工程名设为stm32_demo,选择芯片型号为STM32F103B,如图, 因为下载的stm32库中有启动代码,所以这里选择"否",不拷贝启动代码. 在工程文件下,新建Startup .Heade…
var util = {}; util.indexOf = function (array, item) { for (var i = 0; i < array.length; i++) { if (array[i] === item) { return i; } } return -1; }; util.isFunction = function (source) { return '[object Function]' === Object.prototype.toString.call(s…
首先,打开 Micrium 公司官方网站(http://micrium.com/),点击“Downloads”选项卡进入下载页面,在“Brouse by MCU Manufacturer”栏目展开“STMicroelectronics”,单击“Viewall STMicroelectronics”. 可以选择自己的stm32型号进行下载,下载前要登录该网站 . 移植过程选择一个秉火 STM32 开发板可用的裸机例程作为程序模板,这里准备了一个简单的“LED 流水灯”例程. 拷贝下图路径下 uC/…