各位先進,小弟在LabVIEW中要將2進制數據透過RS232傳送給單晶片,但是VISA的Write函數中的write buffer只能接受string類型,數據在Write中又是以ASCII碼形式發送的,所以單晶片收到的是數據的ASCII碼,求助各位先進,各位老師,如何寫LV的程式,才能讓單晶片收到的是數據的二進制碼呢?這問題困惑了小弟很久了,爬了不少書、也看了HELP中的example,均找不到答案,在此向先進們求助,求助
既然單晶片能收到數據,在晶片中加個ascii to binary的轉換不就好了嗎?
yao先進:
“既然單晶片能收到數據,在晶片中加個ascii to binary的轉換不就好了嗎?”
多謝指教,這當然也是曾經想過的一種方法,準備作為“不得以而為之”的最后方案。能夠直接傳送binary code當然最理想了,yao先進,幫忙想想辦法吧。
[QUOTE=pwch]
yao先進:
“既然單晶片能收到數據,在晶片中加個ascii to binary的轉換不就好了嗎?”
多謝指教,這當然也是曾經想過的一種方法,準備作為“不得以而為之”的最后方案。能夠直接傳送binary code當然最理想了,yao先進,幫忙想想辦法吧。
[/QUOTE]
請問pwch 單晶片中如何將ascii轉成binary
[QUOTE]
請問pwch 單晶片中如何將ascii轉成binary
[/QUOTE]
ctype.h中就有很多函式,不過通常是用toint()轉成Hex吧
雖然不能直接以binary輸入,但用hex也能達到同樣效果吧??

orange110839157.5491782407
這部份觀念我有點忘了,我現在沒有uP可以try
所以我希望可以討論一下,我也想再搞清楚一點
我假設你想傳一個41(hex)進入uP,那LabVIEW的VISA是以65(ascii)傳出
而uP收到是一個byte "A" 嗎?還是兩個bytes "6" "5"
而你希望看到的結果是什麼?
抱歉,可能我的提問觀念全都錯掉,不過我想透過討論的過程幫我回憶一下,以前還在學校我就可以自己try了
labview以normal輸入65的話,單晶片會收到分別'6'和'5'的2個byte資料(ascii)
如果是hex display輸入65的話,傳到單晶片就是0x65

如有錯誤請指正
[QUOTE=orange1108]
[QUOTE]
叫拜pwch 虫垂?[い?W?z盢ascii锣Θbinary
[/QUOTE]
ctype.hい碞Τ??OㄧΑ,ぃ筁硄盽琌ノtoint()锣ΘHex?汏/p>
瘤礛ぃ??钡?lbinary块????#12494;hex?僣~笷??鬺荷譁?汋?

先進,您好!
Hex是binary的縮寫形式,當然是一回事。
現在問題的關鍵是write節點的輸入只能是string
[/QUOTE]orange1108:您好!
下面是您的貼圖。現在的問題是:由于write節點只能輸入string,所以如您圖中的兩個“unsigned byte array”是無法與節點write相連的,否則會以“數據類型不同”而報錯。

yao先進:您好!
為防止亂碼,下面貼的是您的原文:
“我假設你想傳一個41(hex)進入uP,那LabVIEW的VISA是以65(ascii)傳出
而uP收到是一個byte "A" 嗎?還是兩個bytes "6" "5"
而你希望看到的結果是什麼?”
答:進入LV中write節點的string“65”,單晶片收到的hex碼是“36H,35H”兩個bytes,
進入LV中write節點的string“41”,單晶片收到的hex碼是“34H,31H”兩個bytes,
進入LV中write節點的string“aB”,單晶片收到的hex碼是“61H,42H”兩個bytes。
而我希望我的hex碼“6541AB”,透過RS232后,單晶片收到的是hex碼“65H,41H,ABH”三個bytes。
不知我是否已表達清楚?
真是對不起....可能是我表達不好讓你誤會了
我那篇回覆是想跟你說"string control"這個元件的輸入方式
簡單的說,在"string control"按右鍵,選擇以"Hex Display"
然後請不要懷疑輸入"6541AB"....
單晶片就會收到0x65 0x41 0xAB三個bytes的資料了
小弟愚昧,有錯誤請指正
{我那篇回覆是想跟你說"string control"這個元件的輸入方式
簡單的說,在"string control"按右鍵,選擇以"Hex Display"
然後請不要懷疑輸入"6541AB"....
單晶片就會收到0x65 0x41 0xAB三個bytes的資料了}
orange1108:
......這樣不行的,那個“string control”元件是無法和“write”元件相連的,
VISA中的“write”元件是透過RS232的必經之路,不透過它單晶片如何接受呢?
pwch:
這是您一開始的發言:
[QUOTE]各位先進,小弟在LabVIEW中要將2進制數據透過RS232傳送給單晶片,但是VISA的Write函數中的write buffer只能接受string類型,數據在Write中又是以ASCII碼形式發送的,所以單晶片收到的是數據的ASCII碼,求助各位先進,各位老師,如何寫LV的程式,才能讓單晶片收到的是數據的二進制碼呢?這問題困惑了小弟很久了,爬了不少書、也看了HELP中的example,均找不到答案,在此向先進們求助,求助[/QUOTE]
你已經說write buffer只能接受string類型....
但你現在又說“string control”元件是無法和“write”元件相連
小弟不太明白你的意思,但事實上不就是這樣嗎??
orange1108:
謝謝你的指導,單晶片已能收到二進制形式的資料。
開始看了你第一次的貼圖,產生了誤解,請你見諒。直到見到你第二次貼圖才明白過來。
再次感謝你!