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

正文內(nèi)容

labview串口通信解析(已改無(wú)錯(cuò)字)

2023-02-14 22:04:49 本頁(yè)面
  

【正文】 c4 ~amp。 e. T0 U1 H39。 F2 e+ Z圖 6 實(shí)際接收到的字符串8 x1 u$ T/ K8 I$ K. x* U$ c 上圖中下半部分顯示的數(shù)組是使用“字符串轉(zhuǎn)換為U8數(shù)組”的函數(shù)轉(zhuǎn)換之后得到的數(shù)組,一個(gè)是十六進(jìn)制顯示,另一個(gè)為十進(jìn)制顯示。 ` Y! T$ | K: J, O( P( k1 G5 C+ ?4 _1 ?對(duì)照定義的數(shù)據(jù)幀格式,就很容易得到我們需要的數(shù)據(jù)了。* a) q+ o! G1 N. i Y2 N0 L。 B @ 首先是要看從哪里開(kāi)始才是完整的第一幀,從上面十六進(jìn)制顯示的數(shù)組中我們可以看到,并不是第一個(gè)字節(jié)就是我們需要的幀頭,因?yàn)橄? T) l0 Y5 [( v。 |( A h9 |% g6 O9 B* m5 m. |$ b5 n位機(jī)是一直處于發(fā)送數(shù)據(jù)的狀態(tài),很可能在串口發(fā)送一幀數(shù)據(jù)的過(guò)程中串口就被初始化或者被清空了一次緩沖區(qū),那么這一幀數(shù)據(jù)的前面部分* {% v1 K3 I3 d。 @3 o/ n/ Y. l E1 i。 @4 j^39。 l) }數(shù)據(jù)可能就會(huì)丟失,只留下后面一部分?jǐn)?shù)據(jù),以上圖為例子,第一二個(gè)字節(jié)為0x30x22,顯示不是我們要的幀頭,我們要的幀頭是在第* s4 `* J. n1 ?) z) s7 o: U% ^39。 A H。 P8 K7個(gè)字節(jié),以程序來(lái)實(shí)現(xiàn)的話(huà)就是先查找第一個(gè)幀頭,使用“搜索字符串”,如果找到則判斷它下一個(gè)字節(jié)是否是第二個(gè)幀頭,如果是,7 A/ }/ k. R8 f{$ f39。 U2 s4 Y7 ] Z ^表明已經(jīng)找到幀頭,輸出幀頭的位置;如果它下一個(gè)字節(jié)不是第二個(gè)幀頭,說(shuō)明這里不是真正的幀頭,繼續(xù)查找下一個(gè)幀頭,直到找到幀頭或~ q( i3 b* V5 r1 E5 r9 ^$ s% |) S: w7 @. T2 u搜索完整個(gè)字符串都找不到幀頭。這是一個(gè)程序的算法問(wèn)題,具體實(shí)現(xiàn)的程序如下圖所示: r7 n: D$ L3 ^$ o9 J* X. t. W `39。 d+ ^9 }1 S2 I39。 a/ m6 \3 `amp。 E4 d1 \ ^9 a?( i! j圖 7 幀頭查找程序9 e8 a1 ~8 D1 U% R [% a, k `+ \幀頭查找到以后,再找數(shù)據(jù)就容易了,根據(jù)之前的定義,第6個(gè)字節(jié)是才是我們要的數(shù)據(jù),所以直接使用索引號(hào)進(jìn)行索引輸出即可。$ R。 q( x5 l+ g+ s) w6 M6 k J! B) vamp。 u. y1 I) A4 D6 C: D7 J% X 圖 8 獲取實(shí)際數(shù)據(jù)+ @( Z+ Gamp。 e9 [% @。 Y 一般情況下,如果是用三個(gè)字節(jié)表示一個(gè)數(shù)據(jù)的話(huà),那么這三個(gè)字節(jié)分別表示為一個(gè)數(shù)據(jù)的高中低字節(jié),即高字節(jié)要乘以25536再加上中+ v+ vf1 v w) W p7 g$ s) U7 ?% ^ } Y, z. ^字節(jié)乘以256再加上低字節(jié)的,這樣定義后可表示的數(shù)據(jù)的范圍就會(huì)擴(kuò)大很多,但這里為了說(shuō)明問(wèn)題,直接認(rèn)為三個(gè)字節(jié)的數(shù)據(jù)相加就是我們6 ^4 x( F/ a。 L! @1 W。 `7 Y( y8 L m要的實(shí)際數(shù)據(jù),在實(shí)際使用過(guò)程中應(yīng)該根據(jù)幀格式的字義來(lái)解析這個(gè)數(shù)據(jù)。/ }, ]3 ?3 g/ X+ E+ | R$ E8 Xi2 n 另外幀格式中定義了最后一個(gè)字節(jié)為狀態(tài)標(biāo)志位,所以提取數(shù)據(jù)前還要檢查一下這個(gè)標(biāo)志位是否正常,不正常時(shí)要進(jìn)行相應(yīng)的處理,這里. v0 ~, X% J。 d3 ]: B, q: l1 } u9 ?! K W. F^: _不再詳細(xì)描述。amp。 `5 b y1 ? r。 Z( C_3 b) C! a6 x! N 至此完成一次數(shù)據(jù)幀的提取。$ m4 c, Q( {$ _39。 l3 M m8 @3 D4 L4 {3 _ ]3 A Samp。 S) i 如果是沒(méi)什么特殊的要求的話(huà),這里應(yīng)該也算到一段落了,有一些對(duì)測(cè)試時(shí)間有要求的地方,就會(huì)要求在最短的時(shí)間內(nèi)得到最多的信息, S* T1 Q/ D6 O8 ~4 B39。 p! r) K: I2 Wamp。 y) q6 j X% E0 Z4 `從圖6中我們可以看到,接收到的數(shù)據(jù)幀中,除了中間一個(gè)完整的幀之外,頭尾還有一些無(wú)用的數(shù)據(jù),其實(shí)這些數(shù)據(jù)中也包含了有用的信息1 s) \, E e2 k0 m, A5 Y: T7 P6 s8 q2 H0 @2 m的,比如我們可以從0xAC、0x96這二個(gè)幀的位置中推斷中它前面的0x20x2A、0x38這三個(gè)字節(jié)也是我們想要的數(shù)據(jù)字節(jié),但是由于沒(méi), h g: k. _ g) X+ V3 k( O% j39。 U0 e p+ U有接收到它的幀頭,所以程序沒(méi)能提取出來(lái),但我們可以從后一幀的幀頭推算出前面那一幀的數(shù)據(jù)字節(jié)是哪些,即使沒(méi)收到前面那一幀的幀 a9 V1 o39。 ?0 v1 k39。 O, b1 Y: b39。 \( n( a* D2 `6 h。 D頭。這里只給出一個(gè)流程,不再給出具體的程序。N/ O( R39。 i2 k+ b* P r I o0 I. h+ [( l/ a NC 另外有可能接收的數(shù)據(jù)長(zhǎng)度比較長(zhǎng),可能就不止包含了一幀的數(shù)據(jù)在里面,所以在程序中也要判斷一下剩下的數(shù)據(jù)還夠不夠一幀的數(shù)據(jù)長(zhǎng)6 h2 \n) J8 ~4 k% r/ E39。 Y7 x。 l% l6 ?度,如果夠則可以根據(jù)上一次查找的幀頭位置+數(shù)據(jù)幀長(zhǎng)度來(lái)確定下一個(gè)數(shù)據(jù)幀的幀頭位置了,不需要使用搜索的方法。也可能存在處理完一5 damp。 w% m k7 b$ pamp。 N% Q$ ^* Uamp。 M$ u4 k/ {。 o+ E( Y。 P8 T幀數(shù)據(jù)后,剩下的數(shù)據(jù)不夠一個(gè)幀的,這時(shí)可以將這些剩下的數(shù)據(jù)保留起來(lái),將它添加到下一次接收到的數(shù)據(jù)前面,組成新的數(shù)據(jù)再進(jìn)行處8 M2 I39。 G e Damp。 m6 P6 N4 T0 X1 m。 Vd% W0 a X% v39。 F理。去掉已經(jīng)處理的數(shù)據(jù)可以使用“刪除數(shù)組元素”這個(gè)函數(shù)來(lái)實(shí)現(xiàn)。這里也不再給出具體的程序。* _39。 d4 A/ n9 k Ru+ ?% J* m ^) }2 c P。 C。 R/ v39。 c8 ]+ a* c6,串口數(shù)據(jù)類(lèi)型的轉(zhuǎn)換! T4 r9 A qamp。 I5 i+ ]7 I! qL) J) O ~ 由于LabVIEW中VISA Read/Write這二個(gè)函數(shù)都是只能讀取/寫(xiě)入字符串類(lèi)型的數(shù)據(jù)的,而有時(shí)候需要接收/寫(xiě)入的數(shù)據(jù)類(lèi)型不一定是字$ C6 ~6 }39。 [. w$ xamp。 q! W+ S5 {0 G。 Q5 G5 h `! d/ Q [$ `6 }符串,導(dǎo)致在剛開(kāi)始接觸的時(shí)候會(huì)有一點(diǎn)困惑。! N8 H0 V) u39。 n0 e。 R! pe5 V7 Q7 ^ `amp。 k8 R 在進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí),只要記住計(jì)算機(jī)中所有數(shù)據(jù)都是以二進(jìn)制保存這個(gè)原則就容易解決問(wèn)題了。串口線(xiàn)上傳輸?shù)囊彩歉叩?,串口接收到??: q39。 _1 O7 A7 j1 L! ~: h7 D2 V p。 j$ S7 mM0 Z也是二進(jìn)制數(shù)據(jù),只是到LabVIEW后被轉(zhuǎn)換為字符串格式了。還是以例子進(jìn)行解釋。6 A) L! gC5 O8 y a$ P2 h( \, l h 假設(shè)LabVIEW從串口接收到的數(shù)據(jù)為“1234”(正常顯示模式下),那么這個(gè)數(shù)據(jù)在串口底層的時(shí)候其實(shí)是這樣的二進(jìn)制數(shù)據(jù):7 K/ [. y6 u2 w. M6 `+ H( v* K39。 W$ Hamp。 | 0011000100110010 00110011 001101
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1