請問各位大大:當51傳送一組ASCII碼給Labview,而我所讀取到的是資料型態我要
如何將資料型態轉換成為ASCII碼或任何的數字或字串型態?
請問各位大大:當51傳送一組ASCII碼給Labview,而我所讀取到的是資料型態我要
如何將資料型態轉換成為ASCII碼或任何的數字或字串型態?
收到的形式可以說清楚一點嗎?你收到的ASCII碼是16進位嗎?例如要傳"A1234",你會收到"4131323334"嗎?Labview內有字串轉ASCII碼(1D數字矩陣),也有ASCII碼(1D數字矩陣)轉字串.範例如下:
所以你必須先將收到的字串轉成1D數字矩陣的形式才可再轉成字串.

就是51會傳送54H的ASCII給labview 可是我執行後收到的資料為0
代表我沒有定義54H為T 我不知道要怎麼作轉換?
因為要定義54H這個資料為T給labview

補上圖片:這個是我程式的前面 空格那邊就是我要將我收到的資料轉成對映的數值
如:54H=T 還有我的ASCII是16進
首先先確認有與8051成功溝通.線路有接對嗎?通訊設定有設對嗎?
依你需要的VISE溝通,由Labview先寫給51,51確實有收到表示線路,通訊設定都OK,LV程式會延遲100ms以上(下面範例設5000ms),再確認有多少Bytes資料在Buffer(Bytes at Port)上,再將其讀出.
我想你誤解了"Bytes at Port"的意義.

不好意思那"Bytes at Port"是甚麼意思呢!因為我是第一次接觸到用
51跟rs232的溝通 因為我之前沒有這類的經驗
還有我做測試的時候我從"Bytes at Port"後端接一個字串輸出
我讀到的是0? 這代表我是不是沒有接收到資料
因為51傳給我的訊號我收到是0 可是我因為我要下達指令給51而起動
馬達轉動 不管我打什麼資料給51都會啟動馬達 非常奇怪?
不好意思我拿您給的成是做測試
我驅動馬達轉動後可是讀不到read buffer
請問是為什麼?不好意思了麻煩您 真的很謝謝您的回應
那51收到Labview給的資料嗎?若沒有就是接線或通訊設定的問題.
51的程式是你寫的嗎?
51的程式是收到Labview給的資料再回饋資料,還是一直不斷回饋資料.
51是自己寫的 51是收到Labview給的資料再回饋資料的
"Bytes at Port"是51回的資料有幾個位元,若為0表示沒收到資料.
我覺得重點是51是否有收到Labview給的資料?如果確認有可以驅動馬達,那51回饋的資料是甚麼?
那個不好意思 剛剛我錯了測是我發現LABVIEW並沒有送出資料給51
我用您給我的VI測試我輸入1可是在RS232接51的那端用邏輯筆做測試
並沒有接收到LABVIEW給的資料 所以是哪邊出了問題?
不好意似麻煩您了!
接線有接對嗎?通訊設定對嗎?
請問"Enable Termination Char (T)"的設定是"ON"還是"OFF".
你使用之前我提供的程式將"Enable Termination Char (T)"設定"OFF"連51試試.
DonWang40438.947974537
謝謝您可以連線了! 那請問我8051端傳送的ASCII是資料
我要如何把資料定義成LAVBIEW看得懂
就是假如我8051傳送54H給LABVIEW 可是傳送的資料不代表是54H=T
所以我要如何告訴LABVIEW說這個54H=T呢??是要建個資料庫跟他說嗎?
因為我要把我讀到的54H轉成T之後接個CASE去選擇我要做的工作
你是說當8051要傳"T"給Labview時,Labview會收到"54H"嗎?
8051每次只傳"54H"嗎?還是有其他資料會傳給Labview?
DonWang40442.6634259259
8051撰寫實的程式是打上54H 送到labview時要在內部轉成T才能跳到CASE
可是我不知道如何告訴Labview54H是T 因為我們老師說我收到的東西只是資料
就像0或1 可是我沒有跟Labview講說那個是什麼所以要建個資料庫給他
可是我不會 還有Labview不只送T 因為我收到T的時候表示我的馬達要開始運轉
等到執行完畢的時候他會再傳回Q或q給我告訴我已執行完畢
這些都要建個資料庫給Labview告訴他說 我送的字元是什麼
謝謝您的幫助!
CASE你連接布林就"False","True"兩個CASE,也可連接數值(整數)或字串.
所以你不必一定要將"54H"轉成"T"才能跳到CASE

可是我前面送個M給8051然後8051要傳個T給我讓我開始讀取數值
然後我再CASE那邊不知道要怎麼把我讀到的數值接上去
還是我整個程式寫錯了 因為我目前實驗的步驟是Labview要傳M給8051
代表啟動之後8051回傳T給Labview告訴說要開始記錄數值然後等執行結束
再傳個Q給Labview說以執行完畢 這樣我要如何寫後面的程式 用case寫嗎?

"開始記錄數值"是指8051傳"T"之後會再傳記錄數值給Labview?
CASE是要連接read buffer(你程式的"回應")來對

是傳T之後開始記錄數值 那後面要怎麼轉換??
把我從8051得到的資料放進case裡請問要怎麼轉換?
非常感謝您的幫助
所以流程是LabView傳"M"給51,51回傳"T"後會繼續傳[數值],直到回傳"Q"表示結束.
那[數值]的形式為何?"123"?ASCII?傳出的頻率(每格多許傳一筆)?每筆資料長度?