/*********************************************************************************/
/*函数名称: strmcpy() *输入参数: 共 个参数; *输出参数: 共 个参数; *返回值:
*需储存的参数: 共 个参数; *功能介绍:
(1)字符数组拷贝; *修改日志:
*[2006-3-6 17:07] Ver. 1.00 开始编写; 完成; /* */ /*********************************************************************************/
void strmcpy(unsigned char dest[], unsigned char src[], int count) {
int i;
for(i = 0; i < count; i ++) {
dest[i] = src[i]; }
dest[i] = '\\0'; }
/*****************************************************************************/
/*********************************************************************************/
/*函数名称: bitmcpy() *输入参数: 共 个参数; *输出参数: 共 个参数; *返回值:
*需储存的参数: 共 个参数; *功能介绍:
(1)开关量数组拷贝; *修改日志:
*[2006-3-7 14:59] Ver. 1.00
开始编写; 完成; /* */ /*********************************************************************************/
void bitmcpy(int dest[], int src[], int count) {
int i;
for(i = 0; i < count; i ++) {
dest[i] = src[i]; } }
/*****************************************************************************/
/*********************************************************************************/
/*函数名称: strmcmp() *输入参数: 共 个参数; *输出参数: 共 个参数; *返回值:
*需储存的参数: 共 个参数; *功能介绍:
(1)字符数组比较;相同则返回0,不相同则返回1; *修改日志:
*[2006-3-6 17:41] Ver. 1.00 开始编写; 完成; /* */ /*********************************************************************************/
int strmcmp(unsigned char str1[], unsigned char str2[], int count) {
int i;
for(i = 0; i < count; i ++) {
if(str1[i] != str2[i]) {
return 1; } }
return 0; }
/*****************************************************************************/
/*********************************************************************************/
/*函数名称: Datamcmp() *输入参数: 共 个参数; *输出参数: 共 个参数; *返回值:
*需储存的参数: 共 个参数; *功能介绍:
(1)浮点数组比较;相同则返回0,不相同则返回1; *修改日志:
*[2006-3-6 18:05] Ver. 1.00 开始编写; 完成; *[2006-3-9 13:52]
加了一层括号,以前是错误的 if(!((data1[i] - data2[i] < 0.0001) && (data1[i] - data2[i] > -0.0001))) /* */ /*********************************************************************************/
int Datamcmp(float data1[], float data2[], int count) {
int i;
for(i = 0; i < count; i ++) {
if(!((data1[i] - data2[i] < 0.0001) && (data1[i] - data2[i] > -0.0001)))
{
return 1; } }
return 0; }
/*****************************************************************************/
/*********************************************************************************/
/*函数名称: Bitmcmp() *输入参数: 共 个参数; *输出参数: 共 个参数; *返回值:
*需储存的参数: 共 个参数; *功能介绍:
(1)开关量数组比较;相同则返回0,不相同则返回1; *修改日志:
*[2006-3-6 18:10] Ver. 1.00 开始编写; 完成; /* */ /*********************************************************************************/
int Bitmcmp(int data1[], int data2[], int count) {
int i;
for(i = 0; i < count; i ++) {
if(data1[i] != data2[i]) {
return 1; } }
return 0; }
/********************************************************************
*********/
/*********************************************************************************/
/*函数名称: GetCRC16() *输入参数: 共 个参数; *输出参数: 共 个参数; *返回值:
*需储存的参数: 共 个参数; *功能介绍:
(1)CRC16校验; 返回校验码; *修改日志:
*[2005-11-28 16:40] Ver. 1.00 开始编写; 完成; /* */ /*********************************************************************************/
unsigned short GetCRC16(unsigned char *puchMsg, unsigned short usDataLen) {
/* CRC 高位字节值表 */
unsigned char auchCRCHi[256] = {
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
MODBUS通讯+C语言源代码 - 图文
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)