国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

mscomm32的簡單應用

2019-11-18 18:20:02
字體:
來源:轉載
供稿:網友
 

風花雪月 e夢情緣
網絡代號:wnhoo or sos_admin
網名:e夢緣
Mail:
wnhoo@163.com

因為看到很多網友對串口通信的問題,其中最多的是關于元件的選用與通信的實現。
我想您不論用什么類型的控件操作rs232均是一樣的,我比較喜歡用mscomm32,因為它是ms的,且是vb程式設計軟件自帶的,并且免費哦
還有一個就是moxa的rs232專業開發包pcomm,到
www.moxa.com.twwww.moxa.com.cn可以看到。
但是我建議您使用ms的,它免費,但pcomm不是的。并且mscomm32有中文幫助的,基本對串口操作事例都有的。很好用!!!

所以下面我就針對mscomm32的應用寫了一個簡單的串口通信工具,主要功能就是通過ms的mscomm32控件實現rs232的數據傳送與接受。
主要講解2中傳送方法:
1、直接傳送
2、傳送數組元素

down:

http://delphi.ur-solution.com/delphi_download/upload/35466_mscomm1.rar

控件安裝〉〉〉

方法零
直接regsvr32 mscomm32.ocx
條件:系統以前裝過vb

方法一
1、安裝VB6.0
2、如同我上面的所說的安裝方法,在DELPHI(5、6、7)中安裝就可以用了

方法二
原文著作:王金濤
出處:http://www.s8s8.net/cgi-bin/post.cgi?action=replyquote&forum=5&topic=2279&postno=4

Delphi 具有功能強大、簡便易用和代碼執行速度快等特點,是全球公認的快速應用開發工具技術的先驅者。但是在對串口通信的控制上Delphi的幫助文檔和其他書籍中很少提及,這恰恰又是在開發應用系統時會經常遇到的問題。用過VB的程序員都知道 VB的MSComm通信控件具有豐富的與串口通信密切相關的屬性及事件,提供了一系列標準通信命令的接口,可以用它創建全雙工的、事件驅動的、高效實用的通信程序。在這里就介紹一下如何把MSComm這個ActiveX控件加入到Delphi中,充分發揮出二者的優越性。

  首先在VB安裝目錄下找到下列三個文件:

  Mscomm.reg, Mscomm32.ocx,Mscomm32.dep ,

  把這三個文件拷貝到Windows的system目錄下(注意WinNT下是System32)。然后用Windows下的注冊工具regsvr32注冊該OCX控件,例如:

  Regsvr32 … system目錄/Mscomm32.ocx .

  注冊成功后用記事本打開Mscomm.reg,可以看到類似下面的內容:

  [HKEY_CLASSES_ROOT/Licenses/4250E830-6AC2-11cf-8ADB-00AA00C00905]

@ = "kjljvjjjoquqmjjjvpQQkqmqykypoqjquoun",為了能正確使用該控件,需要修改注冊表的信息,在注冊表的在HKEY_CLASSES_ROOT/Licenses下建一主鍵:

4250E830-6AC2-11cf-8ADB-00AA00C00905,主鍵的內容為

kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun.

  至此已經完成了控件的系統注冊工作,剩下的工作是在Delphi中導入這個ActiveX控件,進入Delphi環境在Component菜單下選Import ActiveX Control,這時在列表中可以看到Microsoft Comm Control 6.0選項, 選中這個選項點擊Install按鈕,完成安裝。在ActiveX控件頁上可以看到一個電話為圖標的控件,這就是MSComm控件。這樣就可以象在VB中一樣方便得使用MSComm控件了。

 

但是byte array的資料就是不知該用什麼方法送出去?

type
TCharArray=array[0..1] of BYTE;
PCharArray=^TCharArray;
PRocedure WriteCom(comm:TMSComm;const Buf:array of BYTE);
var
V:Variant;
p:PCharArray;
i:Integer;
begin
V:= VarArrayCreate([Low(Buf), High(Buf)],varByte);
P := VarArrayLock(V);
try
for i:=Low(Buf) to High(Buf) do P^[i]:=Buf[i];
finally
VarArrayUnlock(v);
end;
comm.OutPut:=V;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
buf:array[1..20] of BYTE;
i:integer;
str:string;
begin
if comm1.PortOpen then
begin
for i:=1 to length(str) do
buf[i]:=I;
comm1.RThreshold:=20;
WriteCom(comm1,buf);
end;
end;

我想您使用byte array,應該是傳送2進制;需要將INPUTMODE為1 - comInputModeBinary。


上一篇:基于阻塞Socket(Indy)的遠程控制類庫-TNetCommand世界中的禮儀-02

下一篇:使用Dephi組件的生存期管理

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 南木林县| 巴彦淖尔市| 江达县| 长武县| 青州市| 霍山县| 宁陵县| 台东市| 寿阳县| 嘉黎县| 渭源县| 志丹县| 宕昌县| 上栗县| 寿阳县| 资兴市| 桐乡市| 万荣县| 孙吴县| 卓资县| 思茅市| 太仆寺旗| 赞皇县| 会理县| 筠连县| 扶余县| 新蔡县| 会泽县| 赞皇县| 灵武市| 离岛区| 乌什县| 湘潭市| 微山县| 弥渡县| 田阳县| 阿巴嘎旗| 成安县| 沛县| 兖州市| 平邑县|