【C】16进制高4位低4位转ASCII码
程序员文章站
2024-02-01 22:16:34
...
由于通信协议的要求,将16进制的高4位和低4位分别以ASCII码形式通过串口发送给上位机软件。
/**
*** 16 Hex change to ACSII
*** 输入: 十六进制
*** 输出 : Ascii
**/
u8 AsciiTop , AsciiBtm ; // 定义为全局变量
void HexToAscii_SendTopBtm(const unsigned char HexValue)
{
u8 HexTop, HexBtm;
HexTop = HexValue / 16;
HexBtm = HexValue % 16;
if((HexTop>=0)&&(HexTop<=9)) AsciiTop = HexTop + 0x30;
else if((HexTop>=10)&&(HexTop<=15)) AsciiTop = HexTop + 0x37;
else AsciiTop = 0xff;
if((HexBtm>=0)&&(HexBtm<=9)) AsciiBtm = HexBtm + 0x30;
else if((HexBtm>=10)&&(HexBtm<=15)) AsciiBtm = HexBtm + 0x37;
else AsciiBtm = 0xff;
txbyte(AsciiTop);
txbyte(AsciiBtm);
}
实验:
A = 0x33;
B = 0xB1;
C = 0xD7;
HexToAscii_SendTopBtm(A);
HexToAscii_SendTopBtm(B);
HexToAscii_SendTopBtm(C);
推荐阅读