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]);
		

}