線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2937
推到 Plurk!
推到 Facebook!

如何用RS232在指定的端子傳送High Low訊號

答題得分者是:wjhsu
shiuan0610
一般會員


發表:15
回覆:13
積分:5
註冊:2007-05-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-12-12 18:14:18 IP:60.244.xxx.xxx 訂閱
如題,我不需要串列傳輸data
只有要拿其中幾個端子,傳H或L的訊號
而且能調時間
例如持續0.5秒H,然後持續0.1秒L

我網路上找的資料,都是在傳字元或data的,沒有符合我需求的code可以參考
有沒有相關的資料,程式碼,或文件可參考的呢?
yubad2000
中階會員


發表:0
回覆:44
積分:78
註冊:2007-09-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-12-12 23:43:14 IP:66.171.xxx.xxx 未訂閱
RS232是serial訊號
每個packet有start bit and end bit 與固定bit長度
所以應該無法達成你要的功能

===================引 用 shiuan0610 文 章===================
如題,我不需要串列傳輸data
只有要拿其中幾個端子,傳H或L的訊號
而且能調時間
例如持續0.5秒H,然後持續0.1秒L

我網路上找的資料,都是在傳字元或data的,沒有符合我需求的code可以參考
有沒有相關的資料,程式碼,或文件可參考的呢?
------
===波士頓夜未眠===
What a wonderful world!!
Jazz up the world with jazz!!
==================

When I am not programming...
you can find me here:
http://www.holy-war.de/EN/World3/bin/?advertiser=63190
編輯記錄
yubad2000 重新編輯於 2007-12-12 23:52:45, 註解 無‧
harpist
資深會員


發表:3
回覆:251
積分:430
註冊:2002-10-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-12-13 05:03:59 IP:59.105.xxx.xxx 未訂閱
參考看看RTS腳位符不符合你的需求

[code cpp]
HANDLE hComm;
String ComNo = "COM1"; //你要控制的 COM
hComm = CreateFile(ComNo.c_str(),GENERIC_READ | GENERIC_WRITE,0, NULL, OPEN_EXISTING, 0, 0);
if (hComm == INVALID_HANDLE_VALUE) //COM 未開啟
{
MessageBox(0,"開啟通訊埠錯誤!!","Comm Error",MB_OK);
return;
}
else
{
EscapeCommFunction(hComm,CLRRTS);//將RTS腳位降成低電位
// 間隔時間控制
//...
EscapeCommFunction(hComm,SETRTS);//將RTS腳位升至高電位
CloseHandle(hComm);
}

[/code]


------
~§~迷時師渡,悟了自渡~§~
編輯記錄
harpist 重新編輯於 2007-12-13 05:04:42, 註解 無‧
harpist 重新編輯於 2007-12-13 05:05:32, 註解 無‧
harpist 重新編輯於 2007-12-13 05:08:41, 註解 無‧
shiuan0610
一般會員


發表:15
回覆:13
積分:5
註冊:2007-05-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-12-13 09:02:13 IP:60.244.xxx.xxx 訂閱
感謝樓上兩位的回答
串列傳輸的TxD,RxD應該是無法用來滿足的我的需求
不過我需要三個腳位來做H L傳訊,只傳送,不接收
請問除了RTS外,其他的腳位也可以用嗎?
例如CTS及DSR?
編輯記錄
shiuan0610 重新編輯於 2007-12-13 09:02:46, 註解 無‧
harpist
資深會員


發表:3
回覆:251
積分:430
註冊:2002-10-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-12-13 20:07:02 IP:59.105.xxx.xxx 未訂閱
RS232 的 CTS 跟 DSR 都是接收狀態,除了 RTS 還有 DTR 可以利用,就這兩個了。
------
~§~迷時師渡,悟了自渡~§~
yubad2000
中階會員


發表:0
回覆:44
積分:78
註冊:2007-09-30

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-12-14 06:11:05 IP:66.171.xxx.xxx 未訂閱
If you need more than 3 pins for control signal.
Why not use parallel port (printer port) instead??
Need more detail of how to do programming on parallel port?
Please refer to this website: http://www.beyondlogic.org/spp/parallel.htm


===================引 用 shiuan0610 文 章===================
感謝樓上兩位的回答
串列傳輸的TxD,RxD應該是無法用來滿足的我的需求
不過我需要三個腳位來做H L傳訊,只傳送,不接收
請問除了RTS外,其他的腳位也可以用嗎?
例如CTS及DSR?
------
===波士頓夜未眠===
What a wonderful world!!
Jazz up the world with jazz!!
==================

When I am not programming...
you can find me here:
http://www.holy-war.de/EN/World3/bin/?advertiser=63190
wjhsu
初階會員


發表:9
回覆:32
積分:48
註冊:2004-06-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-12-14 12:45:16 IP:61.219.xxx.xxx 訂閱
除了RTS,DTR可當一般輸出之外, TxD也可以當作"脈波"的輸出, 
至於脈波的寬度, 就和你設定的Data寬度及BaudRate而定了...
(就是Write一個0出去就好了)

我之前有把232當做一般IO, 並模擬SPI介面, 做了個89S5x的燒錄器,
請參考...
http://delphi.ktop.com.tw/board.php?cid=173&fid=1167&tid=90019

P.S. RS232的部分主要在 TSpiInterface.cpp裏
記得若要用在邏輯電路, 要加上一個準位轉換的電路..

===================引 用 shiuan0610 文 章===================
感謝樓上兩位的回答
串列傳輸的TxD,RxD應該是無法用來滿足的我的需求
不過我需要三個腳位來做H L傳訊,只傳送,不接收
請問除了RTS外,其他的腳位也可以用嗎?
例如CTS及DSR?
系統時間:2024-11-21 18:57:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!