Data_deal.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef __data_deal_H__
  2. #define __data_deal_H__
  3. #include "stdio.h"
  4. #include "string.h"
  5. #include "stdint.h"
  6. #include <ctype.h>
  7. void StrToHex(uint8_t *pbDest, uint8_t *pbSrc, int nLen); //字符串转成16进制数
  8. void HexToStr(uint8_t *pbDest, uint8_t *pbSrc, int nLen); //16进制转换成字符串
  9. void Switch_U32_To_BYTE4(unsigned long temp_U32_data, unsigned char*data); //将32位无符号整数转成4字节数组存储
  10. unsigned long Switch_BYTE4_To_U32(unsigned char*data); //将U32的4字节数组转成32位无符号整数
  11. void Switch_S32_to_ASCII(signed long data, unsigned char*str); //将32位有符号整数转成ASCII字符串显示
  12. void Switch_Float_To_ASCII(float temp_float_data, unsigned char*str); //将浮点数转成ASCII字符串
  13. void Switch_S16_To_Byte2(signed short temp_S16_data, unsigned char*data); //将有符号整数转成2字节数组存储
  14. signed short Switch_Byte2_To_S16(unsigned char*data); //2字节数组转成有符号整数
  15. float Switch_Byte4_To_Float(unsigned char*data); //四字节数组转成浮点数
  16. void Switch_Float_To_Byte4(float temp_float_data, unsigned char*data); //将浮点数转成四字节数组存储
  17. void Data32ToBuf(uint16_t *buf, uint32_t data32); //4字节数存放到数组中 数组起始地址存放高字节
  18. int32_t BufToData32(uint16_t *buf); //2字节数组组成一个32位数 数组起始地址存放高字节
  19. void S32_to_u8(signed long data,unsigned char*str);
  20. uint16_t LRC_Check(uint8_t *data);
  21. uint16_t Calc_LRC(uint8_t* data, int data_len);
  22. uint8_t MODBUS_ASCII_GetLrc(uint8_t *pCyAsciiBuf, uint8_t cyLen);
  23. uint8_t MODBUS_ASCII_AsciiToHex(uint8_t *pbDest);
  24. uint8_t MODBUS_ASCII_GetLrc(uint8_t *pCyAsciiBuf, uint8_t cyLen); //MODBUS LDR校验
  25. void MODBUS_S32_to_ASCII(int32_t data32 ,uint8_t *pAsciiBuf );
  26. void MODBUS_S16_to_ASCII(int16_t data16 ,uint8_t *pAsciiBuf );
  27. void MODBUS_S8_to_ASCII(int8_t data8 ,uint8_t *pAsciiBuf );
  28. uint16_t CRC16(unsigned char *pBuf,int nLength) ;
  29. unsigned short CRC16_MODBUS(unsigned char *puchMsg, unsigned int usDataLen);
  30. float MODBUS_ASCII_AsciiToFlaot(uint8_t *pbDest);
  31. void MODBUS_Float_to_ASCII(float data32 ,uint8_t *pAsciiBuf );
  32. //单字节BCD转为HEX子程序
  33. unsigned char BCDtoHEX(unsigned char bcd_data);
  34. //单字节HEX转为BCD子程序
  35. unsigned char HEXtoBCD(unsigned char hex_data);
  36. /********** BCD to HEX **********/
  37. //双字节数值范围:0~9999
  38. uint16_t BCD2HEX(uint16_t bcd);
  39. /********** BCD to HEX **********/
  40. //双字节数值范围:0~9999
  41. uint16_t HEX2BCD(uint16_t hex);
  42. #endif