📄 func.c
字号:
//**********************************************************************************************
//* 文 件 名 : func.c
//*
//* 文件描述 : 独立小函数
//*
//* 作 者 : knight
//* 版 本 : V0.01
//* 编 译 器 : IAR EWARM 5.30
//* 日 期 : 2009-10-18
//* 所需支持代码:
//**********************************************************************************************
#include "func.h"
/*******************************************************************************
* Function Name : StrToInt8
* Description : 字符串 转 u8
* Input : Str--字符串首地址
* Output : Int8--转换结果存放地址
* Return : 0--转换失败 1--转换成功
*******************************************************************************/
u8 StrToInt8(u8* Str,u8* Int8)
{
u8 ch,i;
u8 D=0;
for (i=0;i<2;i++)
{
ch=Str[i];
if ( (ch>='0')&&(ch<='9') )
{
ch-='0';
}
else if ( (ch>='A')&&(ch<='F') )
{
ch-='A';
}
else if ( (ch>='a')&&(ch<='f') )
{
ch-='a';
}
else
{
return False;
}
D<<=4;
D+=ch;
}
return True;
}
/*******************************************************************************
* Function Name : StrToInt16
* Description : 字符串 转 u16
* Input : Str--字符串首地址
* Output : Int16--转换结果存放地址
* Return : 0--转换失败 1--转换成功
*******************************************************************************/
u8 StrToInt16(u8* Str,u16* Int16)
{
u8 i,n;
u16 D=0;
for (i=0;i<2;i++)
{
if (!StrToInt8(Str,&n))
{
return False;
}
D<<=8;
D+=n;
Str++;
Str++;
}
*Int16=D;
return True;
}
/*******************************************************************************
* Function Name : StrToInt32
* Description : 字符串 转 u32
* Input : Str--字符串首地址
* Output : Int32--转换结果存放地址
* Return : 0--转换失败 1--转换成功
*******************************************************************************/
u8 StrToInt32(u8* Str,u32* Int32)
{
u8 i;
u16 n;
u32 D=0;
for(i=0;i<2;i++)
{
if (!StrToInt16(Str,&n))
{
return False;
}
D<<=16;
D+=n;
Str+=4;
}
*Int32=D;
return True;
}
/*******************************************************************************
* Function Name : Int8ToStr
* Description : Int8 转字符串
* Input : Int8--数据
* Output : Str--字符串首地址
* Return : 无
*******************************************************************************/
void Int8ToStr_Hex(u8 Int8, u8* Str)
{
u8 n;
n=(Int8>>4);
Str[0]=(n<0x0A?n+'0':n-0x0A+'A');
n=Int8&0x0F;
Str[1]=(n<0x0A?n+'0':n-0x0A+'A');
}
/*******************************************************************************
* Function Name : Int16ToStr
* Description : Int16 转 字符串
* Input : Int16--数据
* Output : Str--字符串首地址
* Return : 无
*******************************************************************************/
void Int16ToStr_Hex(u16 Int16, u8* Str)
{
u8 H,L;
H=(Int16>>8);
L=(Int16 & 0xff);
Int8ToStr_Hex(H,Str);
Str+=2;
Int8ToStr_Hex(L,Str);
}
/*******************************************************************************
* Function Name : Int16ToStr
* Description : Int16 转 字符串
* Input : Int16--数据
* Output : Str--字符串首地址
* Return : 无
*******************************************************************************/
void Int32ToStr_Hex(u32 Int32, u8* Str)
{
u16 H,L;
H=(Int32>>16);
L=(Int32 & 0xffff);
Int16ToStr_Hex(H,Str);
Str+=4;
Int16ToStr_Hex(L,Str);
}
/*******************************************************************************
* Function Name : IntToStr_Dec
* Description : Int 转 十进制的字符串
* Input : Int32--整数,Len--十进制位数
* Output : Str--字符串首地址 低位在前
* Return : 无
*******************************************************************************/
void IntToStr_Dec(u32 Int32,u8* Str,u8 Len)
{
u8 i,d;
for (i=0;i<Len;i++)
{
if (Int32)
{
d= Int32 % 10;
Str[Len-i]=d+'0';
Int32=Int32 / 10;
}
else
{
Str[Len-i]='0';
}
}
}
/*******************************************************************************
* Function Name : BufCopy_8
* Description : 内存拷贝
* Input : Buf_Source--数据源,len--拷贝字节数
* Output : Buf_Target--目标内存
* Return : 无
*******************************************************************************/
void BufCopy_8(u8* Buf_Target, u8* Buf_Source,u16 len)
{
while(len>0)
{
*Buf_Target=*Buf_Source;
Buf_Target++;
Buf_Source++;
len--;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -