在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創信息技術C#使用COM組件接口進行串口操作介紹

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2019-11-14 09:37 ? 次閱讀

英創ARM9工控主板均提供了多個串口供客戶進行通訊控制使用,包括標準的RS232和TTL電平的COM接口(經過簡單的電平轉換即可成為標準的RS232/RS485或者RS422)。由于英創ARM9嵌入式主板采用WinCE操作系統,很多客戶都選擇了界面友好、開發便利的C#語言(使用Visual Studio 2005.NET集成開發環境);在VS2005中,微軟提供了一個標準的串口類SerialPort供客戶使用,該串口類可以靈活方便地進行串口設置、收發等操作,英創也提供了基于該串口類的C#例程供客戶參考。但是,微軟所提供的串口類雖然方便靈活,但是沒有提供RTS控制的功能,而客戶在進行工業現場通訊的時候,往往是需要對RTS進行設置的。為了解決這個問題,英創公司現在提供了操作串口的COM組件接口;用戶只需要在目標平臺上進行組件注冊,然后在C#程序開發的時候,對該COM組件添加引用,即可在程序里面自由地通過對象操作來使用函數。

注:英創提供的可以供C#開發使用的串口COM組件與eVC開發使用的串口COM組件在成員數據類型上有顯著區別,不能互換使用。

下面我們就以EM9000嵌入式主板為實例,在C#使用COM組件接口進行串口操作作一個說明:

1、在目標嵌入式主板上進行COM組件注冊

串口COM組件的核心文件就是英創提供的ComSerial.dll動態鏈接庫文件,首先需要將它在目標嵌入式工控主板上注冊。用戶可以使用Visual Studio Remote Tools提供的“遠程文件查看器”連接目標嵌入式工控主板,并將英創提供的ComSerial.dll和REGSVR32.exe這兩個文件下載到目標主板的Flash存儲器上去(這里假設下載到EM9000的Nor Flash)。然后在開發主機PC上使用Telnet連接目標工控主板(如圖),進入放置剛才下載這兩個文件的Flash存儲器目錄,運行:

REGSVR32 ComSerial.dll

即可完成COM組件注冊。

2、在C#工程中添加COM組件引用

接下來可以進入C# COM組件開發。首先將ComSerial.dll文件復制到用戶的C#工程目錄下,然后在Visual Studio 2005.NET集成開發環境中打開用戶工程。為了使用ISA總線COM組件,必須為該工程添加外部引用;用戶可在集成開發環境的右側的“解決方案資源管理器”中找到“引用”,對其單擊鼠標右鍵,然后單擊“添加引用”(如圖)。

在彈出的“添加引用”對話框中,選擇“瀏覽”選項卡,并在你的工程目錄下找到你剛才復制過來的ComSerial.dll文件,選擇它,并單擊“確定”。

這時,你已經完成了添加工程中的COM組件的引用工作,這時,你可以在集成開發環境的右側的“解決方案資源管理器”中看到了一個名稱為COMSERIALLib的引用,同時,ComSerial.dll也加入到了你的工程中(如圖)。

3、在應用程序開發中使用串口COM組件

首先,為了使應用程序能直接調用相關的類和函數,必須在程序的起始using語句中添加:

using COMSERIALLib;

程序中對于串口的操作完全圍繞CoSerialClass這個類來進行的。用戶需要首先定義這個類的對象實體,然后通過對對象里面的方法(函數)來進行所需要的操作。下面大致做一些講解:

(1)定義類的對象

CoSerialClass COM_myserialPort = new CoSerialClass(); // 定義一個CoSerialClass串口類對象COM_myserialPort

(2)使用對象的方法函數

該串口類的對象實體主要包括四個函數和兩個事件,下面我們著重就OpenPort、ClosePort、WritePort、ReadPort四個函數和OnRecieve事件進行舉例說明(舉例中所使用的類對象已經在上文中定義):

int OpenPort(uint portNo, uint baud, sbyte parity, uint dataBits, uint stopBits, uint rtsCtr);

打開串口函數,使用示例如下:

uint portNO = 1; // 串口1

uint myrate = 9600; // 波特率9600

COM_myserialPort.OpenPort(portNO, myrate, Convert.ToSByte(‘n’), 8, 1, RTS_CONTROL_TOGGLE);

// 參數依序:串口號、波特率、校驗位(無)、數據位(8)、停止位(1)、RTS

注意RTS常數應該在程序開始就定義,我們一般做如下定義:

const uint RTS_CONTROL_DISABLE = 0x00;

const uint RTS_CONTROL_ENABLE = 0x01;

