有關RS232 , com1與com2對傳資料之問題

我看過上篇【fluke 45無法讀資料】中的討論內容也無法理解其錯誤的原因,
就以下面一個例子說明我的問題。

程式:RS232-two com port.vi         (Labview 7.0版本的)

程式內容:把com1的資料傳至com2顯示出來

問題:程式直接run的時候經過裡面timeout的時間後,會出現以下圖示的錯誤,
         

       此問題出現在com2  read 的部份,
       而若使用【燈炮】模式下執行,則無錯誤。

       請問:1、timeout這個引數是做什麼用的呢,大小限制如何定義?

               2、以上的error為什麼會產生,如何在直接run的情況下正常?

               3、Com2的接收應該是是根據com1中pin4 (DTR)這腳位的high
                    or  low 而接收資料,如何抓取com1的pin4這腳位來看呢?

         ps:第一次使用RS232,很多不懂的部份,麻煩請各位大大解惑一下
  謝謝大家~~

 

RS232的線有沒有跳線?

試試2,3pin跳線,程式部分不使用Flow control(None).

[QUOTE=小小羊兒]

RS232的線有沒有跳線?

試試2,3pin跳線,程式部分不使用Flow control(None).

[/QUOTE]

 我的有跳線了唷,
 程式部分不使用Flow control(None).??這句話的意思是?
 然後我把程式改為以下:RS232-two com port.vi 

  不知道大家若run此程式是不跟我有一樣的錯誤呢?

 

  目題解決了~~使用sequence structure來確定com1把資料傳至buffer,

  再由com2來接收。

  但第二個問題:Com2的接收是根據com1中pin4 (DTR)這腳位的
                     high  or  low而接收資料,如何抓取com1的pin4這腳位來看呢?

 另外的問題就是使用這樣的寫法怪怪的,
 關於裡面timeout這引數,會影響我們傳輸及接收的速度,
 我將其設定為1ms,但還是非常的慢,而com2有時候值還是沒接收到,
 還有...有人試過使用labview抓取rs232資料,最大的頻寬是多少呢?

  RS232-two com port_1.vi

peterrabbit38468.5228240741

[QUOTE=peterrabbit]

 

  1.目題解決了~~使用sequence structure來確定com1把資料傳至buffer,

  再由com2來接收。

  2.但第二個問題:Com2的接收是根據com1中pin4 (DTR)這腳位的
                     high  or  low而接收資料,如何抓取com1的pin4這腳位來看呢?

[/QUOTE]

1.將General error handler.vi的error out接到VISA Configure serial port.vi的error in即可,如下圖

![](upload://hbGR3kI81nNyDS3XNIdSdLpSOh8.jpeg)

2.在硬體部份可以接個LED做顯示

[QUOTE=ancle][QUOTE=peterrabbit]

 

  1如何抓取com1的pin4這腳位來看呢?

[/QUOTE]

1.將General error handler.vi的error out接到VISA Configure serial port.vi的error in即可,如下圖

![](upload://hbGR3kI81nNyDS3XNIdSdLpSOh8.jpeg)

2.在硬體部份可以接個LED做顯示

[/QUOTE]

   這位大大你好,你說的第一點也不可行唷,它也會在timeout的時間裡出現error
   我上一個回答有做出來了,但就是讀值都很慢,這樣抓資料的話~
   恐怕會取不到值。

那你可以將VISA configure和Close放到while loop的外面

RS232-2 com port_modified.vi

[QUOTE=ancle]

那你可以將VISA configure和Close放到while loop的外面

RS232-2 com port_modified.vi

[/QUOTE]

  對喔~~我忘了硬体只要設定一次就好了,cc

  謝謝你的提醒嘍~~^^下次會注意的了~~