From 74bf5890db756f405c9bed7a1b1455d67f8d94c9 Mon Sep 17 00:00:00 2001 From: tianjialong Date: Thu, 27 Apr 2023 10:25:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=88=B5=E6=9C=BA=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E8=AE=A1=E7=AE=97=E5=B7=A5=E5=85=B7=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- testtool/舵机校验计算工具/a.exe | Bin 0 -> 55300 bytes testtool/舵机校验计算工具/main.c | 75 +++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 testtool/舵机校验计算工具/a.exe create mode 100644 testtool/舵机校验计算工具/main.c diff --git a/testtool/舵机校验计算工具/a.exe b/testtool/舵机校验计算工具/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..8bcfe0608428eb3300a7da745afd2972c7b5f1c5 GIT binary patch literal 55300 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�e zJ2_MMv;LuHY?;O)_rW4!nSMJ{97w+zu$(Bgq`ePj--}7LVZ&>wpJuEVfqC_tkg`9_ zwf~6)U_$<>)q)%tn!F?seO1AREXMqpIQXS{_jF!?8#A8 zQxBrvao>r3Da!J`ORzVA!7Js3#8k=+hw zmnd@G%_EMDMVVszqg&DYP6RC3p|`Q5u%#aG*uQB3KFT+wpYY%Qed6AQIycyTPxzOQ zHCT=Wpfopkva*FBdh%~aGjoCNPah4GybVmh-G5Z7+91JC{xm**f?92K=xtkSt;hbT zkr8sd`%QefNqvEez847S12e8fH4l3qL?u~v9*hdGf4&0oV#LJ^NAp|8vguRUwAmfr zG=d=Up-s>VCUGn1*+2d)%5H+Ex6i(x9NkS;${T(X(duK5!F*Zv6)Xo~dRQA%i}3k> zBO*L={HV4yu^+f7e>bQ74McZeyXn(BaUa1ygJ^01G^t6lBa&uvfM%`j9H`OS^jY90 zdpCWKiflv?veoR(nizK?$;BWpJX0$=x@ifOeRk7b6fD!`RZMe2zQ-Xs6Ec*5V0Q7_ zd|4(IN*-QmF5syWS?S?hpzEAcKSoCN*ohf{()=QFxPXs|oZrAE_4z^Mb3NWG@_&GQ z-uq5GiI_HDIJ2LkO`r7B8S7XJ^|;hh-|%mePBiIuCyf&i07}AV{}xR|T3evj&M608 zIp5veiW<^*U;QQ~)eMUH(!apYNnm8@>*(K)ff^vRm*QW33XzkQ&&()6e?Z55a<(Vk zU6k?7PH#C==)>@P);Dz6=3Aak*PTmmLE_KOQr;51@si%FzZ>HbCUI|wR^apV- z27iA#i*XwpJ}0)3`iSMpS4ln^L@~tA%@kl-Odq=a6=XYa|6^U>ua$DNOatgh{5Fx?DBW>(Fk(OmCECI&7y%#@f@&g|+XeeL>8mn5&$(_{NWu zJh}F|o!e`&UfAk0s;$04?ZWN<7vM^o|C+Q{zFOtfH2Zq9wg^KPZItC?3WI)~8?=4+ z1ISd3dRU|VbwS&{pElm4QF9U}za(t>Id0ST;rAf_mwl8rT{26OWR{pd*Z49k&vDSEVFaU@S>ylWOFuLIujl}CU|h)(U#1R* z_&Zu<-r_)!)XSjNM#cF;P$yn)pbk#SI6Uqgn%{vg#!vpg zqujnT)-M7Nte;KU`S|F(1qQMYT#3}Z$Qv))O&)v38YO}-sY^1B4L?rJI@y$&yWyqe za=4k8P*L6QrCvvoE?(p=6w%4;CvqThBlazVj_ghv6-G)oa?B23o_v9i2bi7VQ)78p zfSi*ra`|X_-T!Hnj#tsTOKpYaoCCc37$i4)lKy#tLrG5*+zDk*gt%C^YI&9q~W8-C= zSa6*Df@r^twF7WSvGB096*1zR!yfDD(whK={;1H;MzdeQkai*o<;(dl?8bihq3W^Q zH_(oF((+{WSl8`)7R@Ta?iG3Nw{O69dl9u%G+9%4}zv*58H_Wog{!M=| zs04bShUE!B#^h9jw85#^lqfp8n0SX^g6 zRY*!aYumjOn|x<3p+^JPHQbzfzc2lK){6?D(l`3TH$eR71^XSu-i^KJgEH0& zNly5}wHx7sc^t(m0{l-Q|2I%xm%o|hFA$~b{dgi0upG*7!AjYJSQ8(q(A)b>*VRsp zF7U@x!X5(ta2@pdVrG;t{f;HC$1^7Mjerft=_2F2Ml(*&A@q$K zVGqX|(nsSZo9r|Svc3z+-%rdk-O9vR!{1KW+ zK5pGbAg)B@-@6d%%S@6UU;6iLR4(QMsOE z_!AjEBg02!_<#&QC&N2rxJ!mzGTbV|dKs>h;W8O6Llcc5rP3>J>P zqyRR_dgzg4MfQG-9`1veLaW@-!8CJhKDn`nvNMrGTelTr`|3lKOuvLV6;H9Ue}}G{ zbpWJV=!uiB=?MVIEuhO)=>l#25>VRPefRqBqyel64Oi?u?MCgGTfmS&29_&^D@@OWPS>AbZ1FhV8r1G(F;rr!-OOaqa4d?3!kJ(2KEXCl>iUDfubgSj^0 zO1U_}_LvCssXH&37_Q+R5cxJ4o|E)kqvt6n3Ap3kslG^m(%CuC7s44bF0Zq~)70Sh zH!f#dcA~exI~5JZdy{*d6)pbF$m3Vju1LHqI|VKhT@4+= zOZN6foL!;bXeu7LPPDSSvl9{}oJ(WQo>0QsKj7@`3w1|UCL-Zv??69uI=A-5lc`Yj z##AJ}hZlzIT?29F(oSc`o@6B93?-c*jf!kGy<9LpkOVEYNk28!zfX=GHrGpH3 zYTaXrNUC!H%8L$!L&Td75+(=215qd1FhPK&ot3I>PF1d>H;Hz)t;5{$gZjt&e~Kj`d!B!C#-(+ww2pp^{}B2!2Fgw*H>0oR;g0G8)_QB z+QNdHwc{8e!Yk(DXd>cO2>0Ngjrcx<4=iA80pbrMJchdhaXOP*PzL83aR;4i3e~bGO z#7`r93->|985VMdxW9$C1L149#|Q^u7K_lM6i0YDHUN$z?nL+*+*!mAAp9!sGl)No z@OQY+BF-*Fy>YV;Xi|JJbV6~2^Kmam+=;Lpw-fOygf)~#+=Z|d558&$AK|l393(^h zD8ks4jO{?2hgaeFC*ti0H!p>L5Dy}J9QR(t#}K}68Dn=L?m~DR_kD;{`1sX~-A_0O ze~$Yhf+Ktb_rr+O0b~#EM-UGp{5RYO2?t>-X0xXdZ%6ng+|MC?0HOUF#$G_&fp9bK zmk|#ldk;*)RzW*FKuG)0kf{QR9S3RW~(i#Dr}c^%}=X%YN*zk!Wl(u#%f;6n8rud)%n7S=t}11{t=>@Kzc2$S^L$+hn+3hM$n( zJu+15_ip}-dQ(*eFV(=h5mj>9g1R|oiFIY!ayXn%LHciMSK$>h#i@M zcpvSsaAJ`-yRWD@8O2saeX5^tJG6#6q7n8*g4Ts%No-ft4L~LMh1~rF3k(eGOvO}W zC@a2)v9D2%+^lHp$I=iruCum8l5PDxq5jTjq|-YXj>KqZ0kwjD*^SngXe1J2?bg;v zysx)El#HlqWl3vmG=VB_4MkHC_A%?EMA-dS$rNR2rvqyx6~e2_*m|ZYbxI-@3DeG! zBBY5k)(m)eBuV>Pp?G(KwIJOKtw#EHu~v!?bSPcW2!5`CR5U!$zl-P7!bDLLk)#re z#gycpScI{#fTR+riP$+}EWwmexUVzX&pw1$U!q%y4E9345vGJi?0+()i++*G*cJ;X z4Yl;KaDg(=&k<%6g*pb}Np?vQ%oF=Ej9pzMN?upg6^r-wC%c%ts4E@;g@&T8-7sXt z_7>5W7h&%&>WlP+V`!a`B8kpERTN7l6O4VOi1yk-QO3Smlt{*-k$$XfDAphDi?NrA zcBu@o07XCk-*j*BHaB_$YgSiwMj;8-xZv|&b@wH9h2u$;GjabvcU8@GO~~Bg5b)C% zO`Nap|DL{h;`|ATz6*R;1Mh0!zl8>{oM#1G5*z=2;5{xLuIB&E|FFFUd~DkAA8ecR z--Y~TX#m@LYWvf+3{%_xn6v|eZNU9W+?IVm!H#AT!*&j{SvEJeIqRyg6&vf$m3_%n ze`Hg5ARbwbL?|Ba+0>7RH~k^!%5L?q30dmh)jzPZw-cVMb7fZt_U$|IplW5bx1&28 z1_YUjWGK9ICHC*hslqeL*_D;6a{m(X@G2m$vq7U>)yS-x@w1f zT!3iqBZH)}YaM@Zu!Hm8p%GK@@ziW3r?F=B4nZG|6x3xY4)=uOtdI_r7uaS*2l~75 z{1E?A{p8X_I`OzJi5#n*Lx7?b{>PGWCCMyXR?I`;qTNJ@(jAKwB33XX(F1=gk5G}7 ziWjB`qeu`XfYn9d><5$;{9QQ-JX0kM|2NDEF1B!*xzJs#V2Ne^UX-@lKF0qOCkfa-CD*9QCQ80b@!o>Six$`JYuMVcdPJgEoH<-g%2cR z(NK~WG^}8w<>F<9BEjj*B*FW5vm12L@fx|#K=Iix*G((=e!J)0VV zlGG;Fby^Y-X1$Ilt+rC&6#gFdDpoo}d!oJFJ+O$|7V@G>XCm3r8%nU^4_$OS(NgFc z^KDo@u;RTO!Y!k&NLq%4FmCG)VMST|;fvP*JX5E+(87t%)Ja@y;WTEdMJ}-{qA~>q zR?$y*x59Jl9y|<3H=1$HLQ+IgPcqbjWmckx%~(}Nzdf+pzJvd>?#90#;GRwY0Q@n6 zQh^=$Ae*ty{we@g+kfEyEUMn05#hL^K(R(wi4A}?nsvrM&wBt!A}8`e9sV813xLnT zat4FYKuifmyV;B)ZWl|6e{RJCm;M1o%|#013oWs*_a2YL6r2+1>K#<76?($X3UXmJ z0#=v{TQ6Wm_UHgu$x>FHV#W4Ue|#W{<*!1yY=(UoA5TTfW{+Y&fJ;}x3acQO?T={b z*Aa2B!e1eniNOLZS1D_P*|u9Qp==4?rDy!T$e63vigK`|?%u;@m;9S!XE7e~(ZEsi zbNgQCmdzuTl>A}|DWhm!{{XfUy8Btl@erx?GG!kMZS)M4Gm+0y3!eoIVzvKi5*(3yud{a-rae~jI>)G(*Eg^$0i~RtLDk+!$=i_p9Z$OE;Y3S!1T+)S%p077 zhfpF4G}}ACN`B8_K3=RNiZ%_Q5`W;pz&x0!guGcgV>X`WaYzD_Dfs`9gLcg8iYY{p zmHdg9>LGw2bB<#~2_Vb-nL`E_^z{wOLd?QT?dKp-%wj2B3}$z7kStgzV518L`}$-_ zt0;NTf;~B)i%9$TEx1hs6*vqkQ45|@}H2cT|PEjo8esgUsum83f7=GjHw*#+Hvy9Fvji-cK;L%`3KNq8(0 zS0YgufWxww+m@v)f%7dGJhUS7M3EvrM=LbXvV;oREM?JZB^<&zEot)$M48#hSZ&BC z6B!Om84V(lWVlD^z+TKwRqi!Ehcyq8=e(oUp7h?QI_(&b3QyjjU&k**;84v<|U(kqY-_aJ?lNLL}9_#n2I zN-h_G8i&JPyAJL` zJyuvQp$6>Kp%{ME0?R0?$CxDwT}wGpR84H3m8`K`d<8mHj6<;V#{jvKAcK}Nj6$7C zGPE<&uNYdbMhLV|V&GkD6Jf0rSo`t1v_lvmZN!+yE&Ve+7a9{x|d`ksV zPv<}spN+WH76Xx)z2tEV+qurN>^h!7gRID)aa!hHZ&^z4g}eZ*AfTGgUX0LkvMl+$ z1+E6>$L%24+Sce*TIzgWPg}s73k$lNTm9~U((K)=c)UR`4%Ri+-GsSRFV*5zCc!E& zVzmSV{#K&Y!V2{qwQPOBy_vIVX>|tztVqXbXxh4+S##3fhNkA5lm>rGgS)lPr-%Z@ zIzoLLWU6ZjD(*&)Qrqlq1k#$-n4dMFC&E})!)#Myv^0^BEvzID%^hgVVZ~uvPb`|Dti>>?dCP#2UIut*0sdm&ImlgD3w6T4Ukld}AcbsldWyF`cj8(Y1b zz0HcJ9wofI0b1CldVW)|RdH`_V~cf=dux;5LwZ;0o0=83$J5M~=(#O8|El=W?)cZR zW;L}0yKIu|_3UyzN00@&(iDX0674!}4^ACNHcLxuGjxJhxI)iDk8lTYK-Wuk---^+ zaiGH{MYW<9cBPI_>S%HM>e*FBSY4pi!^(}Y+E%tyhX_II-2qU*u)rm)ZSb>YIVheR z+FDwbwnmtDfL*O;G-0Um*DG~Rja$(eEsd-~&m)O^e%=iAepGI`F{>pf>l$NLeSNdn z8)Wa%q2BGS%KEA`>#rqN7$X{6Ti6Ocdo!%5S&VEgN(*TM9WB6C>KFuUYg9EFXo5+> z6#Naazskw5T3VZ6wJO>wBU;d1w*_q@TafCmVOAM2TW<<_1Kt)0M)X=(wK1DysZwfh zQi9u?n%QbSlT5i8LSvjI3usYVo0P4v_BB(W)HgRZaHN_Ek*J-#%`NECEo`lhAqI1U zsn!R1qk5a6=yf_KwJBskMU-5OYbV4I+(2Nxp3S>cu*KI_U&}V=U}1wbwKrjKrD4Lq z9g4b6&nLc{-K{=vGrL}gic;09*Vi|=l{z1ey0@^6x!K!SuU$7;vu~OL(b)3uHDH3B z*3$1YK^K`YAARR;we39!H%&;B91e zdPa-SU*B5IJUZlNFAWXbTQRLGf>)!5dG&mZ91TrSuk4aEq_KKEyWWisE>zDp>)@Qh zSJ~F=Z}sArjoQr12d0K#e@ zHFR4rh_0|r&kCUV*mh=n3V!MT15c29o7!keTm=zMST z%7Wr*931A<-OX^gXyP)agQPy`I!Y7{T3?HO7%~tJ+)nl`{6n6uZQ14yN_UV0xY#(} zM`F9dQo7T^0p_CVVy`GzNK(xl1a)oEhJ_F-xxQc_5x7X{#PJ6O5BHTMp0z9ZVMs&~ z_S0Le=z8P++g4 zpwM1RL6N=1PodTB;bE~Ia|!@0@J;IiO|`XNw7me>>^F)?2`D!zGBMNM8fZ~AH?`Kf zVUE1yEW000`F4?*Z4Y=iyD>2EtWtaKBnJl(<8NzIkTT&GBGCdHMAxUZ!;W9=xTSkO z*G_X^y}ud#n=&l zv|<bL4FmgMAXg)XxWyIRGr^TK#PeuumN+;NF6jLt`tfRR>B$0ARc(a1HiCbzox?tjZ0O z)0*Z}j_(=A(WqB^4sm|%)~>-M$PtJ&O~tU7lidL%C~ zF9+Xr9bxj^FPNkKU zl$7yJf4;%d+aDgF2Z|=FnF7m3WAwlhy~iqu&qQzKW4Y+9r6o%U0}mnPvqt_5uc+-t zKks_8KE!8?!g~qFVWk6QNjP?h&rsvq(?vY$D}+F?Xk^eS9`qGBG=TaH(5XQT4+$Mb zNsY zsEAI!DfA?6_BD=qc;IH+3B-@%cF>b9?x_d-82S}9d)3^%fCK6w|6PSvap)o{Qo5mJ zW=Wy?TfRkKB+zvP>Zx?$$-)1{mt`(<6wkHHvlPy`bk5Q_^XWl~Wv*qZZT_r6+od)K z=8=MOHfz>ZCI|k$i#NiWXOyw45!fsi z|9t$Ugq2(Y3ae--BICF|Dg|_$3A{K%t(Xm&6)nd?b zTmh81^MNvJmY$85!|4*P2ikm&Vbw7fNDR)OFv<)7=wYFOFYt)(MHhiERcuiW+f4ER zUVz`4{iR;JA$S36!heh9PjgD~-vWn|exhT^J#2yagy$`=_uSRny{ebya2DRvjmO%R zE&K;Q7$McOB!y>~<;p9&Z>mad>F%!D6u9!r0t*;@6-)})7l~Cq>$>Y!sfRaKkyng^ z7?T~|5Qyt)M7Rn=Y&3=EYq=DRlB*c9dUS?l3T))A%B|$&bma+=cc3+BDxU0&bR{Z# zNL7hsC(4SrI5;cf(y0;&oD;@FdBiai((`cvrDxn2M+KOk60YQrBt!j4qKyZ+)G&zQ zQ8dL?f&^tCDWqME1T4L~Bf65#*iaslYF?OOFaO=^|JNFzvt0C!4s^&t=j<7_129Os zR)|1552l_6bkA{otiU~I(Z0g|IgT;+9NQBT@!jArQUmW`xXK;>R%v7W|DN-8bg0nX z;#^(1rs^+JoquscS9akSK9ITr_n+}HpKc50rpRCfCnycqjWT6nPF5(#2m=BVAH?mz z&2f0VQT56*9a6FUzMy%4n>!b~MkCE=Wh zP5?Mm8=4=97Gv80ah|7CA8;J!;ZA2Nt8nW&d;qE76qIp}F-8)Q=7l``Oe9j|mTHhN z63nSVDD@psrc18{eTc&`1uw$>6>#?9)+PJ{QV*Y}UYDS`$IgS}0uGqx$a4cA!Sj@& z&lVjx56->7iA{k+Kf%H)br=pR0Y}lG>$y;f?@Q%R&nX=3SNY zD{}g|sQ9@`{&r@TnR;vIIT2*uOP}M5wQfQTQV!TwXk}ic-)saZYQ?)^Kgf^%T=Fd8K zZ82&ZRBJkkHl7F085M^S9pXdBKZW(G`Vn+UKTm)XNv~i3Y5I}hT_nm73%u|^D(_Nt zI0(4VVMQJWtXF=QF^U|aL$dG^6W*&}LSus9^*&R+s^|U45qidob^=xZ76hC#Cbzm+ z<%TuuYu52uhT9M4L|wC8EyW@80dazskcVtTZ!{{0-w^QjIcg|HI-QB<=k(;E))Dedpu-E0 z=YCBd+PB6|yDkoLZ~_|Sg?^k9>qpKYx(>-MjEYos=t9mrmwAGE$#0$>1RY@;6X3{x z`Ur3+x6nd91X;g+(Kk%XxBKg;ms4v_G=r%2^H0bZ?S&sClOva-ANt8R_w7Jrve`kk zF=9koDYO`60f?#k2_i1^Lr~+T_8r2R)W)QKz6G4~>1PZ$lj=v>>i2;o$EbvoNX26K zDO67N*$p7zn4<0|&O*R>7~w>HN7ck0;EbII=RV+^R(S!Jv3~%h9U<2S0oWKIE>v8H z&<{$S$RSRJ+Bha;rnYzyO@hZFIoE}>MLWugw!n*u@-B588v|Ulg)*<$Zq~+=dg;U+Tm#olfn+w96h{{x*u2dJdrmj z?dPl}4?YGA`^mK(;+jRJg*;BwU6&&__7=4uoJ8I4E#~S}wE>gh^$}%AFN!kQse~BL zsL0+eAh!u?A$-y!+8uNbXq3(R`8sfjm401_eokxpap(kOOtp>UNb}0@b~mD_bKI){ z3)?71EN_nE<5ShC3t!0 z`&Q?{3EWKM*wl0a?)6jQz@*A=zWHXNL0S=GI3hWh`VDFVO^PFJ)du?$eJ9Lc`H{Qh zqT0s8+**iN4ig!@5Zju?sr1x1{+p}LkKF z@Y}@vo{Zm`!d!%YoOl*al9{jfkx8j_=h+Pe!LvTmyWxuRckDVeh*|SHKzojX^z<}O zdNW>XuRIGdi6y+sJRIp=khM(OD`jswKr}cV7qIiZWvSI`kRz-P&8~FCs;hL(B1!Ki zPCDSgOy*rk6sF%r_cs*P6DS&#nH4ON|81e7{xkH!N1QfKq+nl{9nnDNti{BBHB2HTIC9)WzwoRANnznsQ-~`s)jP4Hglh^M zwRZ~%sdX|?Yq?5>hZoX1nuOd(GLT`FvR595m_p`>N2!gFS!k8y=>-u0@~$laRe%mu z035Ps^K}bwg20*7=B2gNXmlz}MAW`RW1gThxwW(dM~ozc$-(5rzTZ(yDnOgiS}sJ- zRj3MOQ%4SM~gci7{oj~g#_)$dZq6vdM=@&8iRKiuJfh`wPP!dFtjQCD8xzh|4@XZ!LZKh$guDpp zt7I))hZrSzsYj_^7zTBVdK!?R0rC=+GC^TnUH+he~yv)qn&I zkS0J*YY?+me}c}E*K<2V$q+kt%{Mv2a3i^wO)E^DCUbnAmD6e z&ZSxl{ft3aOBa5roP!{vA4E;*f-8>Jq4!IX;*HmbB@XqEi99R9&Pbe6jzh2O0ppxY z)!_lW*PU_-E$Yb@9Z4Ml+5!6iqC=wic_|N;a^OY1+ibxPNE|!I`2zl%uYZ&{v=%Ak zqm7Y{s^=FpJ?p2qRBCG7k85>TbM){(v+mTU)RLl2UxHznM;vNX@{vWGt~EB66pM67 zniD#7B4$RTcBj@B?fy3=1XVx#p*CTM!snMuKt7gEPe0~5siW4E{Y&m+Yi*&e3u34R zw>s_lg+_-}_EPsQzjhFvgZc;d7zJc)6eEEFQu7>iV1TT<2a~CUNbXtH5-x~)5=0D? z*LIq?Q-3$$towwC`{`+MkD0jdFmeBuiTi#N_p{UD9yM`qHF1B$#QioCcZMIv0F7Eu zj@a*{-Fr;j119b?VjDFdH*vR3i+iVuyT`=+eiQc|6LX z*2JB@lXBs851P0yHgP8(+n|kg>rLF(Pm6oN#C?H@JFTRQ+-b!sA#$Xp@4{So-F+tR zvrXKiChp5j+j0#jIDe!^C}oiTn0xai{N# z8+fffW8&Uw;%+l>Z=V+T8WVRqLuQbt#$)16XJ90bw7Q;Yaj!CQf7!%+qlx=#ChoCm zaj!6Of6l~xg^BwS6ZgSsaW6MpzM60u%T9P27u2-1nNek4~%Z4ioqLOx(|5z6F{-=dPnC1QH_mAwP{$ zVto<97LE1_e{HYkJ6NY2;1W6~d~T(#K?DwXSuO`hR6FM~d5jZ1hm~h?w6%kg1gEC% zP@O>@Dgs^*F7Hy;_%75-tnv9u&48t@t*E{99idj^#so_I5ah>X-6z`ZQ9q2J$;`RD zky8o`aLonfqbeN^S(^jF+o|Q~CwNi4;OghCyHy?TlR1SGopUhha030veUfwUK!*WM zhuAFQJDUjPrRwkzO^5iYtRlbPpji+0r%}`6Q`irY+Y6k1n5pq6+f;9S(x9pzL5FZ? zg|6cup{+_r5vMW}o>`LmX$L<{e89oKyi2vQA`lTaHo5rNLT1f+H3_x76ips==j7TIU@hw|_flTawITh?8mPj6v+iYmdG1#w?& z;!Y!gfmh7}6Zd;`?sDGwB-AGQg}L3;{_gm%Ytxz+RGBB5Q>31gkeSzXa-3`Ts`}w$ zlx`OkGu7*YG=EO_)ulXlnKXY2Tnufou2t8(Z1+W~RxgPASrhmDCho7AxYwGvJEz6{ zjEVbR6Ze-*+?ScSS4@lhX%qLPiTevC?u$&^tER>Ml!<%P#QixF_aYPb_0!^>HF2j| z&tPLUPno#WZ*wG$v^v+cxW8)RzQe@*TPE&5H*xn(i~DgC_f`}4M@-zmZ{i-D7WbD; z+{qs^YW^V;clvFGQS;lU#r;JScaMqt{U+{o3faiLeOlaKFmc~#;(nir`yD3kJ=5ZT z)Wp5U#Qkm)_o#_`Y+Br(GjU&G;(nKjd#j22;Iz0OF>x<9ao=y^zTU)r-?X?tW#Ycr z#C@-cdxeSnozvnzX5zlU#64-^KF7p;bXwf$)&GXxy>_;Vd(_1Joa&Qk-o-uB;(pM? zy~xD9)5QIhiTiotp#GQ5+jNDsI+{aAZAD$L> z`pkoY*V2ECn-=%`P268Lao=d-zE|fiR})_Z zWU|$Sx{B24sH?~vUeZfBs@4Kh@N5fQdq%njvUCL zT#&<6ic+URmgot{3P99(P(W${QJ?DxNFyMswFt-u2!e}J0UKXzkoahh)a$V0&)Zp^(m)-{0krl4BTG>gf1vf%JT<6Xa>=1x_~w{ znG0_>A{^)^s)XoUyt(>u0!N+S1+SHWsNRl%cmYv=T_qqp2%>3K{g!UKp{6n5jA}R} z$tMA!OUOg9zaa=3OoxmSgloeo>-8)kFMuueT*3XPoQ^Z6)b9Zy`_k#yVMNB7UIBDICdICn}uz`=1|dY=U4>w4}0j?4!HBtt=>|6LcN`PK7~- z{{%>t0rDgubm{Uu56FE69i9S2w@kveZuQb69Xh*;64J#A_K4ch>k&rUjt-2=;^lcZ9rBS=)4F>g#qU^Kt_3cscrfvKw<_7 z%W!;BUEK%?D*!p5wW;`$HEiC{?tb8?zbg@?5`gFuDhhswjdzUFrT4EP;20tI0HUsL z1f53#QGG}Oc@~g%6r+@YWC004LcMqY9+12GM8p6S? z%j`$096-Tc{hqhWpp6i4+68eb;Z8uD2Fm*ZaREoS!_NVt`jDbtUjbyJpe`&mH9nskerf!CiL1w_;o5w-x36$W{(03>Lb zzg7Wqzs8+P)d516-a79GWS=&+U{2|!IkyTpI`>|}F-Vvuh@lpr1H_3^x`clZh;hvP z4j}D@QpW&!*wF5$0a4c%LI5n*Rra80z&SKw1s$^)euI z>Gu3vKxz!UO7WYU9fneu08(RsTnz|aB#V&81&9+Vz3vTwR2f<@N~M6VbN?tH>Q0WJ z^JPHx8OErG01+oKRE<3j$e^K3UjSr*LBd}E5;Z_x2L$5ea4%fI*h65eTjqQ~^!Xjg z>-;kJwU`s9#w}g0@7*V^(r8vvIH`4y$MJxmsgm4 zKf3f*o`v5MJ!hbEC4cdgBS+8I1ES9bRK5Wal1^BH!k<6GS`2gCEx_q9jBH(ijG+`s zCnOvKBx&IOSwJ4vWCkMp8$e^oH0PIB8WD&5YBagR3QYKtXDlCj~GgA1H^@Vy-f!IX-85()OSZ5 zH&DI$9LQsUI1RRX1dy1Nm*i&b=YY_q z_wF}MkQw+@koubuQECAogN9M`8bEps5Dy@u20gbD9Sx%3L%H;-wV z%!3A;J;2!qnMoEQ&zAt9m|ly=0ijEW90TMjAn6+WH6Uj-%`5VyJT8>dDUSokW6<+# zblam^3u1PNM*1N$KT+?L@?1(?+o1Vt0C8xgkjt6?8Pl{ukO&|igM=RjMAru4d>IgR zPmiQz?3;ibH&A{CknPA3y3;`UiPXUPu%uDsGox>JhwydUju5^}qvYobi9@lN!oN$<7wQLYC(`+datzI@2|k?I zxEbH4qi>?&>nt8`Z5zHi$Ul_TEc67*6KP5vPT;fPHHV_1j7q}CbkuiYp+%DPJ~AxI zS_nO5mQKNYyn6A$T~01V-^LB^G*uxV3CI|(@OEw`%)ecqUpb`{ZA0s8ssTRV8jW_~ zWA|pVLWu*>&d6XmmQ;V%Y{nB`XXh^x>4z!i)mLl{O#}^1fJ-i|8MhY`=(gVehCF4- zw@L2iZ{3?hi{1Sx1$Btv!{Y<}lh#B27)!oHrq1n_F+XC8f*056U#Ag$O8`6ZIVAZ( z8v(|*Z6fsDZKXRB!iS!FBH^8QpHv^iOVpw9q|%Y<>cZD=XwZ^1z3sN!z@c+M>5dL` z;9KII^fq(@gufqMMOV9}@jDcx|6X+L+ajH;Z;ukiyV!RL8_oGLyJ&Iod3L@9UY?UF zKifVD9N$c(k9G7#@VQw9s-X8{Dcy;#P;V69zhawPlsbGSDl(XCj)Vu|odoczI-dX( z6yGrC)s*H))uvkKSf{DVasvZBCknO862eg9pRyTC8zXp6K8mBqhNxb<(H%+ql^fPpUt43Um(tvZ&kQx-Gkq=IHV=I#E6`LY zJ|;q6o-++_$`l2FOzlva>W}vBj70ayALi$z`H@FGt!k&m>r;45wLYTeaJz}9M`Wok z^c67FrK)-ji}a-wafp&);z+78ai5d)@I!r4k+L(gM;N=R%bfghf~na`6d#O28!Ef; zi74LKL;#;=)(EH#Oz^N!vM%L5><;R_*|Ga2IjteWF>LM?!U5?rb`T|ewuJ< zG2dv?nsS&@k532(z0x4^lC^spX--y^x;c`Rc=ZEucV{PFfJ5CuShJp4M<1-oqvRco zKrrA0y_!@^@h2Jw`pHB?9npxtzb=K30`(_3f<`yepX$TZ$$Kw;q#MU~f-rydU8r}F z=aP_rVemWX@NmuvbS5e#hCuFqDCj-H|Im$X>TE#*JsACHQW8^VPg;`Qz_$#4kTR*IsacHxas)TNUE-cE8UQTT4qgLf=0HCHn;24CZ9FAHaS6)11qG3$;bh+wI?14b^1FeHUZsg z^b*1N0KO8RK#|sH0$|JosR(O@V}Tx(jL2+M2`30N%}FIGbxI-@3HNsOhV_wes_rf3 zfAqNk{I*oA9u`H;hPOY-8%Q<3o=7NWus$&&=zT=fnqdV(t;m<7LcB@XNTWc-l5llo zx6+nZYHP>x>KcfIc1>WKqMc*ZE1{wZ)S*f$5D8CR1Zqv!+8f>}CPo!mwI5S+>j;xu zi_o!N4`H>OB>Lk(!q5@bv38;X2dxr`n|k9^%Slls{#;O(6kGct=%&}W#Fb;C^nuY- zb)gu2d{#Q%D3B12r~;3ryPsTjK61!KB%USlo&{@93}7CkffwFzC!2Kao~Qx*_yVe` z9@2z-4myu?C3wIE&aH1hg)s$g{NG&$r*hNO_7lAzXJ{ue)tzFaX9ycNx`8SU!7az%fg6%X zQ9NIjh&i73BvS?#g4`Ly>Rofa_}rK4M+vVbnWHP+r^0BI>!@JJOraz1!Q45pvlm;S zx!WAXH+PCR^(Qo(Nh&I&K4TU&%$q*ZTd7Bj;b&@-&-2E(9>^TfDf*1wEp +#include +#include +#include + +#define DATA_ID 2 +#define DATA_LEN 3 +#define DATA_TYPE 4 + +#define DATA_CHECKSUM_START 4 + +/* + * 如:FF FF FE 07 03 2A 08 00 03 E8 DA + * 字头:0xFF 0xFF ,连续收到两个 0xFF 表示有数据包到达。 + * ID 号:指定舵机 ID(1~250),广播 ID(254),其他无效。 + * 数据长度:参数值=【ID 号+指令类型+参数】的字节总数,即=N+2。 + * 指令类型:数据包类型,如读指令、写指令等,详见指令类型列表。 + * 参数:指令包中需要向舵机传达的有效数据,字节数可以为 0~N。 + * ①、无参数指令:参数字节数为 0 + * ②、写数据指令:参数的第一个字节为需要发送数据的首地址,之后则是需要发送的 + * 数据,数据长度根据不同的地址而定。 + * ③、读数据指令:参数字节数固定为 2 字节,第一个字节为需要读取数据的首地址, + * 第二个字节是需要读取数据的字节数。 + * 数据校验:采用单字节和校验方式,计算方法如下 + * Checksum= (~ (ID 号 + 数据长度 + 指令类型+ 参数 1+ ...+ 参数 N)) & 0xFF + **/ +uint8_t steering_gear_check_sum(int *buffer, int buffer_size) { + uint8_t checksum; + if (buffer[3] != (buffer_size - 3)) { // 这buffer_size减3是为了减去两个固定位以及数据长度位 + printf("error\n"); + return -1; + } + + checksum = (buffer[DATA_ID] + buffer[DATA_LEN] + buffer[DATA_TYPE]); // 固定加这三位 + // checksum把数据长度算里面了,但是数据长度位没把自己算里面 + for (int i = 0; i < (buffer[DATA_LEN] - 2); i++) { + checksum += buffer[DATA_CHECKSUM_START + i]; + } + + return ((~checksum) & 0xff); +} + +int get_int_buffer_len(int *buffer, int buffer_size) { + int buffer_len = 0; + int count = 0; + + for (int i = 0; i < buffer_size; i++) { + if (0 == buffer[i]) { + if (count == 0) { + buffer_len = i; + } + count = count + 1; + } else { + count = 0; + } + + if (count >= 3) { + break; + } + } + + return buffer_len; +} + +/* + * 恢复出厂设置: + * 0xFF, 0xFF, 0x01, 0x02, 0x06 + */ +int main(int argc, char *argv[]) { + int buffer[128] = {0xFF, 0xFF, 0x01, 0x04, 0x02, 0x38, 0x02}; // 恢复出厂设置 + + printf("check sum:0X%x\n", steering_gear_check_sum(buffer, get_int_buffer_len(buffer, (sizeof(buffer) / sizeof(int))))); + + return 0; +}