2023-10-06 18:47:05 +08:00
|
|
|
#ifndef _UTILITY_H
|
|
|
|
#define _UTILITY_H
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include "stm32f10x.h"
|
|
|
|
|
|
|
|
float myatof(const char* str);
|
|
|
|
uint16_t atoi16(const char* str,uint16_t base); /* Convert a string to integer number */
|
|
|
|
uint32_t atoi32(const char* str,uint16_t base); /* Convert a string to integer number */
|
2023-11-01 23:51:19 +08:00
|
|
|
void myitoa(int n,char* str, int len);
|
2023-10-06 18:47:05 +08:00
|
|
|
int validatoi(const char* str, int base, uint32_t* ret); /* Verify character string and Convert it to (hexa-)decimal. */
|
|
|
|
char c2d(uint8_t c);
|
|
|
|
char d2c(uint8_t c);
|
|
|
|
uint16_t swaps(uint16_t i);
|
|
|
|
uint32_t swapl(uint32_t l);
|
|
|
|
|
|
|
|
void replacetochar(char * str, char oldchar, char newchar);
|
|
|
|
|
|
|
|
void mid(const char* src, const char* s1, const char* s2, char* sub);
|
|
|
|
|
|
|
|
void bytes2hexString(const char* data, uint32_t len, char* str);
|
|
|
|
//冒泡排序16位数据
|
|
|
|
void Bubble_Sort_u16(uint16_t* buf,uint32_t len);
|
|
|
|
//数据左移
|
|
|
|
void BufMoveLeft(uint8_t* srcbuf,uint16_t offset,uint16_t data_len);
|
|
|
|
//数据右移
|
|
|
|
void BufMoveRight(uint8_t* srcbuf,uint16_t offset,uint16_t data_len);
|
|
|
|
/*
|
|
|
|
Hex Datas to Bytes
|
|
|
|
*/
|
|
|
|
uint8_t HexStrings2Byte(char**strs,uint16_t size,uint8_t* buf,uint16_t buf_size);
|
|
|
|
/*
|
|
|
|
Hex Datas to uint32_t
|
|
|
|
*/
|
|
|
|
uint32_t HexStrings2UInt(char*str);
|
|
|
|
//@brief 计算数组异或校验值
|
|
|
|
//@param *srcbuf 数据源
|
|
|
|
//@param len 计算长度
|
|
|
|
//@rtvl 返回计算结果
|
|
|
|
uint8_t CheckCRC_8(uint8_t* Ptr,uint16_t num);
|
|
|
|
//@brief 计算CRC32
|
|
|
|
//@param *srcbuf 数据源
|
|
|
|
//@param len 计算长度
|
|
|
|
//@rtvl 返回计算结果
|
|
|
|
uint32_t Crc32Calu(uint32_t* buf, uint32_t len);
|
|
|
|
/*
|
|
|
|
@brief 获取数组中的最大值和最小值
|
|
|
|
@param *aus_buf 缓存数组
|
|
|
|
@param us_size 数组长度
|
|
|
|
@param *us_max 最大值
|
|
|
|
@param *us_min 最小值
|
|
|
|
*/
|
|
|
|
|
|
|
|
void GetMaxAndMinValue(uint16_t* aus_buf,uint16_t us_size,uint16_t* us_max,uint16_t* us_min);
|
|
|
|
//@brief 计算数组的CRC8值
|
|
|
|
//@param *srcbuf 数据源指针
|
|
|
|
//@param len 数据源长度
|
|
|
|
//@rtvl 返回计算结果
|
|
|
|
uint8_t CheckXOR_8(uint8_t* srcbuf,uint16_t len);
|
|
|
|
#endif
|