⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 func.c

📁 SD卡调试所用的资料
💻 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 + -