历史上的今天
返回首页

历史上的今天

今天是:2024年11月27日(星期三)

正在发生

2019年11月27日 | 单片机CRC源码

2019-11-27 来源:eefocus

 1 /******************************************************************************************

 2  * 函数功能:CRC校验用函数

 3  * 函数输入:puchMsgg是要进行CRC校验的消息,usDataLen是消息中字节数

 4  * 函数输出:计算出来的CRC校验码。

 5  ****************************************************************8*************************/

 6 uint16_t CRC16(uint8_t *puchMsgg,uint8_t usDataLen)//puchMsgg是要进行CRC校验的消息,usDataLen是消息中字节数

 7 {

 8     uint8_t uchCRCHi = 0xFF ; /* 高CRC字节初始化*/

 9     uint8_t uchCRCLo = 0xFF ; /* 低CRC 字节初始化*/

10     uint8_t uIndex ; /* CRC循环中的索引*/

11     while (usDataLen--) /* 传输消息缓冲区*/

12     {

13         uIndex = uchCRCHi ^ *puchMsgg++ ; /* 计算CRC */

14         uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ;

15         uchCRCLo = auchCRCLo[uIndex] ;

16     }

17     return ((uchCRCHi<< 8) | uchCRCLo) ;

18 }

 

用法举例:


1 void MessageHandle(uint8_t *pointer_in,uint8_t *pointer_out)

2 {

3     CalKey = CRC16(pointer_in+1,*pointer_in-2); //对接收到的命令进行CRC校验,得到新的校验码

4     //写入校验码

5     SendKey = CRC16(Pointer_out+1,3);

6     //将计算出来的校验码装入输出数据缓存中

7     *(Pointer_out+4) = (uint8_t)(SendKey>>8); 

8     *(Pointer_out+5) = (uint8_t)(SendKey&0x00FF);

9 }


用法中,对于发送帧,是先放CRC高位,后放CRC低位,但在标准ModBus中,先放CRC低位,后放CRC高位。

推荐阅读

史海拾趣

Eastman Kodak Company公司的发展小趣事

经过破产保护和重组的洗礼后,伊士曼柯达公司更加注重创新和可持续发展。公司加强了与新兴科技公司的合作,积极探索新的业务模式和市场机会。同时,柯达还致力于研发更加环保、高效的影像产品和技术,以满足客户对高品质影像的需求。未来,伊士曼柯达公司将继续秉承创新、品质、服务的理念,不断推动影像行业的发展和进步。

Connor-Winfield公司的发展小趣事

在电子行业中,技术的创新和产品的品质是企业生存和发展的关键。Connor-Winfield深知这一点,因此在发展过程中始终注重技术创新和品质提升。公司投入大量资源进行研发,不断推出具有创新性和高性能的产品。同时,公司还建立了严格的质量管理体系,确保每一件产品都符合最高的品质标准。这些努力使得Connor-Winfield的产品在市场上赢得了良好的口碑。

EPIC公司的发展小趣事

随着公司的发展,Epic Games开始通过收购和投资来扩展其业务范围。2007年8月20日,Epic Games收购了一家位于波兰的游戏开发商People Can Fly,并成为其第一大股东。这次收购不仅为Epic Games带来了更多的开发资源,也使其在游戏开发领域的实力得到了进一步提升。此外,Epic Games还积极投资其他有潜力的游戏开发商和团队,以推动整个游戏行业的创新和发展。

风华(FH)公司的发展小趣事

福斯特半导体(这里假定为福斯特应用材料股份有限公司的半导体业务部门,因直接名为“福斯特半导体”的公司可能专注于不同领域)的母公司——杭州福斯特应用材料股份有限公司,最初并非涉足半导体行业。2003年,公司创始人林建华在纺织业取得成功后,决定跨界进军光伏胶膜行业。当时,国内光伏组件厂商所需的光伏胶膜主要依赖进口,市场被几家国际巨头垄断。林建华凭借在材料领域的深厚积累和技术优势,成功研制出EVA胶膜产品,并迅速占领市场。至2008年,福斯特已成为全球前三的EVA胶膜供应商,为光伏产业的发展奠定了坚实基础。这一跨界创新不仅推动了光伏胶膜行业的国产化进程,也为福斯特半导体后续在电子行业的拓展提供了宝贵的经验和资源。

