ModbusCRC16_modubuscrc16-程序员宅基地

技术标签: c语言  指针  

/****************************************************************
函数名称:CRC校验函数
输 入:消息数组指针,数据的长度
****************************************************************/
unsigned int getCRC16(unsigned char *msg,unsigned char msglen)
{
unsigned int crc = 0xffff;
unsigned char i, j;

for (i=0; i<msglen; i++)
{
	crc = crc ^ (*msg++);	// 第一个字节与crc异或后,指针加1取下一字节
	#ifndef  DEBUG 
	WDTCON=0x20;
	#endif                //通讯异常 CRC计算时易复位 故加看门狗  
	for (j=0; j<8; j++)		// 循环处理8次
	{
		if ((crc & 0x0001) == 0)// 查看准备移出的最低位是否为1?
		{
			crc = crc >> 1;			// 0,直接移位,高位补零
			crc = crc & 0x7fff;		// 高位补零
		}
		else // 移出位是1
		{
			crc = crc >> 1;			
			crc = crc & 0x7fff;		// 高位补零	
			crc = crc ^ 0xA001;
		}
	}
}
return crc;

}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42835150/article/details/105723095

智能推荐

mysql关系型和非关系型区别,关系型数据库和非关系型数据区别-程序员宅基地

文章浏览阅读138次。表是关系型数据库最典型的数据结构,它由两维的表和它们之间的联系组成数据组织。好处:易于维护:均采用表结构,格式一致;使用方便: SQL语言是通用的,可以用于复杂的查询;第三,复杂操作:支持 SQL,可以在一个表和多个表之间进行复杂查询。缺陷:读写性能相对较差,特别是对海量数据的高效读写;固定的表格结构,弹性稍差一点;在传统关系型数据库中,硬盘 I/O的并发程度较高,读写需求也较大。严格地说,非关系..._mysql关系型数据库与非关系型的区别

Vue中一些工具的应用(仅供参考具体看API文档)_at function.invokegetter-程序员宅基地

文章浏览阅读396次。vue-cli中常见插件的使用及配置配置echars安装npm install echarts -S在组件中定义图表容器并初始化数据 // 假设是 index.vue // 1. 在template中的html标签中定义容器 <div id="echarsbox" :style="{width: '300px', height: '300px'}"></div>..._at function.invokegetter

简单两步实现 rsync 自动同步文件免密_rsync无需输入密码远程同步文件-程序员宅基地

文章浏览阅读3.2k次,点赞2次,收藏6次。rsync 免密方式自动同步文件:rsync的客户端方式能够自动同步文件,非常方便,但是它在远程拷贝文件之前提示还需要输入一个密码,要实现脚本自动拷贝,必须要优化掉这个步骤,让rsync以密码文件的方式工作,就不需要再手工输入密码了,但密码文件的方式工作需要两步简单的配置。环境说明:suse安装后自带rsync命令程序,使用最简单的客户端方式工作。备份机:192.168.0.1, 同步文件的目的地。服务器:192.168.0.8, 同步文件的数据源,一般是从服务器拷贝数据去备份。.._rsync无需输入密码远程同步文件

command failed: npm install --loglevel error --legacy-peer-deps-程序员宅基地

文章浏览阅读2k次。1,没有安装webpack,安装一下就好了npm install webpack -g2,node版本冲突,重新安装一下持久维护版然后就成功了_command failed: npm install --loglevel error --legacy-peer-deps

prometheus监控zookeeper-程序员宅基地

文章浏览阅读2k次。1、部署zookeeper# 节点192mkdir -p /data/zookeeper/{data,conf,log}#zookeeper配置文件cat > /data/zookeeper/conf/zoo.cfg << 'EOF'#4lw.commands.whitelist=*4lw.commands.whitelist=mntr,ruokclientPort=2181 dataDir=/data/zookeeper/datadataLogDir=/data/zo_prometheus监控zookeeper

PHP将数组存入到数据库中_yii2 如何以数组的形式保存到数据库-程序员宅基地

文章浏览阅读3.7k次。以下四种方法: 1.implode()和explode()方式 2.print_r()和自定义函数方式 3.serialize()和unserialize()方式 4.json_encode()和json_decode()方式// serialize方式function serial($table,$arr){ echo '_yii2 如何以数组的形式保存到数据库

随便推点

【实习日报】2019年6月上半月 前端开发实习工作日报汇总_前端日报十字-程序员宅基地

文章浏览阅读3.4k次,点赞3次,收藏16次。以下记录的是今年6月1日-6月15日笔者在公司进行web前端工作的每日工作内容,其中隐去了项目的具体名称、人名、公司名等。2019.6.3今天完成的任务:发布了一个野牛期货PC客户端的新版本,新增快捷键设置功能,已将代码提交至个人仓库中,暂未发起pull request请求。目前已知bug:当设置快捷键时,如果设置的快捷键是全局热键:也就是屏幕截图,老板键,打开/隐藏主窗口时,如果只键..._前端日报十字

备份文件后缀_linux 备份文件以什么结尾-程序员宅基地

文章浏览阅读5.5k次。常见的备份文件后缀名有 .git .svn .swp .~ .bak .bash_history一个一个试,发现是.bak,最后下载.bak后用记事本打开,获得flag_linux 备份文件以什么结尾

频谱 相位谱互谱_matlab互谱分析-程序员宅基地

文章浏览阅读5.8k次,点赞2次,收藏18次。第一:频谱一.调用方法X=FFT(x);X=FFT(x,N);x=IFFT(X);x=IFFT(X,N)用MATLAB进行谱分析时注意:(1)函数FFT返回值的数据结构具有对称性。例:N=8;n=0:N-1;xn=[4 3 2 6 7 8 9 0];Xk=fft(xn)→Xk =39.0000 -10.7782 + 6.2929i ..._matlab互谱分析

Linux配置终端代理_linux终端代理-程序员宅基地

文章浏览阅读1.4w次,点赞7次,收藏23次。Linux配置终端代理_linux终端代理

oracle loop面试题,oracle存储过程面试题-程序员宅基地

文章浏览阅读1.4k次。Oracle面试题库1_面试_求职/职场_实用文档。1 PL/SQL 代表 A ...JAVA和SQL和ORACLE面试题汇总_面试_求职/职场_实用文档。文档均来自...华为面试题(附答案)Oracle-DBA、JAVA架构师必看_自我管理与提升_求...oracle企业面试题集锦_面试_求职/职场_实用文档。oracle 企业面试题集锦 宏观上: 1. 最大的区别在于平台,oracle 可以运..._oracle存储过程面试题

PIC单片机SPI接口配置_pic spi通信-程序员宅基地

文章浏览阅读2k次。一般所有单片机的SPI接口都需要配置以下几点内容(CPU作为SPI主模式):1.引脚功能/方向配置:标准SPI接口由4根线组成,SCK,MISO(SDI),MOSI(SDO),SS(CS),其中SCK,MISO,MOSI都应设置成SPI功能,并且SCK和MOSI设置成输出引脚,MISO设置成输入引脚,SS引脚设置成普通GPIO功能,并且设置成输出。2.SPI参数配置:..._pic spi通信

推荐文章

热门文章

相关标签