目錄
一、硬體要求
硬線連線
虛擬串列埠軟體
二、軟體程式設計
如何獲得本機可用的串列埠列表
串列埠的常用操作
如何避免死鎖
【指導手冊:serialport msdn 】
microsoft.visualbasic.devices.computer pc;
pc =
newmicrosoft.visualbasic.devices.computer();
foreach
(string
s in
pc.ports.serialportnames)
注:使用microsoft.visualbasic.devices需要在工程中新增microsoft.visualbasic的引用。
方法為:選單欄「專案」-》「新增引用」-》選擇「.net」選項卡-》找到「microsoft.visualbasic」後,點選,然後按「確定」,即可。
system.io.ports.serialport com;
com
=new
system.io.ports.serialport();
com.open();
com.close();
①使用writeline寫資料,用readline讀資料
com.writeline(
"hello elar");
//寫資料
//other code
string
instr
=com.readline();
//讀資料
注:使用readline和writeline時,要注意事先設定serialport的newline。
com.newline ="
\r\n";
//一般方法
//或者用下面的**
com.newline
=environment.newline;
//這樣比較好
②使用write寫串列埠,read(或readexisting)讀串列埠
com.write(
"hello elar");
read函式有兩種實現方式(詳見【這裡】):
建議用 serialport.read (byte, int32, int32) 方式,因為使用byte方式傳送和接收,可用在傳輸的時候避免因為編碼的問題而出現亂碼的情況。
使用方法如下:
byte
readbuffer
=new
byte
[com.readbuffersize];
com.read(readbuffer,
0, readbuffer.length);
readbuffersize 是serialport的公共屬性之一,通過它可以獲取或設定serialport輸入緩衝區的大小。通過上面的**讀出的是二進位制資料,可以通過如下**將其轉換為常見的string型資料:
strings =
encoding.unicode.getstring(readbuffer);
//要求編碼時候用的也是unicode編碼方式
readexisting 和 write 配合使用,並避免亂碼(黃色標識的部分)的方案如下:
byte data
=encoding.unicode.getbytes(sendtext.text);
//sendtext為輸入傳送資料的文字框
string
str
=system.text.encoding.unicode.getstring(data);
com.write(str);
//向埠寫資料
byte data
=system.text.encoding.unicode.getbytes(port.readexisting());
//從埠讀資料
string
str
=encoding.unicode.getstring(data);
//將資料轉換為string型
待續……
Linux串列埠程式設計入門
fedora12 gcc 4.4.4 linux的串列埠程式設計使用posix終端控制函式,關於posix終端控制函式的詳細情況可以檢視 serial programming guide for posix operating systems 我的翻譯 posix作業系統的串列埠程式設計指南 ter...
Linux下串列埠程式設計入門
簡介 linux作業系統從一開始就對序列口提供了很好的支援,本文就linux下的序列口通訊程式設計進行簡單的介紹。串列埠簡介 序列口是計算機一種常用的介面,具有連線線少,通訊簡單,得到廣泛的使用。常用的串列埠是rs 232 c介面 又稱eia rs 232 c 它是在1970年由美國電子工業協會 e...
qt串列埠程式設計
本帖被 xchinux 執行加亮操作 2008 04 22 serial.cpp int main int argc,char argv mainwindow.h ifndef main window h define main window h include class qlabel class...