• <delect id="0fobl"><td id="0fobl"></td></delect>
    <p id="0fobl"><code id="0fobl"></code></p>
  • <rp id="0fobl"><menuitem id="0fobl"><tr id="0fobl"></tr></menuitem></rp>
  • <object id="0fobl"><del id="0fobl"></del></object>
    <u id="0fobl"></u>
    <dfn id="0fobl"><rp id="0fobl"></rp></dfn>

      <font id="0fobl"><object id="0fobl"></object></font>
      <samp id="0fobl"><td id="0fobl"></td></samp>
      <video id="0fobl"><thead id="0fobl"></thead></video>
      <delect id="0fobl"><td id="0fobl"></td></delect>

        1. <source id="0fobl"></source>

            <acronym id="0fobl"><sub id="0fobl"></sub></acronym>
            <var id="0fobl"><td id="0fobl"><ins id="0fobl"></ins></td></var>

              <rp id="0fobl"></rp><acronym id="0fobl"><bdo id="0fobl"></bdo></acronym>

                Delphi使用spcomm

                Delphi使用spcomm實現串口通信 基礎知識及(兩個實例)



                學習下載專區 【2019-11-16 10:42】


                心得

                轉自:https://www.cnblogs.com/beeone/archive/2010/08/12/1798280.html

                如果你已經會使用SPCOMM且出現10個以上的串口問題

                請改一下串口名

                COM1.CommName='\\.\com18';

                就這樣 加'\\.\'就行了我也不知道什么回事.......

                以下為抄錄不知道是誰的

                Delphi 是新一代可視化開發工具,它具有功能強大、簡便易用和代碼執行速度快等特點,是全球公認的快速應用開發工具技術的先驅者,它越來越在構架企業信息系統方面發揮著重要作用。由于Delphi 這些顯著特點,許多程序員選擇Delphi作為開發工具編制各種應用程序。但是,令人惋惜的是Delphi沒有自帶串口通訊的控件,在它的幫助文檔里也沒有提及串口通訊,這就給編制通訊程序的開發人員帶來眾多麻煩,影響了開發進度,下面就這一技術進行討論?! ∮肈elphi 實現串口通訊,常用的幾種方法為:使用控件如MSCOMM和SPCOMM,使用API函數或者在Delphi 中調用其它串口通訊程序。利用API編寫串口通信程序較為復雜,需要掌握大量通信知識,其優點是可實現的功能更強大,應用面更廣泛,更適合于編寫較為復雜的低層次通信程序。相比較而言,利用SPComm控件則相對較簡單,該控件具有豐富的與串口通信密切相關的屬性及事件,提供了對串口的各種操作?! ∈褂每丶@一方法容易掌握,而SPCOMM支持多線程,所以SPCOMM控件的應用更加廣泛。結合實例詳細介紹SPCOMM的使用。一.SPCOMM控件的安裝

                1.選擇下拉菜單Component的第二項Install Component 。

                在Unit file name 處填寫控件SPCOMM控件所在路徑,其它可用默認值,點擊OK按紐。

                2.安裝成功后,system控件面板中將出現一個紅色控件COMM?,F在使用COMM控件可以象Delphi自帶控件一樣使用.。

                二.SPCOMM的主要屬性,方法和事件

                1.屬性CommName:填寫COM1,COM2…等串口的名字,在打開串口前,必須填寫好此值。

                ?BaudRate:設定波特率9600,4800等,根據實際需要來定,在串口打開后也可更改波特率,實際波特率隨之更改。

                ParityCheck:奇偶校驗。

                ByteSize:字節長度_5,_6,_7,_8等,根據實際情況設定。

                Parity:奇偶校驗位StopBits:停止位SendDataEmpty:這是一個布爾屬性,為true時表示發送緩存為空,或者發送隊列里沒有信息;為False時表示表示發送緩存不為空,或者發送隊列里有信息。

                2.方法   Startcomm過程用于打開串口,當打開失敗時通常會報錯,錯誤主要有7種:

                ⑴串口已經打開 ;

                ⑵打開串口錯誤 ;

                ⑶文件句柄不是通訊句柄;

                ⑷不能夠安裝通訊緩存;

                ⑸不能產生事件 ;

                ⑹不能產生讀進程;

                ⑺不能產生寫進程;  

                StopComm過程用于關閉串口,沒有返回值?! ?/p>

                函數WriteCommData(pDataToWrite: PChar;dwSizeofDataToWrite:Word ): boolean 用于發送一個字符串到寫線程,發送成功返回true,發送失敗返回false, 執行此函數將立即得到返回值,發送操作隨后執行。函數有兩個參數,其中 pdatatowrite是要發送的字符串,dwsizeofdatatowrite 是發送的長度。

                3.事件OnReceiveData : procedure (Sender: TObject;Buffer: Pointer;BufferLength: Word) of object   

                當輸入緩存有數據時將觸發該事件,在這里可以對從串口收到的數據進行處理。Buffer中是收到的數據,bufferlength是收到的數據長度。

                OnReceiveError : procedure(Sender: TObject; EventMask : DWORD)   

                當接受數據時出現錯誤將觸發該事件。

                三.SPCOMM的使用  下面,我們結合一個串口通訊的例子來說明SPCOMM的使用?! ?/p>

                為了實現PC與單片機8051之間的通訊,首先要調通它們之間的握手信號,假定它們之間的通訊協議是,

                PC到8051一幀數據6個字節,8051到PC一幀數據也為6個字節,當PC發出(F0,01,FF,FF,01,F0)后能收到這樣一幀(F0,01,FF,FF,01,F0),表示數據通信握手成功,兩者之間就可以按照協議相互傳輸數據。在PC方要發送及接受數據需要以下步驟:1.創建一個新的工程COMM.DPR,把窗體的NAME屬性改為FCOMM,把窗體的標題改為測試通訊,添加控件?! OMM1(黑色矩形圍住的控件)進行屬性設計,設波特率4800,校驗位無,字節長度_8,停止位_1,串口選擇COM1。Memo1中將顯示發送和接受的數據。選擇File/Save As將新的窗體存儲為Comm.pas。




                download spcomm :
                http://www.3jnews.com/download/SPCOMMXE-XE10.1FULLSOURCE.rar
                友情鏈接:
                sql修復專家
                • 關注微博
                  聯系QQ
                • 二維碼
                • 掃一掃加關注

                ——信陽市速全網絡科技有限公司——

                版權所有:信陽市速全網絡科技有限公司

                豫ICP備19030104號-2

                国产又粗又硬又黄又骚的视频,五月天久久综合,亚洲丝袜美腿无码在线观看,精品少妇爆乳澡澡澡
                
                
              1. <delect id="0fobl"><td id="0fobl"></td></delect>
                <p id="0fobl"><code id="0fobl"></code></p>
              2. <rp id="0fobl"><menuitem id="0fobl"><tr id="0fobl"></tr></menuitem></rp>
              3. <object id="0fobl"><del id="0fobl"></del></object>
                <u id="0fobl"></u>
                <dfn id="0fobl"><rp id="0fobl"></rp></dfn>

                  <font id="0fobl"><object id="0fobl"></object></font>
                  <samp id="0fobl"><td id="0fobl"></td></samp>
                  <video id="0fobl"><thead id="0fobl"></thead></video>
                  <delect id="0fobl"><td id="0fobl"></td></delect>

                    1. <source id="0fobl"></source>

                        <acronym id="0fobl"><sub id="0fobl"></sub></acronym>
                        <var id="0fobl"><td id="0fobl"><ins id="0fobl"></ins></td></var>

                          <rp id="0fobl"></rp><acronym id="0fobl"><bdo id="0fobl"></bdo></acronym>