|
大神,这个在IAR里读取的数值是十六进制的,但是想要转换成十进制,不成功,有没有什么好用的程序,求教
void main(void)
{ int i,t,n;
unsigned char len = 0;
unsigned char str[10] = {'\0'};
unsigned char pulse[10]= {'\0'};
unsigned char s_H;
unsigned char s_L;
set_32MHZ();
uart_init(SYS_CLOCK_32MHZ , UART_BAUD_9600);
//uart_sendstring("hello world!\r\n" , 14);
while(1)
{ unsigned char p;
int sum=0;
str = uart_readstring(str , 10);
s_H=(str&0xf0)>>4;
s_L=str&0x0f;
if(len == 0)
{
for(i=0;str;i++)
{
if( s_H <='9')
t=s_H-'0';
else t=s_H-'A'+10;
if (s_L <='9')
n=s_L-'0';
else n=s_L-'A'+10;
sum=t*16+n;
}
p=3000/sum;
pulse=p;
U0DBUF = *pulse;
uart_sendstring(pulse, len);
// len = 0;
}
}
} |
|