C语言方便can通信的10进制转16进制(拆分)
发布时间 2023-11-21 15:14:19作者: qdyaodao
can通讯时候是把4位16进制 分成两个2位(0xFFFF--->0xFF 0xFF)
就随手写了一个小工具 把十进制转换成两个十六进制 方便修改can报文 如有问题请大家不吝赐教
uint8_t rad[2]={0x00,0x00} ;
void MSG_Trans(int dec)
{
uint8_t HexH= 0x00;
uint8_t HexL= 0x00;
for(int i = 0;i<dec;i++)
{
if(HexL == 0xff)
{
if(HexH == 0x0f)
{
if(HexH != 0xff)
{
HexH += 0x10;
}
HexH &= 0xF0;
}
else
{
if(HexH != 0xff)
HexH += 0x01;
}
HexL = 0x00;
}
else
HexL += 0x01;
}
rad[0]=HexH;
rad[1]=HexL;
printf("\r\nHexH:%x\r\n",rad[0]);
printf("HexL:%x\r\n",rad[1]);
}