2012-12-28 118 views
0

我想用一個串口將一個簡單的開關連接到我的電腦。每當開關閉合,我想增加一個變量。我正在使用Visual C++作爲項目。串行端口計數器

任何人都可以告訴我一個這個任務的方法嗎?我使用Google,並通過串行接口發現了用於讀寫數據的示例,但我不知道如何實現計數器。

+0

對於不知道如何實施櫃檯,你的意思是什麼?你的意思是初始化和遞增變量的機制? – RonaldBarzell

+0

您可以將交換機掛接到其中一個握手線,即Ring或CTS。 WaitCommEvent()看到它改變。要小心你會遇到的電氣問題,你必須將輸入線擺動至少5伏。詢問electronics.stackexchange.com –

回答

0

可以通過開關或導線將串口的DTR引腳連接到DSR或RI等引腳。用.NET框架的串口類來控制串口是很容易的。代碼示例可以在msdn串行端口類條目中找到。

1

我不認爲這是一個正常的串行端口,因爲串行端口通常使用一個脈衝(幾個脈衝可能是連續的或零的相同水平,但至少會有起始脈衝/序列的結尾,通常在中間)。消息中有一定數量的比特,通常是1個開始,8個數據和1個停止位。

如果您正在使用的系統上有這樣的事情,您可以使用並行端口或GPIO引腳來實現。

或者你必須實現更多的邏輯,而不是簡單的開關,例如發送一個脈衝序列來組成一個完整的數據包,並且有一個「關閉」和一個「打開」的消息。

+0

這的確是對的。 PC上的串口由一個簡單的硬件控制,該硬件使用[RS232](http://en.wikipedia.org/wiki/RS232)協議在其與另一端的串行端口之間發送字符。該協議是使用最簡單的通信協議之一,但它仍然不像使用並行端口那麼簡單。 – Will

+1

從技術上講,如果我們想要有點棘手,我想我們可能會有一個驅動程序對調制解調器狀態引腳的變化作出反應,例如, CTS和DSR。擺動其中的任何一個,我們可以用司機來計數。但我不相信這是原提問者想到的解決方案。 –

+0

取決於脈衝的寬度,它可能是一個有效的BREAK信號,它會被報告給軟件。 –