|
" x+ K9 P) g& U/*$PAGE*/
% t6 p+ E& e( A, v7 Y4 l. @1 u9 V/*
( J: H }* H0 h; E' G0 o: f3 N*********************************************************************************************************# X' C9 j8 {" P: J% @
* HexToStr
5 z- r5 _3 L6 K! Y- o; |2 @: s1 U* Functions : Hex转字符串/ J( ~7 N: M- u' L1 F" X7 S1 D a h
*
8 J9 c& c; |% }# w* Arguments : pSrc 被转换的Hex地址7 @7 y0 {: v& j9 J+ z/ N
* pDst 被转换后的字符串地址& [% d7 `6 Q% C) _
* LimitLen 目的地址空间限制长度 ! Q; R8 _2 n# S
* ^: v- e8 n, o8 Q, \/ r
* Returns : 无
- [" u+ w% ^" L/ {! b ]*********************************************************************************************************$ U: x2 v& n: V& ~
*/! t8 i! ?3 }4 T% M, J: f" j/ q
CPU_VOID HexToStr(CPU_VOID *pDst, CPU_VOID *pSrc, CPU_INT16U LimitLen), X" a0 _1 c3 T
{% D6 X) ~' g( o( D& R
CPU_INT16U i = 0;
4 J4 ?2 I! b I; Q; X! i CPU_INT08U ddl, ddh;9 F9 r+ X, [* S
CPU_INT08U *pSrcBuff = (CPU_INT08U*)pSrc;* ]: d9 Y! a1 w( O2 P
CPU_INT08U *pDstBuff = (CPU_INT08U*)pDst;, @* G2 ?4 t9 K$ n6 Y- Q
5 s" G# M2 k. T" P( ]7 Q" X
CPU_INT16U ValidLen = LimitLen >> 1;( r4 [$ M d. Q
M- h: o/ Q. w: k% Y( N& t for (i = 0; i < ValidLen; i++)
3 O& ~' `2 k J {
& r7 P3 v* J* f7 ^& e ddh = 48 + pSrcBuff[i] / 16;
: ^; z6 j9 @7 V' \# w/ r9 J8 s& j/ l ddl = 48 + pSrcBuff[i] % 16;
0 j! g% ` e2 Q3 {% X
. Y. J* T& [" ~ if (ddh > 57)2 ~7 |2 Y& a8 O3 ?
{( N$ {% S$ c% M% I" q3 y
ddh = ddh + 7;# j! E0 R' S+ K) w1 }. W# [4 u3 E
}" ?( ^% x( p8 M6 ~$ n! H( T
if (ddl > 57)
1 ]+ t2 P4 \2 {! k9 I, u1 D {; Y5 A% R9 g/ y( ^: K4 O( N* V5 E
ddl = ddl + 7;9 n' {0 l# U7 h* F! b
}
6 z' i$ a0 b$ G N, m 3 c6 v* q7 W8 f( X
pDstBuff[i * 2] = ddh;
1 m& t+ w H: |% l8 T% t pDstBuff[i * 2 + 1] = ddl;
) D; J% r) H/ ^, [8 Y( n5 D }
! X5 O+ D- m" i3 U8 q: P8 y0 I
) a; W& [1 a/ c, B' v. f# @) H8 ^ if (LimitLen % 2 != 0)
& N6 }* B r/ S' j3 e3 v, b( a pDstBuff[LimitLen * 2] = '\0';% V" M, Y% ~% |* V8 F0 f4 z
}
! \6 M6 C8 q$ ~' j自用代码,可以参考 |
|