AAT [Advanced Analog Technology, Inc.]公司的发展小趣事

为了进一步扩大市场覆盖和品牌影响力,福斯特半导体积极寻求战略合作。2023年2月,福斯特半导体与世强先进(深圳)科技股份有限公司签署授权代理协议,借助世强先进在技术分销和互联网推广方面的丰富经验,布局线上和线下功率器件渠道市场。这一合作不仅拓宽了福斯特半导体的产品应用领域,还提升了公司在新能源汽车、储能、照明等市场的知名度。通过世强硬创平台,福斯特半导体的功率MOS和二极管等产品得以快速覆盖目标市场,进一步降低了客户供应链成本。

BITECH公司的发展小趣事

近年来,全球半导体行业面临严重的缺芯问题,给包括福斯特半导体在内的众多企业带来了巨大挑战。为了应对这一挑战,福斯特半导体积极调整策略,加强内部管理和优化生产结构。公司更新了一套全新的内部管理系统,对多个业务领域和管理板块进行配套和升级,提升了团队研发效率和质量。同时,公司还加强了移动化办公模式的更新升级,满足了灵活管理的需要。通过这些措施,福斯特半导体在保持高效运营的同时,也增强了自身的抗风险能力,为未来的发展奠定了坚实基础。

问答坊 | AI 解惑

与研祥专家对话,精美大奖等您拿~

具体活动链接地址如下:https://www.eeworld.com.cn/zhuanti/newevoconline/index.asp 好消息! 各位工程师:         大家好!2008年9月17日上午10点到11点30,研祥携蓝宇科技将做客电子工程世界,就嵌入式系统设 ...…

查看全部问答>

中国研制成功新一代“镁基特种电源”,号称全天候电池

中国科学家研制成功具有自主知识产权的新一代电源——镁基特种电源。这种电源不仅可替代锌锰电池、铅酸电池、镉镍电池等传统电源,还能在1500米深海、40000米高空等多种极端状态下正常工作,在工业和国防等领域有着广泛的用途。据新电源研制者、中 ...…

查看全部问答>

keil,如何看debug时候,的idata内容

有memory windows 在address 中输入d:0xf0,发现好像看到的是sfr,而不是高128字节的数据 (因为我已经执行了,所有数据区清零,可是在memory windows看到的依旧是FF???)…

查看全部问答>

SEPIC变换器的电路设计

哪位高人能给一些有关SEPIC变换器的电路设计资料?…

查看全部问答>

eVC 用模拟器如何显示printf的内容

我安装的EVC4+sp4+EVC自带的sdk,好像说要控制台,怎么样才能拥有控制台阿?…

查看全部问答>

选书,请指点一下?

我想学嵌入式,主要用于防盗门系统.但不知道应该选择什么样的书去看!!请指点一下!…

查看全部问答>

深圳市快星半导体电子有限公司是专业生产、开发为一体的企业

深圳市快星半导体电子有限公司是专业生产、开发为一体的企业。产品有全系列贴片(SMD)、直插(DIP),二、三极管、三端稳压管、达林顿管、场效应管、稳压电路、稳压二极管、开关晶体管、可控硅、肖特基、IC集成电路,其产品广泛用于开关电源, ...…

查看全部问答>

测量普通家电电磁辐射

有没有大哥知道测量电磁辐射的电路,模块或者解决方案 …

查看全部问答>

有关upp接收数据的技术问题,急急急!!!!

使用两个DMA接收FPGA的数据,为什么接收到的数据都是从FPGA发的第一个数据开始的????? …

查看全部问答>

有谁做过倒立摆

刚刚学习STM32,准备用它制作一个倒立摆用来对国赛进行准备,有谁知道做倒立摆需要用到的STM32的知识有哪些?比如ADC什么的 …

查看全部问答>