增加BDW01-STM32L496VG开发板

This commit is contained in:
sunlikun
2020-11-18 18:05:05 +08:00
parent 65e5b9fe84
commit abcf43d131
199 changed files with 50338 additions and 0 deletions

View 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;
}