pub_puck.c

来自「ST736单片机」· C语言 代码 · 共 91 行

C
91
字号
#include "Pub_PUCK.h"
#include "div.h"
#include "string.h"

/**********************************************************************************
函数功能:设置结构体校验和,校验和均为1个字节
入口:无
出口:无
**********************************************************************************/
void SetCs_Pub(void *Src,INT16U Len)
{
  INT16U i;
  INT8U Cs,*ptr;
  
  ptr=(INT8U *)Src;
  for(i=0,Cs=0;i<Len-1;i++)
  {
    Cs+=ptr[i]; 
  }
  
  ptr[Len-1]=Cs;
}
/**********************************************************************************
函数功能:检查结构体校验和,校验和均为1个字节
入口:无
出口:无
**********************************************************************************/
INT8U CheckCs_Pub(void *Src,INT16U Len)
{
  INT16U i;
  INT8U Cs,*ptr;
  
  ptr=(INT8U *)Src;
  for(i=0,Cs=0;i<Len-1;i++)
  {
    Cs+=ptr[i]; 
  }
  
  if(ptr[Len-1]==Cs)
    return 1;
  
  return 0;
}
/**********************************************************************************

**********************************************************************************/

void Assert(BOOLEAN x,INT8U *pFile,INT8U *Line)
{
  if(!x)
  {
         DEBUG_PRINT(PUCK,PRINT_PUCK_CUR,"Err File:%s,Line:%d\n",pFile,Line);//打印出错位置
  }
}
/**********************************************************************************

**********************************************************************************/
void mem_cpy(void *pDst, void *pSrc,INT32U SrcLen,void *pDst_Start,INT32U Dst_Len)
{
  BOOLEAN flag;
  
  flag=((INT8U*)pDst+SrcLen<=(INT8U*)pDst_Start+Dst_Len)?1:0;
  //ASSERT(flag);
  if(!flag)
  {
    DEBUG_PRINT(PUCK,PRINT_PUCK_CUR,"memcpy Logic Error:File=%s,Line=%d\n",__FILE__,__LINE__);//打印出错位置
    return ;
  }
  //ASSERT(pDst+SrcLen<=pDst_Start+Dst_Len);
  memcpy(pDst_Start,pSrc,SrcLen);  
}
/**********************************************************************************

**********************************************************************************/
void mem_set(void *pDst, INT8U Value,INT32U SetLen,void *pDst_Start,INT32U Dst_Len)
{
  BOOLEAN flag;
  
  flag=((INT8U*)pDst+SetLen<=(INT8U*)pDst_Start+Dst_Len)?1:0;
  //ASSERT(flag);
  if(!flag)
  {
    DEBUG_PRINT(PUCK,PRINT_PUCK_CUR,"memset Logic Error:File=%s,Line=%d\n",__FILE__,__LINE__);//打印出错位置
    return ;
  }
  memset(pDst_Start,Value,SetLen); 
  
  
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?