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

正文內(nèi)容

labview串口通信解析-預(yù)覽頁(yè)

 

【正文】 示”,這三個(gè)字符串的值都是一樣的。, z1 z6 |% n) 39。終止符是10,表示在接收數(shù)據(jù)時(shí),遇到ASCII碼為10的字符(即換行7 |8 j。 U. ]/ A q( ^這里設(shè)置錯(cuò)誤,導(dǎo)致接收數(shù)據(jù)時(shí)有時(shí)候只收到一半就沒有了,特別是在連續(xù)接收數(shù)據(jù)時(shí),但又不是每次都只能收到一半,有時(shí)候也能接收齊全: v1 U0 K4 s l2 }2 G! Y: H) ~* X0 i! u+ t8 i$ i的,就是因?yàn)榘l(fā)送的數(shù)據(jù)中可能包含了終止符而使串口認(rèn)為到了最后一個(gè)字符了。% A7 F7 u/ a) P6 u |$ }* E M( J R o mamp。解3 q5 T。 W1 J9 [節(jié)點(diǎn)串口設(shè)置Bytes at Port,如下圖:2 B |% m6 GX) C1 j+ ^8 {% s8 j39。 }。 X% l/ 5 h圖 3 Bytes at Port6 eamp。 U ]多少個(gè)字節(jié)就讀回多少個(gè),不會(huì)有任何等待。 W. 39。 T5,在LabVIEW中使用串口4 A8 P ~. N$ ^。 K ?4 n h/ u z* [ `39。 e, k$ [+ J: Bamp。t3 e( p3 i1 Q0 `8 N. i2 B8 v! q2 W+ tamp。以儀器控制為例來說一下需要注意的事項(xiàng)?,F(xiàn)在的儀器一般都至少有二種通信模式,一種是RS232,一種是GPIB,如果儀器是9 R+ l _39。 c/ S) G/ | {7 |% M3 u* D5 g k+ G1 g( j9 |個(gè)儀器稍微不同,可以查儀器手冊(cè)看一下。 `amp。 然后就是確認(rèn)串口的通信參數(shù)的配置,包括波特率、數(shù)據(jù)長(zhǎng)度、校驗(yàn)方法等,有些儀器的某些參數(shù)是固定的,比如校驗(yàn)方法固定為奇校) f) Y T。如果參數(shù)設(shè)7 i3 e% V! D6 N/ q, {39。 L* u1 q3 w4 }( s+ J7 Q! Y* u邊的串口參數(shù)完全一致時(shí)才能收到正確的數(shù)據(jù)。 j. T/ [) U! w* E J D4 c xamp。 g2 A c+ y8 j1 k) j, q+ Q, H% \( C: N. D。u! W0 n6 `被動(dòng)接收形的串口通信稍微麻煩一點(diǎn),由于上位機(jī)是被動(dòng)接收的,上位機(jī)不知道什么時(shí)候開始下位機(jī)就已經(jīng)有數(shù)據(jù)上來了,很有可能下 ?: Namp。幀頭是為了告訴( e$ c U) w. S. \+ C8 L5 e { p+ ^4 I4 p8 x3 f* y6 H/ f( L a* Y3 l7 p8 P2 I數(shù)據(jù)跟這個(gè)幀頭一樣了就會(huì)誤以為這個(gè)數(shù)據(jù)是幀頭從而導(dǎo)致解析數(shù)據(jù)出錯(cuò),幀尾的作用也差不多,告訴上位機(jī)從這之前的數(shù)據(jù)才是有用的數(shù): ] L/ N3 a6 P: j5 C6 p1 y, `amp。u) T3 b據(jù)。I1 ~ S39。i0 O5 `. b V$ m o% w7 _+ P。 C c1 v由于VISA READ的輸出是字符串,所Z5 K0 {+ }0 \2 E* D: z以一般使用“連接字符串”這個(gè)函數(shù)將它們連接起來,然后接到循環(huán)結(jié)構(gòu)中的移位寄存器中進(jìn)行保存,當(dāng)移位寄存器中的數(shù)據(jù)量達(dá)到一定時(shí)或1 R: _7 b, f) t: t* c$ [/ K, y5 i) [ q滿足數(shù)據(jù)處理的條件時(shí),才停止這個(gè)循環(huán)輸出讀取到的數(shù)據(jù)。 5 ]* E2 Y。* U1 O/ n) d, B8 o! T. A) _1 o7 }7 F1 a, Z4 n Z1 [39。 A! U {* g。 Z. r L S: ~2 {8 e. l。 O3 \組”這個(gè)函數(shù),如下圖所示:: W X。 Iamp。 e. T0 U1 H39。 ` Y! T$ | K: J, O( P( k1 G5 C+ ?4 _1 ?對(duì)照定義的數(shù)據(jù)幀格式,就很容易得到我們需要的數(shù)據(jù)了。 首先是要看從哪里開始才是完整的第一幀,從上面十六進(jìn)制顯示的數(shù)組中我們可以看到,并不是第一個(gè)字節(jié)就是我們需要的幀頭,因?yàn)橄? T) l0 Y5 [( v。 P8 K7個(gè)字節(jié),以程序來實(shí)現(xiàn)的話就是先查找第一個(gè)幀頭,使用“搜索字符串”,如果找到則判斷它下一個(gè)字節(jié)是否是第二個(gè)幀頭,如果是,7 A/ }/ k. R8 f a/ m6 \3 `amp。$ R。 Yf1 v w) W p7 g$ s) U7 ?% ^ } Y, z. ^字節(jié)乘以256再加上低字節(jié)的,這樣定義后可表示的數(shù)據(jù)的范圍就會(huì)擴(kuò)大很多,但這里為了說明問題,直接認(rèn)為三個(gè)字節(jié)的數(shù)據(jù)相加就是我們6 ^4 x( F/ a。 d3 ]: B, q: l1 } u9 ?! K W. F `5 b y1 ? r。 S) i y) q6 j X% E0 Z4 `從圖6中我們可以看到,接收到的數(shù)據(jù)幀中,除了中間一個(gè)完整的幀之外,頭尾還有一些無用的數(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é),但是由于沒, h g: k. _ g) X+ V3 k( O% j39。 \( n( a* D2 `6 h。Cn) J8 ~4 k% r/ E39。 w% m k7 b$ pamp。 P8 T幀數(shù)據(jù)后,剩下的數(shù)據(jù)不夠一個(gè)幀的,這時(shí)可以將這些剩下的數(shù)據(jù)保留起來,將它添加到下一次接收到的數(shù)據(jù)前面,組成新的數(shù)據(jù)再進(jìn)行處8 M2 I39。這里也不再給出具體的程序。u+ ?% J* m ^) }2 c P。 I5 i+ ]7 I! q 由于LabVIEW中VISA Read/Write這二個(gè)函數(shù)都是只能讀取/寫入字符串類型的數(shù)據(jù)的,而有時(shí)候需要接收/寫入的數(shù)據(jù)類型不一定是字$ C6 ~6 }39。! N8 H0 V) u39。e5 V7 Q7 ^ `amp。串口線上傳輸?shù)囊彩歉叩?,串口接收到??: q39。M0 Z也是二進(jìn)制數(shù)據(jù),只是到LabVIEW后被轉(zhuǎn)換為字符串格式了。C5 O8 y a$ P2 h( \, l h |0011000100110011R39。 l Y. S7 S m$ Q。 G4 x X6 T) q* T. 2 q* f 如果明白這里面的轉(zhuǎn)換關(guān)系,那么要進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí)就很容易了,比如上面的例子中,如果LabVIEW中接收到的是字符串“1234”,而) ^4 R。 P! o! x6 a R。 ]/ E R( G. J$ d5 |( _ C E/ _ 圖 9 字符串轉(zhuǎn)換為字節(jié)數(shù)組39。 DN6 [ x x T39。 y需要對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換一下,這個(gè)轉(zhuǎn)換過程描述起來就是:將字符串A轉(zhuǎn)換為字符串B,使得正常顯示的字符串A跟十六進(jìn)制顯示的字符串B是一 }+ D. u/ D39。 J: s0 p! h X5 [ O39。5 W N Tamp。e換”這個(gè)函數(shù)轉(zhuǎn)換為字符串即可,實(shí)際上就是圖5字符串轉(zhuǎn)換為U8字節(jié)的反向操作,只不過是這個(gè)十六進(jìn)制的值初始類型是十六進(jìn)制, Y6 N3 i1 F( g! P F0 o3 o9 n: `% V! f要先轉(zhuǎn)換為數(shù)值類型。 {$ v5 u e。 由于十六進(jìn)制數(shù)據(jù)由二個(gè)字節(jié)構(gòu)成,而字符只有一個(gè)字符,所以每二個(gè)字符表示一個(gè)十六進(jìn)制數(shù)據(jù),如果字符多于二個(gè)的話要先進(jìn)行截1 p39。 uamp。}串口問題匯總: t! \——這時(shí)候在LabVIEW會(huì)報(bào)錯(cuò),提示串口號(hào)存在,但當(dāng)前不能對(duì)其進(jìn)行操作,同時(shí)打開MAX時(shí)也可以在對(duì)應(yīng)的串口號(hào)下看到同樣的錯(cuò)誤,這表示這個(gè)串口已經(jīng)被其它程序占用了,比如有時(shí)候打開了串口調(diào)試助手來調(diào)試串口,然后又想在LabVIEW里面試一下,這時(shí)就會(huì)報(bào)這個(gè)錯(cuò),因?yàn)榇谝呀?jīng)被串口調(diào)試助手調(diào)用了, 它不能被二個(gè)程序同時(shí)使用,解決的方法是關(guān)掉其它程序即可,串口調(diào)試助手里也可以關(guān)閉這個(gè)串口。 ~!
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1