freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

labview串口通信解析-閱讀頁

2025-01-29 22:04本頁面
  

【正文】 。 l) }數(shù)據(jù)可能就會丟失,只留下后面一部分?jǐn)?shù)據(jù),以上圖為例子,第一二個字節(jié)為0x30x22,顯示不是我們要的幀頭,我們要的幀頭是在第* s4 `* J. n1 ?) z) s7 o: U% ^39。 P8 K7個字節(jié),以程序來實(shí)現(xiàn)的話就是先查找第一個幀頭,使用“搜索字符串”,如果找到則判斷它下一個字節(jié)是否是第二個幀頭,如果是,7 A/ }/ k. R8 f{$ f39。這是一個程序的算法問題,具體實(shí)現(xiàn)的程序如下圖所示: r7 n: D$ L3 ^$ o9 J* X. t. W `39。 a/ m6 \3 `amp。$ R。 u. y1 I) A4 D6 C: D7 J% X 圖 8 獲取實(shí)際數(shù)據(jù)+ ( Z+ Gamp。 Y 一般情況下,如果是用三個字節(jié)表示一個數(shù)據(jù)的話,那么這三個字節(jié)分別表示為一個數(shù)據(jù)的高中低字節(jié),即高字節(jié)要乘以25536再加上中+ v+ vf1 v w) W p7 g$ s) U7 ?% ^ } Y, z. ^字節(jié)乘以256再加上低字節(jié)的,這樣定義后可表示的數(shù)據(jù)的范圍就會擴(kuò)大很多,但這里為了說明問題,直接認(rèn)為三個字節(jié)的數(shù)據(jù)相加就是我們6 ^4 x( F/ a。 `7 Y( y8 L m要的實(shí)際數(shù)據(jù),在實(shí)際使用過程中應(yīng)該根據(jù)幀格式的字義來解析這個數(shù)據(jù)。 d3 ]: B, q: l1 } u9 ?! K W. F^: _不再詳細(xì)描述。 `5 b y1 ? r。 $ m4 c, Q( {$ _39。 S) i 如果是沒什么特殊的要求的話,這里應(yīng)該也算到一段落了,有一些對測試時間有要求的地方,就會要求在最短的時間內(nèi)得到最多的信息, S* T1 Q/ D6 O8 ~4 B39。 y) q6 j X% E0 Z4 `從圖6中我們可以看到,接收到的數(shù)據(jù)幀中,除了中間一個完整的幀之外,頭尾還有一些無用的數(shù)據(jù),其實(shí)這些數(shù)據(jù)中也包含了有用的信息1 s) \, E e2 k0 m, A5 Y: T7 P6 s8 q2 H0 2 m的,比如我們可以從0xAC、0x96這二個幀的位置中推斷中它前面的0x20x2A、0x38這三個字節(jié)也是我們想要的數(shù)據(jù)字節(jié),但是由于沒, h g: k. _ g) X+ V3 k( O% j39。 ?0 v1 k39。 \( n( a* D2 `6 h。這里只給出一個流程,不再給出具體的程序。 i2 k+ b* P r I o0 I. h+ [( l/ a NC 另外有可能接收的數(shù)據(jù)長度比較長,可能就不止包含了一幀的數(shù)據(jù)在里面,所以在程序中也要判斷一下剩下的數(shù)據(jù)還夠不夠一幀的數(shù)據(jù)長6 h2 \n) J8 ~4 k% r/ E39。 l% l6 ?度,如果夠則可以根據(jù)上一次查找的幀頭位置+數(shù)據(jù)幀長度來確定下一個數(shù)據(jù)幀的幀頭位置了,不需要使用搜索的方法。 w% m k7 b$ pamp。 M$ u4 k/ {。 P8 T幀數(shù)據(jù)后,剩下的數(shù)據(jù)不夠一個幀的,這時可以將這些剩下的數(shù)據(jù)保留起來,將它添加到下一次接收到的數(shù)據(jù)前面,組成新的數(shù)據(jù)再進(jìn)行處8 M2 I39。 m6 P6 N4 T0 X1 m。 F理。這里也不再給出具體的程序。 d4 A/ n9 k Ru+ ?% J* m ^) }2 c P。 R/ v39。 I5 i+ ]7 I! qL) J) O ~ 由于LabVIEW中VISA Read/Write這二個函數(shù)都是只能讀取/寫入字符串類型的數(shù)據(jù)的,而有時候需要接收/寫入的數(shù)據(jù)類型不一定是字$ C6 ~6 }39。 q! W+ S5 {0 G。! N8 H0 V) u39。 R! pe5 V7 Q7 ^ `amp。 串口線上傳輸?shù)囊彩歉叩?,串口接收到??: q39。 j$ S7 mM0 Z也是二進(jìn)制數(shù)據(jù),只是到LabVIEW后被轉(zhuǎn)換為字符串格式了。6 A) L! gC5 O8 y a$ P2 h( \, l h 假設(shè)LabVIEW從串口接收到的數(shù)據(jù)為“1234”(正常顯示模式下),那么這個數(shù)據(jù)在串口底層的時候其實(shí)是這樣的二進(jìn)制數(shù)據(jù):7 K/ [. y6 u2 w. M6 `+ H( v* K39。 |001100010011001000110011001101004 m6 p2 i) I$ v+ G% l. l zR39。 l Y. S7 S m$ Q。所以這幾個數(shù)據(jù)在LabVIEW中就顯示為字符串的1,2,3,4了。 G4 x X6 T) q* T. 2 q* f?, ?4 b5 g+ h7 K 如果明白這里面的轉(zhuǎn)換關(guān)系,那么要進(jìn)行數(shù)據(jù)轉(zhuǎn)換時就很容易了,比如上面的例子中,如果LabVIEW中接收到的是字符串“1234”,而) ^4 R。 C, ?39。 P! o! x6 a R。LabVIEW中將字符串轉(zhuǎn)換為對應(yīng)的ASCII值的函數(shù)是“字符串至字節(jié)數(shù)組轉(zhuǎn)換”這個函數(shù):1 V9 x3 A5 G* i6 C6 m* y39。 ]/ E R( G. J$ d5 |( _ CA+ namp。 E/ _ 圖 9 字符串轉(zhuǎn)換為字節(jié)數(shù)組39。 D 上面說的是下位機(jī)發(fā)送的是數(shù)值類型的數(shù)據(jù)的,使用“字符串至字節(jié)數(shù)組轉(zhuǎn)換”這個函數(shù),如果是下位面發(fā)送的是字符串類型的數(shù)據(jù),那N6 [ x x T39。 j+ t么LabVIEW已經(jīng)直接轉(zhuǎn)換好了。 D {( d) Y3 ] j8 B: n的儀器一般都是接收字符串的,所以可以直接使用VISA發(fā)送而不需要轉(zhuǎn)換。 ]4 c39。 L! d2 Y0 E: R, Mamp。但實(shí)際使用過程中,一般都是需要將某個子VI輸出一個動態(tài)的字符串通過VISA Write發(fā)送到下位機(jī)的,這時候就 c6 b4 P2 x1 wamp。 y需要對數(shù)據(jù)進(jìn)行轉(zhuǎn)換一下,這個轉(zhuǎn)換過程描述起來就是:將字符串A轉(zhuǎn)換為字符串B,使得正常顯示的字符串A跟十六進(jìn)制顯示的字符串B是一 }+ D. u/ D39。 B n) Q T% ?$ O2 F% c樣的。 J: s0 p! h 由于轉(zhuǎn)換目標(biāo)(十六進(jìn)制顯示的字符串)的數(shù)據(jù)類型是十六進(jìn)制,要想十六進(jìn)制顯示的字符串跟正常顯示的字符串一樣,這個正常顯示的$ K5 |7 F1 k4 a: `39。 X5 [ O39。 K8 f2 Q字符串必須都是十六進(jìn)制的字符,即只能由09,AF這十六個字母中的字母組合而成。5 WF8 a。 N Tamp。 Z% Se換”這個函數(shù)轉(zhuǎn)換為字符串即可,實(shí)際上就是圖5字符串轉(zhuǎn)換為U8字節(jié)的反向操作,只不過是這個十六進(jìn)制的值初始類型是十六進(jìn)制, Y6 N3 i1 F( g! P F0 o3 o9 n: `% V! f要先轉(zhuǎn)換為數(shù)值類型。0 |% _7 A2 V5 ]z0 K$ z! M+ V, A+ B) _. \0 m。 {$ v5 u e。 o6 R 由于十六進(jìn)制數(shù)據(jù)由二個字節(jié)構(gòu)成,而字符只有一個字符,所以每二個字符表示一個十六進(jìn)制數(shù)據(jù),如果字符多于二個的話要先進(jìn)行截1 p39。 L取,每二個字符轉(zhuǎn)換為一個十六進(jìn)制數(shù)據(jù)。 z2 c F, c: ]1 [。 : luamp。 G* y9 t$ Q {}串口問題匯總:w4 G4 ~+ l$ B1 O! _ L! B% [. ]6 z1,串口資源被占用。 t! \——這時候在LabVIEW會報錯,提示串口號存在,但當(dāng)前不能對其進(jìn)行操作,同時打開MAX時也可以在對應(yīng)的串口號下看到同樣的錯誤,這表示這個串口已經(jīng)被其它程序占用了,比如有時候打開了串口調(diào)試助手來調(diào)試串口,然后又想在LabVIEW里面試一下,這時就會報這個錯,因?yàn)榇谝呀?jīng)被串口調(diào)試助手調(diào)用了, 它不能被二個程序同時使用,解決的方法是關(guān)掉其它程序即可,串口調(diào)試助手里也可以關(guān)閉這個串口。最好是關(guān)掉LabVIEW.! ?+ a w4 Q/ {在使用串口的過程中一定要關(guān)閉串口(使用VISA CLOSE),否則程序在退出的時候會報錯說數(shù)據(jù)丟失。 ~!
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1