找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3629|回复: 0
打印 上一主题 下一主题
收起左侧

STM32单片机CRC循环冗余校验源程序

[复制链接]
跳转到指定楼层
楼主
ID:508689 发表于 2019-4-10 13:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于stm32  + CRC—循环冗余校验

单片机源程序如下:
  1. /**
  2.   ******************************************************************************
  3.   * @file    main.c
  4.   * @author  fire
  5.   * @version V1.0
  6.   * @brief   CRC计算。
  7.   */

  8. #include "stm32f10x.h"
  9. #include "./usart/bsp_usart.h"
  10. #include "./crc/bsp_crc.h"

  11. extern __IO uint32_t CRCValue;

  12. /*
  13. * 函数名:main
  14. * 描述  :主函数
  15. * 输入  :无
  16. * 输出  :无
  17. */
  18. int main(void)
  19. {
  20.         uint8_t i = 0;
  21.                
  22.         /* USART1 config 115200 8-N-1 */
  23.         USART_Config();
  24.        
  25.         /* 使能CRC时钟 */
  26.         CRC_Config();
  27.        
  28.         printf("\r\n 这是一个 CRC(循环冗余校验)实验 \r\n");
  29.        
  30.         /* Compute the CRC of "DataBuffer" */
  31.         for(i=0; i<BUFFER_SIZE; i++ )
  32.         {
  33.                 //对该寄存器进行写操作时,作为输入寄存器,可以输入要进行CRC计算的新数据。
  34.                 //对该寄存器进行读操作时,返回上一次CRC计算的结果。
  35.                 //每一次写入数据寄存器,其计算结果是前一次CRC计算结果和新计算结果的组合(对整个32位字
  36.                 //进行CRC计算,而不是逐字节地计算)。
  37.                 CRCValue = CRC_CalcBlockCRC((uint32_t *)DataBuffer, BUFFER_SIZE);
  38.                 printf("\r\n32-bit CRC 校验码为:0X%X\r\n", CRCValue);
  39.         }
  40.         printf("\r\nCRC(循环冗余校验)测试成功\r\n");

  41.         for(;;)
  42.         {
  43.                
  44.         }
  45. }
复制代码
  1. /**
  2.   ******************************************************************************
  3.   * @file    bsp_ds18b20.c
  4.   * @author  fire
  5.   * @version V1.0
  6.   */

  7. #include "./crc/bsp_crc.h"

  8. __IO uint32_t CRCValue = 0;                 // 用于存放产生的CRC校验值

  9. /*
  10. * 函数名:CRC_Config
  11. * 描述  :使能CRC时钟
  12. * 输入  :无
  13. * 输出  :无
  14. * 调用  : 外部调用
  15. */
  16. void CRC_Config(void)
  17. {
  18.         /* Enable CRC clock */
  19.         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);
  20. }


复制代码


所有资料51hei提供下载:
CRC—循环冗余校验.7z (181.44 KB, 下载次数: 43)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表