This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

我用串行助手以hex的形式向MSP430单片机发送数据,每次只发送一组数据,比如十六进制的40,然后用一个数组中的一位来保存,那么这个时候数组中保存的是什么?怎样才能把它读出来实现16进制转换10进制? 这是我的代码

我用串行助手以hex的形式向MSP430单片机发送数据,每次只发送一组数据,比如十六进制的40,然后用一个数组中的一位来保存,那么这个时候数组中保存的是什么?怎样才能把它读出来实现16进制转换10进制?
这是我的代码

#pragma vector = UART0RX_VECTOR
__interrupt void UART0_RXISR(void)
{



Data1[count1]=RXBUF0; //数据存入Data数组中

// TXBUF0 =RXBUF0; 

if(Data1[count1++]==0) //是否到达末尾
{

for(j1=0;j1<count1;j1++)
{ Buffer1[j1]=Data1[j1]; }//复制字符串

}


Data32[0]=Data1[0];
long v=hexToDec(Data32);

if(v==64) 


P2OUT = 0x7f; 
send_string("led is on"); 
flag=1; 

}
if(v==72) 


P2OUT = 0xff; 
send_string("led is off"); 
flag=1; 

}
}

/* 十六进制数转换为十进制数 */
long hexToDec(char *source)
{
long sum = 0;
long t = 1;
int i, len;
len = strlen(source);
for(i=len-1; i>=0; i--)
{
sum += t * getIndexOfSigns(*(source + i));
t *= 16;
}

return sum;
}
/* 返回ch字符在sign数组中的序号 */
int getIndexOfSigns(char ch)
{
if(ch >= '0' && ch <= '9')
{
return ch - '0';
}
if(ch >= 'A' && ch <='F')
{
return ch - 'A' + 10;
}
if(ch >= 'a' && ch <= 'f')
{
return ch - 'a' + 10;
}
return -1;