日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]//CRC.C/*************************************************************************************************//* STM32 CRC *///20120427#include "stm32f10x_map.h"#include "system.h"#include "crc.h"/*******

//CRC.C

/*************************************************************************************************/
/* STM32 CRC */
//20120427


#include "stm32f10x_map.h"
#include "system.h"
#include "crc.h"


/*************************************************************************************************************************
* 函數(shù) : void CRC_Reset(void)
* 功能 : 復(fù)位CRC
* 參數(shù) : 無
* 返回 : 無
* 依賴 : 底層宏定義
* 作者 : 陳鵬
* 時(shí)間 : 20120427
* 最后修改時(shí)間 : 20120427
* 說明 :復(fù)位CRC
*************************************************************************************************************************/
void CRC_Reset(void)
{
CRC->CR = 0x00000001;//復(fù)位CRC_DR
}


/*************************************************************************************************************************
* 函數(shù) : void CRC_Init(void)
* 功能 : 初始化CRC模塊
* 參數(shù) : 無
* 返回 : 無
* 依賴 : 底層宏定義
* 作者 : 陳鵬
* 時(shí)間 : 20120427
* 最后修改時(shí)間 : 20120427
* 說明 :使能CRC時(shí)鐘
*************************************************************************************************************************/
void CRC_Init(void)
{
DeviceClockEnable(DEV_CRC,ENABLE);//使能CRC時(shí)鐘
CRC_Reset(); //復(fù)位CRC
}

/*************************************************************************************************************************
* 函數(shù) : u32 CRC_CalculateCRC(u32 data)
* 功能 : 計(jì)算單個(gè)數(shù)據(jù)32BIT CRC
* 參數(shù) : 計(jì)算的數(shù)值
* 返回 : 32BIT CRC校驗(yàn)值
* 依賴 : 底層宏定義
* 作者 : 陳鵬
* 時(shí)間 : 20120427
* 最后修改時(shí)間 : 20120427
* 說明 :計(jì)算CRC,每次寫入前要清除寄存器,即復(fù)位CRC
*************************************************************************************************************************/
u32 CRC_CalculateCRC(u32 data)
{
CRC_Reset(); //復(fù)位CRC
CRC->DR = data;//寫入要生成CRC的數(shù)據(jù)
returnCRC->DR;//返回CRC
}


/*************************************************************************************************************************
* 函數(shù) : u32 CRC_CalculateBlockCRC(u8 pBuffer[], u32 BufferLength)
* 功能 : 計(jì)算緩沖區(qū)中的數(shù)據(jù)的CRC
* 參數(shù) : pBuffer[]:緩沖區(qū)指針,BufferLength:緩沖區(qū)大小
* 返回 : 32BIT CRC校驗(yàn)值
* 依賴 : 底層宏定義
* 作者 : 陳鵬
* 時(shí)間 : 20120502
* 最后修改時(shí)間 : 20120502
* 說明 :寫入前先復(fù)位CRC
*************************************************************************************************************************/
u32 CRC_CalculateBlockCRC(u8 pBuffer[], u32 BufferLength)
{
u32 i;


CRC_Reset(); //復(fù)位CRC
for(i = 0;i < BufferLength;i++)
CRC->DR = (u32)pBuffer[i];//循環(huán)寫入數(shù)據(jù)

returnCRC->DR;//返回CRC
}

//CRC.H

/*************************************************************************************************/
/* STM32 CRC */
//20120427


#ifndef _CRC_H_
#define _CRC_H_


#include "stm32f10x_map.h"
#include "system.h"
#include "crc.h"


void CRC_Init(void); //初始化CRC模塊
void CRC_Reset(void); //復(fù)位CRC
u32 CRC_CalculateCRC(u32 data); //計(jì)算32BIT CRC
u32 CRC_CalculateBlockCRC(u8 pBuffer[], u32 BufferLength);//計(jì)算緩沖區(qū)中的數(shù)據(jù)的CRC

#endif

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