DS18B20的CRC验证算法,代码如下

uint8_t crcCalc(void *src, uint8_t size)
{//crc-8/MAXIM//x8 + x5 + x4 + 1//多项式:31//crc初始值:0//计算结果异或值:0//当数组最后一位含有CRC值时,输出0,否则输出计算的CRC/*//Testuint8_t buf[10] = {0xbd, 0x01, 0x4b, 0x46, 0x7f, 0xff, 0x03, 0x10, 0xff};uint8_t buf1[10] = {0xc0, 0x01, 0x4b, 0x46, 0x7f, 0xff, 0x10, 0x10, 0x8f};uint8_t result2 = crcCalc(buf1, 8);uint8_t result3 = crcCalc(buf, 8);printf("result2 is %d %x\r\n", result2, result2);   //0x8fprintf("result3 is %d %x\r\n", result3, result3);   //0xffuint8_t result2 = crcCalc(buf1, 9);uint8_t result3 = crcCalc(buf, 9);printf("result2 is %d %x\r\n", result2, result2);   //0printf("result3 is %d %x\r\n", result3, result3);   //0*/uint8_t ret = 0;uint8_t *p;int i = 0;uint8_t pBuf = 0;p = (uint8_t*)src;while(size--){pBuf = *p ++;for ( i = 0; i < 8; i ++ ){if ((ret ^ (pBuf)) & 0x01){ret ^= 0x18;ret >>= 1;ret |= 0x80;}else{ret >>= 1;}pBuf >>= 1;}}return ret;
}

DS18B20的CRC验证算法相关推荐

  1. DIY单片机STC51控制海尔热水器,带电量计量,走时DS1302,温度DS18B20带CRC,程序全公开

    2022.9 海尔热水器50L的数显热水器.控制温度简直是傻X,温差10度才开始加热,比如设定55度,要降到45度才开始加热,太难用了. 另外,自己想再加一点功能,设定不同时间可以有不同温度. 于是进 ...

  2. 硬件MSB最高位优先、LSB最低位优先的CRC计算原理详细解释和程序,正算反算成功等效,DS18B20和HTU31D传感器CRC

    wxleasyland@139.com 2022.7 以前写过<我学习CRC32.CRC16.CRC原理和算法的总结(与WINRAR结果一致)>长篇.经过十几年又忘记了. 这次碰到DS18 ...

  3. 基于DS18B20的数字温度计的毕业设计

    毕业设计论文 题目  基于单片机的DS18B20数字温度计    电话13812281034 系         电子信息工程系 专业  应用电子 姓名 王水浪          班级 电子061 指 ...

  4. 基于单片机的温度计设计

    文末下载完整资料 摘要:随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设 ...

  5. DS18B20 单总线多器件的ROM 搜索, ALARM 检测, CRC 校验 源码实现, 基于 STM32F103

    DS18B20使用5V供电, 数据线总线 DQ 经4.7k 上拉电阻到 5V, 连接到  B12 端口,  多个器件共用一条数据总线, (以前以为 ROM 搜索是穷举搜索, 但是 搜索1位需要 读两次 ...

  6. 单片机18b20c语言程序,AVR单片机控制DS18B20的示例C程序

    原标题:AVR单片机控制DS18B20的示例C程序 #include #include #include #include unsigned char data_H, data_L,wendu; un ...

  7. 全套CRC校验的算法

    尊重原作者的辛劳,转载只是为了收藏,以后能用得到,文章转载自:https://blog.csdn.net/cp1300/article/details/51443350 uint8_t crc4_it ...

  8. STM32F4 HAL库开发 -- 温度传感器(DS18B20)

    参看:<嵌入式-STM32开发指南>第三部分 外设篇 - 第2章 温度传感器DS18B20 这篇文章讲的非常详细了. 一.简介 1.概述 DS18B20 是 DALLAS 最新单线数字温度 ...

  9. 【51单片机快速入门指南】6.3:DS18B20 单总线数字温度计的多路读取

    目录 硬知识 DS18B20介绍 时序 初始化时序 写时序 读时序 命令 ROM 操作命令 ROM 搜索举例 存贮器操作命令 示例程序 DS18B20.c DS18B20.h 测试程序 定时器中断服务 ...

最新文章

  1. 23个CVPR 2020收录的新数据集,都在这里了!
  2. JS break语句和continue语句
  3. Retrofit2.0+ .Net MVC4(WebApi) 上传多张图片
  4. 【自动驾驶】21.左手坐标系和右手坐标系
  5. [转载].NET平台微服务项目汇集
  6. python历史5分钟数据_python每5分钟从kafka中提取数据的例子
  7. Hibernate征途(三)之CRUD
  8. Speaking of the impact of the epidemic
  9. bzoj 3436: 小K的农场(差分约束)
  10. 微软2012年突破重围 主攻Windows Phone
  11. python语言程序设计期末试卷_Python语言程序设计17182试题题目及答案,课程2020最新期末考试题库,章节测验答案...
  12. 做量化投研必须掌握的三大基本模型理论
  13. 软件无线电原理深入解析
  14. cordova 修改app名称和图标
  15. 移动硬盘打不开(不用格式化)修复方法
  16. 阿里巴巴icon font导入CSS
  17. html横幅设置,如何控制HTML横幅的宽度和高度?
  18. Can I debug relocated code at source-level with DS-5 Debugger?
  19. N-Tiers使用ObjectDataSouce如何自己处理中间层传回的错误讯息
  20. 经营报表-FineReport配置Oracle外接数据库(2)

热门文章

  1. 爬虫:Iron WebScraper 2022 for NET
  2. 2022年河南省安全保护服务人员(初级保安员)考试练习题及答案
  3. 博仲兴业力作——《爱的雨季》讲述爱情的奥秘
  4. 工作流学习2(书本)
  5. 微信发朋友圈测试用例
  6. 游戏服务器稳定ping值,网友玩游戏时Ping值超过了2亿!
  7. matlab DSB-AM与SSB-AM的调制与解调
  8. 我的阿里巴巴图标公开库
  9. 全国省市区数据库-拼音-首字母-经纬度-城市编码-邮编-简称-组合称
  10. python:判断3个数不相等