入門 串列埠程式設計

2022-03-15 23:15:20 字數 2062 閱讀 8013

目錄

一、硬體要求

硬線連線

虛擬串列埠軟體

二、軟體程式設計

如何獲得本機可用的串列埠列表

串列埠的常用操作

如何避免死鎖

【指導手冊: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...