JAVA 串口編程

lyz 14年前發布 | 5K 次閱讀 JavaSwing

<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #7f0055; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left>一:配置環境</FONT></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left>首先:安裝JSDK1.6</SPAN>,然后到<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>SUN</FONT></SPAN>公司網站下載<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>Java Communications API</FONT></SPAN>。下載的壓縮包里有開發文檔和三個重要文件:</FONT><SPAN lang=EN-US style="COLOR: #c0504d; mso-bidi-font-size: 10.5pt; mso-themecolor: accent2"><FONT face=Calibri>comm.jar</FONT></SPAN><SPAN lang=EN-US style="COLOR: #c0504d; mso-bidi-font-size: 10.5pt; mso-themecolor: accent2"><FONT face=Calibri>win32com.dll</FONT></SPAN><SPAN lang=EN-US style="COLOR: #c0504d; mso-bidi-font-size: 10.5pt; mso-themecolor: accent2"><FONT face=Calibri>javax.comm.properties</FONT></SPAN><FONT color=#000000>;其中<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>comm.jar</FONT></SPAN>提供通訊用的<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>API</FONT></SPAN>,而<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>win32com.dll</FONT></SPAN>提供了供<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>comm.jar</FONT></SPAN>調用的本地驅動接口。而<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>javax.comm.properties</FONT></SPAN>是這個驅動的類配置文件。<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"></SPAN></FONT></FONT></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left>其次:把comm.jar</SPAN>復制到<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>JSDK</FONT></SPAN>安裝目錄的<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>jre1.6.0\lib\ext\</FONT></SPAN>下,并把<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>comm.jar</FONT></SPAN>包加在<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"></SPAN></FONT></FONT></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left>CLASSPATH</SPAN>下,把<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>javax.comm.properties</FONT></SPAN>文件復制到<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>JSDK</FONT></SPAN>安裝目錄的<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>jre1.6.0\lib</FONT></SPAN>下,<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"></SPAN></FONT></FONT></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left>在建立好一個空的JAVA</SPAN>的工程時把<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>comm.jar</FONT></SPAN>復制到<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>lib</FONT></SPAN>目錄下并加載在工程里,把<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>win32com.dll</FONT></SPAN>復制到工程的根目錄下或者復制到<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>JSDK</FONT></SPAN>安裝目錄的<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><FONT face=Calibri>jre1.6.0\bin</FONT></SPAN>目錄下。<SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"></SPAN></FONT></FONT></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left" align=left>二:運行一個程序測試環境</FONT></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>我們要用程序來讀取計算機有哪些串口可用,如果可以說明環境配置正確,</SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left> </P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>package<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> com.lyz;</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> </SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>import<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> java.io.IOException;</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>import<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> java.util.Enumeration;</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>import<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> javax.comm.CommPortIdentifier;</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> </SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left>public<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> </SPAN>class<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> Ghsdgfds {</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> </SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">    </SPAN>public<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> </SPAN>static<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> </SPAN>void<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> main(String[] args) </SPAN>throws<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> IOException, InterruptedException {</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">       Enumeration en = CommPortIdentifier.getPortIdentifiers();</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">       CommPortIdentifier portId;</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">       </SPAN>while<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">(en.hasMoreElements()){</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">           portId = (CommPortIdentifier) en.nextElement();</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">           </SPAN>if<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"> (portId.getPortType() == CommPortIdentifier.</SPAN>PORT_SERIAL<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">) </SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">           {</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">           System.</SPAN>out<SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">.println(portId.getName());</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">           }</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">       }</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">    }</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">}</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"></SPAN></P>

 

 本文由用戶 lyz 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!