增加BDW01-STM32L496VG开发板
This commit is contained in:
245
board/BDW01-STM32L496VG/BSP/Src/mymath.c
Normal file
245
board/BDW01-STM32L496VG/BSP/Src/mymath.c
Normal file
@@ -0,0 +1,245 @@
|
||||
|
||||
#include <string.h>
|
||||
#include "mymath.h"
|
||||
#include <ctype.h>
|
||||
|
||||
void Ascii_to_hex_char(char *dstbuf,char*rstbuf)
|
||||
{
|
||||
|
||||
//char *p = "jyh:abcdefghijklmnop";
|
||||
unsigned char i,len;
|
||||
len = strlen(rstbuf);
|
||||
//printf(rstbuf);
|
||||
for(i =0;i<len;i++)
|
||||
{
|
||||
sprintf(dstbuf+i*2,"%2x",rstbuf[i]);
|
||||
}
|
||||
dstbuf[i*2]=0;
|
||||
//printf(dstbuf);
|
||||
}
|
||||
|
||||
void HexStrToByte(const char* source, unsigned char* dest, int sourceLen)
|
||||
{
|
||||
short i;
|
||||
unsigned char highByte, lowByte;
|
||||
|
||||
for (i = 0; i < sourceLen; i += 2)
|
||||
{
|
||||
highByte = toupper(source[i]);
|
||||
lowByte = toupper(source[i + 1]);
|
||||
highByte = source[i];
|
||||
lowByte = source[i + 1];
|
||||
if (highByte > 0x39)
|
||||
highByte -= 0x37;
|
||||
else
|
||||
highByte -= 0x30;
|
||||
|
||||
if (lowByte > 0x39)
|
||||
lowByte -= 0x37;
|
||||
else
|
||||
lowByte -= 0x30;
|
||||
|
||||
dest[i/2] = (highByte << 4) | lowByte;
|
||||
}
|
||||
return ;
|
||||
}
|
||||
|
||||
//<2F>ֽ<EFBFBD><D6BD><EFBFBD>ת<EFBFBD><D7AA>Ϊʮ<CEAA><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
void ByteToHexStr(const unsigned char* source, char* dest, int sourceLen)
|
||||
{
|
||||
short i;
|
||||
unsigned char highByte, lowByte;
|
||||
|
||||
for (i = 0; i < sourceLen; i++)
|
||||
{
|
||||
highByte = source[i] >> 4;
|
||||
lowByte = source[i] & 0x0f ;
|
||||
|
||||
highByte += 0x30;
|
||||
if (highByte > 0x39)
|
||||
dest[i * 2] = highByte + 0x07;
|
||||
else
|
||||
dest[i * 2] = highByte;
|
||||
|
||||
lowByte += 0x30;
|
||||
if (lowByte > 0x39)
|
||||
dest[i * 2 + 1] = lowByte + 0x07;
|
||||
else
|
||||
dest[i * 2 + 1] = lowByte;
|
||||
}
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
//<2F>ֽ<EFBFBD><D6BD><EFBFBD>ת<EFBFBD><D7AA>Ϊʮ<CEAA><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ʵ<EFBFBD>ַ<EFBFBD>ʽ
|
||||
void Hex2Str( const char *sSrc, char *sDest, int nSrcLen )
|
||||
{
|
||||
int i;
|
||||
char szTmp[3];
|
||||
|
||||
for( i = 0; i < nSrcLen; i++ )
|
||||
{
|
||||
sprintf( szTmp, "%02X", (unsigned char) sSrc[i] );
|
||||
memcpy( &sDest[i * 2], szTmp, 2 );
|
||||
}
|
||||
return ;
|
||||
}
|
||||
//<2F><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA>Ϊʮ<CEAA><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4>룺
|
||||
int Myatoi(char *buf)
|
||||
{
|
||||
int result = 0;
|
||||
char ch;
|
||||
while((ch = *(buf++)) != '\0')
|
||||
{
|
||||
result = result*10 + ch-'0';
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
//<2F><>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
char * Myitoa(int val)
|
||||
{
|
||||
static char szTmp[4];
|
||||
memset(szTmp,0,4);
|
||||
sprintf(szTmp, "%02d", val );
|
||||
return szTmp;
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: str_to_hex
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA>Ϊʮ<CEAA><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: string <20>ַ<EFBFBD><D6B7><EFBFBD> cbuf ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> len <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>ȡ<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||||
*****************************************************************************/
|
||||
int str_to_hex(char *string, unsigned char *cbuf, int len)
|
||||
{
|
||||
unsigned char high, low;
|
||||
int idx, ii=0;
|
||||
for (idx=0; idx<len; idx+=2)
|
||||
{
|
||||
high = string[idx];
|
||||
low = string[idx+1];
|
||||
|
||||
if(high>='0' && high<='9')
|
||||
high = high-'0';
|
||||
else if(high>='A' && high<='F')
|
||||
high = high - 'A' + 10;
|
||||
else if(high>='a' && high<='f')
|
||||
high = high - 'a' + 10;
|
||||
else
|
||||
return -1;
|
||||
|
||||
if(low>='0' && low<='9')
|
||||
low = low-'0';
|
||||
else if(low>='A' && low<='F')
|
||||
low = low - 'A' + 10;
|
||||
else if(low>='a' && low<='f')
|
||||
low = low - 'a' + 10;
|
||||
else
|
||||
return -1;
|
||||
|
||||
cbuf[ii++] = high<<4 | low;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: hex_to_str
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> 0->30 1->31
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ptr <20>ַ<EFBFBD><D6B7><EFBFBD> buf ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> len ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>ȡ<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>
|
||||
*****************************************************************************/
|
||||
void hex_to_str(char *ptr,unsigned char *buf,int len)
|
||||
{
|
||||
for(int i = 0; i < len; i++)
|
||||
{
|
||||
sprintf(ptr, "%02x",buf[i]);
|
||||
ptr += 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: hexstr_to_byte
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*****************************************************************************/
|
||||
int hexstr_to_byte(const unsigned char* source)
|
||||
{
|
||||
int i=0,ret=0;
|
||||
char dest[2];
|
||||
|
||||
for(i=0;i<2;i++)
|
||||
{
|
||||
dest[i]=source[i]-'0';
|
||||
if((dest[i] < 0) || (dest[i] > 54))
|
||||
return 0;
|
||||
if((dest[i]> 9) && (dest[i]< 23)) //A~F
|
||||
dest[i] -= 7;
|
||||
else if((dest[i]> 48) && (dest[i]<55)) //a~f
|
||||
dest[i] -= 39;
|
||||
// printf("dest[%d]:%d\r\n",i,dest[i]);
|
||||
}
|
||||
ret = dest[0]*16+dest[1];
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: decstr_to_int
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>
|
||||
*****************************************************************************/
|
||||
int decstr_to_int(const unsigned char* src)
|
||||
{
|
||||
int i=0,ret=0;
|
||||
int len = strlen(src);
|
||||
for(i=0;i<len;i++)
|
||||
{
|
||||
if((src[i] < '0') || (src[i] > '9'))
|
||||
return -1;
|
||||
ret =ret*10+(src[i]-'0');
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
src Դ<>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ(buf<75>ĵ<EFBFBD>ַ)
|
||||
separator ָ<><D6B8><EFBFBD>ķָ<C4B7><D6B8>ַ<EFBFBD>
|
||||
dest <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
num <20>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
|
||||
*****************************************************************************/
|
||||
void split(char *src,const char *separator,char **dest,int *num) {
|
||||
|
||||
char *pNext;
|
||||
int count = 0;
|
||||
if (src == NULL || strlen(src) == 0) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַΪ<D6B7>ջ<D5BB>Ϊ0<CEAA><30>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ֹ
|
||||
return;
|
||||
if (separator == NULL || strlen(separator) == 0) //<2F><>δָ<CEB4><D6B8><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ֹ
|
||||
return;
|
||||
pNext = (char *)strtok(src,separator); //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>(char *)<29><><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>(<28><>Ȼ<EFBFBD><C8BB>д<EFBFBD>еı<D0B5><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
while(pNext != NULL) {
|
||||
if(dest)
|
||||
*dest++ = pNext;
|
||||
++count;
|
||||
pNext = (char *)strtok(NULL,separator); //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>(char *)<29><><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
|
||||
}
|
||||
if(num)
|
||||
*num = count;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user