const uint RTS_CONTROL_HANDSHAKE = 0x02;

const uint RTS_CONTROL_TOGGLE = 0x03;

OnRecieve事件

我們可以利用COM組件提供的OnRecieve事件(當串口有數據收到的時候發生)來啟動一個事件函數來讀取串口數據。OnRecieve事件可以放在程序定義串口對象實例之后程序剛開始的某個地方:

COM_myserialPort.OnReceive + = new _ICoserialEvents_OnReceiveEventHandler (COM_myserialPort_OnReceive);

// 當串口有數據收到時,啟動COM_myserialPort_OnReceive事件函數

byte ReadPort()

讀取串口數據函數,往往在OnReceive事件函數里使用,注意該函數是一次讀取一個byte,所以一次需要將數據讀取完畢(結束標志為0xff)。使用示例如下:

private void COM_myserialPort_OnReceive() // 串口有數據收到

{

byte recieved_byte = 0;

byte[] RCV_bytes = new byte[1024];

int i=0;

for (i=0;i《1024;i++ )

{

recieved_byte = COM_myserialPort.ReadPort();

if (recieved_byte == 0xff) break;

RCV_bytes[i] = recieved_byte;

}

// 此處可對收到的數據進行進一步處理

}

int WritePort(int elems, byte[] buf);

發送串口數據函數,使用示例如下:

byte[] sendbytemessage = Encoding.Default.GetBytes(textBox1.Text); // 將某文本框數據轉為byte數組

COM_myserialPort.WritePort(sendbytemessage.Length, sendbytemessage); // 發送

void ClosePort();

關閉串口函數,直接使用即可關閉串口。

用戶還可以參考英創提供的C#串口COM組件例程,進行實際的應用開發。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6086

    瀏覽量

    35614
