⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 str2bcd.cpp

📁 RS232串口通讯,主要用来设置芯片中的数据.
💻 CPP
字号:
#include "stdafx.h"
#include "ComOperate.h"
#include <stdio.h>
#include "str2bcd.h"



byte str2BCD ( bank1 byte *indata, byte inlen, bank1 byte *buff, byte blen)
{

//      此函数将字符串指针转换成压缩BCD码,字符串指针表示十六进制数
  //      indata 待压缩的字符串指针
  //      inlen   字符串长度
  //      buff    返回压缩BCD码的指针
  //      blen    返回缓冲区长度
  //      返回值为返回结果长度,当缓冲区长度不够时,返回-1
 byte i, j, n1 = 0, n2 = 0, n = 0,x;


	for ( i =0 ; i < blen ; i++)
			*buff = 0;
  
  for (i = 0, j = 0; (i < inlen) && (j < blen); i = i + 2, j++)

    {
		x= indata[i] ;
      if ((indata[i] >= 'a') && (indata[i] <= 'f'))
	n1 = indata[i] - 0x57;

      else if ((indata[i] >= 'A') && (indata[i] <= 'F'))
	n1 = indata[i] - 0x37;

      else
	n1 = indata[i] - 0x30;
	x= indata[i+1] ;
      if ((indata[i + 1] >= 'a') && (indata[i + 1] <= 'f'))
	n2 = indata[i + 1] - 0x57;

      else if ((indata[i + 1] >= 'A') && (indata[i + 1] <= 'F'))
	n2 = indata[i + 1] - 0x37;

      else
	n2 = indata[i + 1] - 0x30;
      n = n1 * 16 + n2;
      buff[j] = n;
    }

  if (j > blen)
    return -1;
  return j;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -