敏源传感 MTS01 IIC CRC校验程序(x8 + x5 + x4 + 1)

news/2024/12/5 11:41:46/

敏源传感 MTS01 IIC CRC校验程序:

/*
    *Name:    CRC-8   x8+x5+x4+1
    * Poly:    0x31   
    * Init:    0xFF
    * Refin:   False
    * Refout:  False                                                                                                                                  * Xorout:  0x00      */ 
#define POLYNOMIAL     0x131 //100110001
uint8_t MY_I2C_CRC8(uint8_t data[], uint8_t length)
{
    uint8_t bit;        // bit mask
    uint8_t crc = 0xFF; // calculated checksum
    uint8_t byteCtr;    // byte counter
 
    // calculates 8-Bit checksum with given polynomial
    for(byteCtr = 0; byteCtr < length; byteCtr++)
    {
        crc ^= (data[byteCtr]);
        for(bit = 8; bit > 0; --bit)
        {
            if(crc & 0x80) crc = (crc << 1) ^ POLYNOMIAL;
            else           crc = (crc << 1);
        }
     }
     return crc;
}


http://www.ppmy.cn/news/496338.html

相关文章

C51简介及Keil的使用

前言 此文档主要是针对有一定C/C编程基础&#xff0c;并打算用Keil从事C51开发的开发人员。C51涉及的知识比较多&#xff0c;但是入门基本的开发&#xff0c;还是容易的。 C51简介 1. C51概念 C51继承于C语言&#xff0c;主要运行于51内核的单片机平台。单片机&#xff0c;…

C语言进阶教程(再论struct,union,enum)

文章目录 前言一、struct&#xff0c;union&#xff0c;enum类型大小计算二、应用场景分析总结 前言 本篇文章我们再来讨论struct&#xff0c;union&#xff0c;enum这三大结构。这三大结构很容易让人晕头转向&#xff0c;所以现在我们再来分析一下吧。 一、struct&#xff0…

gRPC教程与应用

gRPC是是谷歌一个开源的跨语言的RPC框架&#xff0c;面向移动和 HTTP/2 设计。 grpc中文网 在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法&#xff0c;使得您能够更容易地创建分布式应用和服务。 gRPC 也是基于以下理念&#xff1…

Java 从入门到精通(续集17)——数据库编程

Java 从入门到精通&#xff08;续集17&#xff09;——数据库编程 Java 中的数据库编程是指使用 Java 提供的 JDBC API 和各种数据库驱动程序来实现与数据库之间的数据交互。Java 中主要使用的数据库驱动程序包括 MySQL、Oracle、SQL Server 等。 一、JDBC API Java 中的 JDBC…

基于Springboot+vue的网上商城购物系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

Mac 设置 word 单面打印 双面打印

command p 弹出打印页面 选择布局&#xff0c;设置双面打印或者是单面打印

A4文档打印为A3双面的解决办法

打印设置 选择纸张为A3 &#xff0c;页面设置时&#xff0c;选择拼页&#xff0c;然后按照4&#xff0c;1&#xff1b;2&#xff0c;3&#xff1b;顺序对文档进行拼页打印即可&#xff01;不错的方法&#xff01;要记住哦&#xff01;

go语言实现定时在指定时间执行

go语言进行时间的进行&#xff0c;有每隔一段时间进行&#xff0c;以及某个固定时间执行程序。 一、间隔一个时间进行触发事件 // 1-每3秒频率进行执行 func even3s(c chan int) {go func() {log.Println("开始执行... start...")for {fmt.Println("每3s执行一…