收藏 人收藏

    評論

    相關推薦

    信息技術ARM9工控板串口設備的COM組件應用

    公司的ARM9工控主板產品均預裝了Windows CE5.0操作系統,支持包括EVC、C#、VB、LabView等多種開發工具。
    的頭像 發表于 11-05 10:07 ?1817次閱讀

    信息技術C#使用COM組件接口操作精簡ISA總線淺談

    ARM9工控主板的數據采集功能通常采用板上的GPIO實現數字輸入輸出、通過精簡ISA總線擴展相應的外部控制電路(如控制繼電器或AD或DA實現模擬數據的輸入輸出等)。
    的頭像 發表于 11-12 10:24 ?1656次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>C#</b>使用<b class='flag-5'>COM</b><b class='flag-5'>組件</b><b class='flag-5'>接口</b><b class='flag-5'>操作</b>精簡ISA總線淺談

    信息技術CAN接口COM組件C#語言領域應用

     ARM9工控主板的一個很大的特色就是提供了標準的CAN總線通訊接口,客戶可以方便地在工業現場、汽車、船舶等等領域進行CAN通信應用。由于
    的頭像 發表于 11-12 10:34 ?2497次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>CAN<b class='flag-5'>接口</b><b class='flag-5'>COM</b><b class='flag-5'>組件</b>在<b class='flag-5'>C#</b>語言領域應用

    信息技術工控主板EM9360的GPIO介紹

    公司的ARM9工控主板產品 EM9360是一款預裝WinCE操作系統,以多種通訊接口、支持各種擴展為其技術特色。EM9360的板載的3路
    的頭像 發表于 11-14 09:34 ?2446次閱讀

    信息技術WinCE平臺C#例程要點介紹

    嵌入式ARM9主板采用微軟的Windows CE操作系統,可以采用eVC或者VS2005進行應用開發。C#作為一種簡單易用的編程語言工具
    的頭像 發表于 11-15 10:01 ?2194次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>WinCE平臺<b class='flag-5'>C#</b>例程要點<b class='flag-5'>介紹</b>

    信息技術C#使用VS2005提供的串口進行串口操作介紹

     ARM9工控主板均提供了多個串口供客戶進行通訊控制使用,包括標準的RS232和TTL電平的COM
    的頭像 發表于 11-18 09:53 ?1371次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>C#</b>使用VS2005提供的<b class='flag-5'>串口</b>類<b class='flag-5'>進行</b><b class='flag-5'>串口</b><b class='flag-5'>操作</b><b class='flag-5'>介紹</b>

    信息技術C#啟動和關閉外部進程的方法介紹

    許多用戶在程序開發過程中需要使用C#啟動一個外部程序(進程),在使用完畢該外部程序后,又希望能將其關閉。我們特在此對C#啟動和關閉外部進程的方法進行一個簡單的介紹
    的頭像 發表于 01-14 14:36 ?1278次閱讀

    信息技術嵌入式系統設備驅動接口C#編程

    ARM9系列嵌入式主板,均預裝了WinCE 5.0、WinCE 6.0操作系統,用戶可使用標準的C/C++或
    的頭像 發表于 01-15 11:29 ?1351次閱讀

    信息技術嵌入式系統通訊線程的C#編程方法

    在使用ARM9系列嵌入式主板的COM口,CAN口,網口時,一般會使用到timer或線程來實現數據的接收。使用timer控件較為方便,通過InterVal值來設定調用間隔,但是靈活性不如線程。并且
    的頭像 發表于 01-15 11:25 ?1333次閱讀

    信息技術EM9280串口技術特色及應用介紹

    EM9280是公司即將推出的新型工控主板產品。EM9280作為第一款板載8個獨立的異步串口(UART),而有別于公司的其他主板產品。8個串口的配置,可滿足在絕大多數應用場合的需求,
    的頭像 發表于 01-15 14:41 ?1370次閱讀

    信息技術嵌入式Linux主板Qt串口應用程序簡介

    :/dev/ttyS1,設置串口參數,創建一個單獨的線程來對數據進行收發,使用read函數讀取數據,write函數發送數據。并且公司將其封裝成一個serial類,可以使用seria
    的頭像 發表于 01-17 09:41 ?1898次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>嵌入式Linux主板Qt<b class='flag-5'>串口</b>應用程序簡介

    信息技術C/C#開發基于WEC7的CAN通訊介紹

    EM335x工控主板,使用的Cortex-A8及WEC7操作系統。本文以EM335x工控主板光盤例程為例,簡單介紹一下C
    的頭像 發表于 01-17 10:01 ?2761次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>C</b>/<b class='flag-5'>C#</b>開發基于WEC7的CAN通訊<b class='flag-5'>介紹</b>

    信息技術JAVA操作主板SPI接口簡介

    資源,提供了Java硬件支持包,主要支持的工控接口有:以太網、串口、CAN、GPIO、SPI、I2C、RTC等。本文主要
    的頭像 發表于 02-06 11:09 ?1988次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>JAVA<b class='flag-5'>操作</b><b class='flag-5'>英</b><b class='flag-5'>創</b>主板SPI<b class='flag-5'>接口</b>簡介

    信息技術JAVA操作主板I2C接口簡介

    資源,提供了Java硬件支持包,主要支持的工控接口有:以太網、串口、CAN、GPIO、SPI、I2C、RTC等。本文主要
    的頭像 發表于 02-06 11:06 ?1735次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>JAVA<b class='flag-5'>操作</b><b class='flag-5'>英</b><b class='flag-5'>創</b>主板I2<b class='flag-5'>C</b><b class='flag-5'>接口</b>簡介

    信息技術主板在Windows CE環境中的串口配置

    異步串口UART是工業領域使用最廣泛,技術最為成熟的接口。在Windows CE環境的主板中,串口
    的頭像 發表于 02-06 11:06 ?1212次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>主板在Windows CE環境中的<b class='flag-5'>串口</b>配置
    主站蜘蛛池模板: 性欧美bbbbbb动漫 | 亚洲不卡视频在线观看 | 又色又爽又黄视频 | 天天干夜夜曰 | 亚洲美女啪啪 | 一级毛片在线看在线播放 | 97射射| 色五五月 | 在线免费看片a | yy4080一级毛片免费观看 | 亚洲国产精品婷婷久久 | 窝窝午夜看片成人精品 | 免费又爽又黄的禁片1000部 | 天堂网www在线观看 天堂网www在线资源中文 | ts人妖另类国产 | 三级黄色录像 | 黄网站视频观看免费 | 久青草国产手机视频免费观看 | 2021久久精品国产99国产精品 | 精品乩伦视频 | 女人aaaaa片一级一毛片 | 亚洲成人免费网站 | 亚洲区视频在线观看 | 噜噜噜动态图超猛烈 | 爱看精品福利视频观看 | 黄色大片视频在线观看 | 中国美女乱淫免费看视频 | 99久久精品免费精品国产 | 欧美线人一区二区三区 | 分分精品 | 欧美伊人 | 好色亚洲| 国产日韩精品一区二区在线观看 | 成人黄色免费网站 | 日本黄色片视频 | 欧美图片小说视频 | h视频免费高清在线观看 | 曰本又色又爽又黄三级视频 | 日本不卡高清免费 | 亚色影视 | 天天操网 |