| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- /** ******************************************************************************
- * @file String.c
- * @author 度云未来 DOIOT
- * @brief 针对公司模块AT指令的处理库
- ******************************************************************************
- * @attention
- * <h2><center>© Copyright (c) 2019 成都度云未来
- * All rights reserved.</center></h2>
- * 注意:本程序针对cubemx 生成的hal库程序快速开发
- * 环境:keil5.0
- * STM32Cube FW_F1 V1.8.0
- ********************************************************************************/
-
- typedef struct{
-
- uint8_t (*Hex_str)(char *ascii_str,char hex_str[]);
-
- uint8_t (*char_2_hex)(char c1,char c2);
-
- uint8_t (*char_2_dec)(char c1,char c2);
-
- uint16_t (*dec_arry)(char ascii_str[],uint8_t dex_arry[]);
-
- uint16_t (*hex_arry)(char ascii_str[],uint8_t hex_arry[]);
-
- uint8_t (*R_CUT)(char *str,char buff[],uint8_t len);
-
- uint8_t (*L_CUT)(char *str,char buff[],uint8_t len);
-
- }TO;
- typedef struct{
-
- uint8_t (*Hex_Str)(uint8_t ascii_str[]);
-
- uint8_t (*Ascii_Str)(uint8_t ascii_str[]);
-
- uint16_t (*dec_arry)(uint8_t ascii_str[]);
-
- uint16_t (*hex_arry)(uint8_t ascii_str[]);
-
- uint8_t (*R_CUT)(char *str,uint8_t len);
-
- uint8_t (*L_CUT)(char *str,uint8_t len);
-
- uint8_t (*L_Shift)(char *str,uint8_t len);
-
- }Convert;
- typedef struct{
-
-
- uint8_t (*hexStr)(uint8_t arry[],char hex_str[],uint16_t len);
- uint8_t (*decStr)(uint8_t arry[],char dec_str[],uint16_t len);
- uint8_t (*asciiStr)(uint8_t arry[],char dec_str[],uint16_t len);
-
- uint8_t (*R_CUT)(uint8_t arry[],uint8_t arry_len,uint8_t cut_len);
- uint8_t (*L_CUT)(uint8_t arry[],uint8_t arry_len,uint8_t len);
-
- }Array;
- typedef struct
- {
-
- int a;
-
-
- }_AT;
- typedef struct{
-
- TO to;
-
- Convert convert;
-
- }STR;
- void STR_init(STR * st);
- void Array_init(Array *ar);
- extern STR Str;
- extern Array array;
- /**@brief AsciiStr_2_HexStr : string 按ascii理解,单个单个的转变成 hex 字符串
- * @param ascii_str : 字符串或数组,是数组的情况下需要保证有结束位
- * @param hex_str : 生成的新字符串
- * 例子: "stm32f103" "73746D33326631"
- */
- uint8_t AsciiStr_2_HexStr(char *ascii_str,char hex_str[]);
- /**@brief str_2_dec_arry:【string 数据按10进制理解,两两转化成 8位数组 arry】
- * @param ascii_str : 字符串或数组,导入后自身会被转化成hex的字符串
- * return 会返回长度
- * 例子: char s[]="32323232" ---> uint8_t arry={32,32,32,32};
- */
- uint16_t str_2_dec_arry(char ascii_str[],uint8_t dex_arry[]);
- /**@brief str_2_hex_arry:【string 数据按10进制理解,两两转化成 8位数组 arry】
- * @param ascii_str : 字符串或数组,导入后自身会被转化成hex的字符串
- * return 会返回长度
- * 例子: char s[]="32323232" ---> uint8_t arry={0x32,0x32,0x32,0x32};
- */
- uint16_t str_2_hex_arry(char ascii_str[],uint8_t hex_arry[]);
- /**@brief char_2_hex:两个字符按16进制理解转换成一个十六进制,return返回
- * 例子: char c1='1' char c2='1' uint8_t a=11;
- */
- uint8_t char_2_hex(char c1,char c2);
- /**@brief char_2_dec两个字符按10进制理解转换成一个十进制,return返回
- * 例子: char c1='1' char c2='1' uint8_t a=0x11;
- */
- uint8_t char_2_dec(char c1,char c2);
- /**@brief R_CUT:右靠裁剪len长至buff,str为原数据,之所以选择加一个buff是为了保护原数据
- */
- uint8_t R_CUT(char *str,char buff[],uint8_t len);
- /**@brief L_CUT:左靠裁剪len长至buff,str为原数据,之所以选择加一个buff是为了保护原数据
- */
- uint8_t L_CUT(char *str,char buff[],uint8_t len);
- /**@brief AsciiStr_convert_HexStr:ascii字符数组转hex字符数组
- * @param ascii_str : 字符串或数组,导入后自身会被转化成hex的字符串
- * 例子: "stm32f103" "73746D33326631"
- */
- uint8_t AsciiStr_convert_HexStr(uint8_t ascii_str[]);
- /**@brief str_2_dec_arry:【string 数据按10进制理解,两两转化成 8位数组 arry】
- * @param ascii_str : 字符串或数组,导入后自身会被转化成hex的字符串
- * return 会返回长度
- * 例子: char s[]="32323232" ---> uint8_t arry={32,32,32,32};
- */
- uint16_t str_convert_dec_arry(uint8_t ascii_str[]);
- /**@brief str_2_hex_arry:【string 数据按10进制理解,两两转化成 8位数组 arry】
- * @param ascii_str : 字符串或数组,导入后自身会被转化成hex的字符串
- * return 会返回长度
- * 例子: char s[]="32323232" ---> uint8_t arry={0x32,0x32,0x32,0x32};
- */
- uint16_t str_convert_hex_arry(uint8_t ascii_str[]);
- /**@brief AsciiStr_convert_HexStr:ascii字符数组转hex字符数组
- * @param ascii_str : 字符串或数组,导入后自身会被转化成hex的字符串
- * 例子: "73746D33326631" "stm32f103"
- */
- uint8_t HexStr_convert_AsciiStr(uint8_t ascii_str[]);
- /**@brief R_CUT:右靠裁剪len长至buff,直接改变原数据
- */
- uint8_t Convert_R_CUT(char *str,uint8_t len);
- /**@brief L_CUT:左靠裁剪len长至buff,直接改变原数据
- */
- uint8_t Convert_L_CUT(char *str,uint8_t len);
- /**@brief Shift_left:字符串左移,直接改变原数据
- */
- uint8_t Shift_left(char *str,uint8_t len);
- /*----------------------------------------------------------------------------------*/
- /**@brief Arry_2_hexstr : 8位数组按数据理解转换成16进制表示的字符串
- * @param arry : 输入数组
- * @param hex_str : 生成的字符串
- * 例子: uint8_t arry={0x32,0x32,0x32,0x32}; ---> "32323232"
- */
- uint8_t Arry_2_hexstr(uint8_t arry[],char hex_str[],uint16_t len);
- /**@brief Arry_2_decstr : 8位数组按数据理解转换成16进制表示的字符串
- * @param arry : 输入数组
- * @param hex_str : 生成的字符串
- * 例子: uint8_t arry={0x32,0x32,0x32,0x32}; ---> "32323232"
- */
- uint8_t Arry_2_decstr(uint8_t arry[],char dec_str[],uint16_t len);
- /**@brief Arry_2_AsciiStr : 8位数组按ascii理解转换成16进制表示的字符串
- * @param arry : 输入数组
- * @param hex_str : 生成的字符串
- * 例子: uint8_t arry={0x32,0x32,0x32,0x32}; ---> "2222"
- */
- uint8_t Arry_2_AsciiStr(uint8_t arry[],char dec_str[],uint16_t len);
- /**@brief R_CUT:右靠裁剪len长至buff,
- */
- uint8_t Arry_R_CUT(uint8_t arry[],uint8_t arry_len,uint8_t cut_len);
- /**@brief L_CUT:左靠裁剪len长至buff,
- */
- uint8_t Arry_L_CUT(uint8_t arry[],uint8_t arry_len,uint8_t len);
|