将BIN转换为BCD

  *****************************************************************************
  * @Name   : 将BIN转换为BCD
  *
  * @Brief  : none
  *
  * @Input  : BINValue: 输入BIN
  *
  * @Output : none
  *
  * @Return : BCD格式数值
  *****************************************************************************
**/
static unsigned char RTC_BinToBcd2(unsigned char BINValue)
{
	unsigned char bcdhigh = 0;
	
	while (BINValue >= 10)
	{
		bcdhigh++;
		BINValue -= 10;
	}
    
	return ((unsigned char)(bcdhigh << 4) | BINValue);
}

将BCD转换为BIN

 
/**
  *****************************************************************************
  * @Name   : 将BCD转换为BIN
  *
  * @Brief  : none
  *
  * @Input  : BCDValue: 输入BCD
  *
  * @Output : none
  *
  * @Return : BIN格式数值
  *****************************************************************************
**/
static unsigned char RTC_Bcd2ToBin(unsigned char BCDValue)
{
	unsigned char tmp = 0;
	
	tmp = ((unsigned char)(BCDValue & (unsigned char)0xF0) >> (unsigned char)0x04) * 10;
	return (tmp + (BCDValue & (unsigned char)0x0F));
}

 

将一个字符转成16进制

//将1个字符转换为16进制数字
//chr:字符,0~9/A~F/a~F
//返回值:chr对应的16进制数值
u8 bc95_chr2hex(u8 chr)
{
	if(chr>='0'&&chr<='9')return chr-'0';
	if(chr>='A'&&chr<='F')return (chr-'A'+10);
	if(chr>='a'&&chr<='f')return (chr-'a'+10); 
	return 0;
}
//将1个16进制数字转换为字符
//hex:16进制数字,0~15;
//返回值:字符
u8 bc95_hex2chr(u8 hex)
{
	if(hex<=9)return hex+'0';
	if(hex>=10&&hex<=15)return (hex-10+'A'); 
	return '0';
}

将多个字符转成16进制,组合成4位的16进制数

				
				if((usart2_rcvd_buf[10]>='0')&&(usart2_rcvd_buf[10]<='9')){usart2_rcvd_buf[10]=(usart2_rcvd_buf[10]-'0');}
				if((usart2_rcvd_buf[10]>='A')&&(usart2_rcvd_buf[10]<='Z')){usart2_rcvd_buf[10]=(usart2_rcvd_buf[10]-'A'+10);}
				if((usart2_rcvd_buf[10]>='a')&&(usart2_rcvd_buf[10]<='z')){usart2_rcvd_buf[10]=(usart2_rcvd_buf[10]-'a'+10);}
				if((usart2_rcvd_buf[11]>='0')&&(usart2_rcvd_buf[11]<='9')){usart2_rcvd_buf[11]=(usart2_rcvd_buf[11]-'0');}
				if((usart2_rcvd_buf[11]>='A')&&(usart2_rcvd_buf[11]<='Z')){usart2_rcvd_buf[11]=(usart2_rcvd_buf[11]-'A'+10);}
				if((usart2_rcvd_buf[11]>='a')&&(usart2_rcvd_buf[11]<='z')){usart2_rcvd_buf[11]=(usart2_rcvd_buf[11]-'a'+10);}
				if((usart2_rcvd_buf[12]>='0')&&(usart2_rcvd_buf[12]<='9')){usart2_rcvd_buf[12]=(usart2_rcvd_buf[12]-'0');}
				if((usart2_rcvd_buf[12]>='A')&&(usart2_rcvd_buf[12]<='Z')){usart2_rcvd_buf[12]=(usart2_rcvd_buf[12]-'A'+10);}
				if((usart2_rcvd_buf[12]>='a')&&(usart2_rcvd_buf[12]<='z')){usart2_rcvd_buf[12]=(usart2_rcvd_buf[12]-'a'+10);}
				if((usart2_rcvd_buf[13]>='0')&&(usart2_rcvd_buf[13]<='9')){usart2_rcvd_buf[13]=(usart2_rcvd_buf[13]-'0');}
				if((usart2_rcvd_buf[13]>='A')&&(usart2_rcvd_buf[13]<='Z')){usart2_rcvd_buf[13]=(usart2_rcvd_buf[13]-'A'+10);}
				if((usart2_rcvd_buf[13]>='a')&&(usart2_rcvd_buf[13]<='z')){usart2_rcvd_buf[13]=(usart2_rcvd_buf[13]-'a'+10);}
				
				
				if((usart2_rcvd_buf[14]>='0')&&(usart2_rcvd_buf[14]<='9')){usart2_rcvd_buf[14]=(usart2_rcvd_buf[14]-'0');}
				if((usart2_rcvd_buf[14]>='A')&&(usart2_rcvd_buf[14]<='Z')){usart2_rcvd_buf[14]=(usart2_rcvd_buf[14]-'A'+10);}
				if((usart2_rcvd_buf[14]>='a')&&(usart2_rcvd_buf[14]<='z')){usart2_rcvd_buf[14]=(usart2_rcvd_buf[14]-'a'+10);}
				if((usart2_rcvd_buf[15]>='0')&&(usart2_rcvd_buf[15]<='9')){usart2_rcvd_buf[15]=(usart2_rcvd_buf[15]-'0');}
				if((usart2_rcvd_buf[15]>='A')&&(usart2_rcvd_buf[15]<='Z')){usart2_rcvd_buf[15]=(usart2_rcvd_buf[15]-'A'+10);}
				if((usart2_rcvd_buf[15]>='a')&&(usart2_rcvd_buf[15]<='z')){usart2_rcvd_buf[15]=(usart2_rcvd_buf[15]-'a'+10);}
				if((usart2_rcvd_buf[16]>='0')&&(usart2_rcvd_buf[16]<='9')){usart2_rcvd_buf[16]=(usart2_rcvd_buf[16]-'0');}
				if((usart2_rcvd_buf[16]>='A')&&(usart2_rcvd_buf[16]<='Z')){usart2_rcvd_buf[16]=(usart2_rcvd_buf[16]-'A'+10);}
				if((usart2_rcvd_buf[16]>='a')&&(usart2_rcvd_buf[16]<='z')){usart2_rcvd_buf[16]=(usart2_rcvd_buf[16]-'a'+10);}
				if((usart2_rcvd_buf[17]>='0')&&(usart2_rcvd_buf[17]<='9')){usart2_rcvd_buf[17]=(usart2_rcvd_buf[17]-'0');}
				if((usart2_rcvd_buf[17]>='A')&&(usart2_rcvd_buf[17]<='Z')){usart2_rcvd_buf[17]=(usart2_rcvd_buf[17]-'A'+10);}
				if((usart2_rcvd_buf[17]>='a')&&(usart2_rcvd_buf[17]<='z')){usart2_rcvd_buf[17]=(usart2_rcvd_buf[17]-'a'+10);}
				
				
				
				txms1 = ((usart2_rcvd_buf[10])<<12)|((usart2_rcvd_buf[11])<<8)|((usart2_rcvd_buf[12])<<4)|(usart2_rcvd_buf[13]);				
				
				
				txms2 = ((usart2_rcvd_buf[14])<<12)|((usart2_rcvd_buf[15])<<8)|((usart2_rcvd_buf[16])<<4)|(usart2_rcvd_buf[17]);