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

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

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

3天內不再提示

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

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2019-11-12 10:24 ? 次閱讀

英創ARM9工控主板的數據采集功能通常采用板上的GPIO實現數字輸入輸出、通過精簡ISA總線擴展相應的外部控制電路(如控制繼電器或AD或DA實現模擬數據的輸入輸出等)。由于英創ARM9嵌入式主板采用WinCE操作系統,很多客戶都選擇了界面友好、開發便利的C#語言(使用Visual Studio 2005.NET集成開發環境);以往用戶在使用C#操作控制GPIO以及ISA總線的時候,是使用英創提供的動態鏈接庫,采用傳統的DllImport方法,首先在程序開始的地方來進行函數申明,然后才能在程序中進行調用;而這個動態鏈接庫里面函數的EntryPoint由于系統的原因,往往是一個古怪的名字,而且英創每次在進行動態鏈接庫的升級后,這個EntryPoint的名字就可能發生變化,這對用戶程序的可維護性帶來極大的不便。為了解決這個問題,英創公司現在提供了操作精簡ISA總線的COM組件接口;用戶只需要在目標平臺上進行組件注冊,然后在C#程序開發的時候,對該COM組件添加引用,即可在程序里面自由地通過對象操作來使用函數,而不必反復費心地進行函數申明的工作。下面我們就以EM9000嵌入式主板為實例,在C#使用COM組件接口操作精簡ISA總線作一個說明:

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

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

REGSVR32 EM9000_ISA_API_COM.dll

即可完成COM組件注冊。

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

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

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

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

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

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

using EM9000_ISA_API_COMLib;

程序中對于ISA總線的操作完全圍繞EM9000_ISA_COMClass和EM9000_ISA_EX_COM這兩個類來進行的。用戶可以根據自己對于ISA總線操作的需要來定義這兩個類的對象實體,然后通過對對象里面的方法(函數)來進行所需要的操作。EM9000_ISA_COMClass所定義的對象主要包括一些ISA總線擴展(包括PWM、WatchDog等)的方法,EM9000_ISA_EX_COM所定義的對象主要包括一些將接口定義為GPIO的操作(如IO輸入輸出)方法。下面大致做一些講解:

(1) 定義類的對象

EM9000_ISA_COMClass ISA_Port = new EM9000_ISA_COMClass(); // 定義一個EM9000_ISA_COMClass對象

EM9000_ISA_EX_COM GPIO_Port = new EM9000_ISA_EX_COM(); // 定義一個EM9000_ISA_EX_COM對象

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

英創提供了一個ISA COM組件的方法函數列表,里面詳細羅列了各種方法函數的使用。由于該COM組件是用C++來編寫的,所以,這個列表里面的函數形式是以C++的方式來標注的;由于C#和C++的相似性,所以大多數方法函數不需要在此提出特別注解,只需要針對幾個帶有C++指針參數的函數在此作一提示(舉例中所使用的類對象已經在上文中定義):

int COM_EM9000_PWMOUT( int ChIdx, float* pFreq, float* pDuty );

這個操作PWM輸出的函數,帶有兩個返回實際脈沖頻率和占空比的指針變量,在C#中,我們一般按照如下示例的方式來使用:

int ChIdx = 0;

float pFreq = 60.0f; //脈沖頻率60KHz

float pDuty = 70.0f; //占空比70%

int i1 = ISA_Port.COM_EM9000_PWMOUT(ChIdx, ref pFreq, ref pDuty);

注意pFreq和pDuty由C++的指針變成了兩個ref變量,它們將返回實際脈沖頻率和占空比值。

int COM_PIO_State( UINT16* pInValue );

這個讀取GPIO輸入狀態的函數,帶有一個返回輸入值的指針變量,我們是按照如下示例在進行使用:

ushort gpio_in_state = 0x0000; //這是一個返回IO輸入狀態的值,初始化可以任意設置一個值

i1 = GPIO_Port.COM_PIO_State(out gpio_in_state);

注意gpio_in_state由C++的指針變成了一個out變量,它將返回實際GPIO輸入狀態。

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

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

    關注

    7

    文章

    6085

    瀏覽量

    35419
收藏 人收藏

    評論

    相關推薦

    精簡ISA擴展總線接口讀寫操作

    精簡ISA總線中,設置了2條獨特的片選控制信號CS0#和CS1#,這樣就省去了大量的高位地址總線
    的頭像 發表于 10-17 11:26 ?5581次閱讀
    <b class='flag-5'>精簡</b><b class='flag-5'>ISA</b>擴展<b class='flag-5'>總線接口</b>讀寫<b class='flag-5'>操作</b>

    信息技術ARM9工控板在遠程監控領域的應用

    ARM9工控主板的數據采集功能通常采用板上的GPIO實現數字輸入輸出、通過精簡ISA總線擴展相應的AD或DA實現模擬數據的輸入輸出。在
    的頭像 發表于 11-12 10:04 ?1807次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>ARM9工控板在遠程監控領域的應用

    信息技術ISA總線的CE設備驅動程序介紹

     公司推出的系列ARM9工控主板是面向工業智能設備的高性價比ARM9+WinCE平臺,主板上不僅配置了常規的標準通訊接口,如以太、串口、USB、CAN通訊接口等,最有特色的還配置了
    的頭像 發表于 11-12 10:17 ?1609次閱讀

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

     ARM9工控主板的一個很大的特色就是提供了標準的CAN總線通訊接口,客戶可以方便地在工業現場、汽車、船舶等等領域進行CAN通信應用。由于
    的頭像 發表于 11-12 10:34 ?2461次閱讀
    <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介紹

    的WinCE驅動程序,支持應用程序通過WinCE相應的API函數來操作各路網絡接口。此外EM9360還與公司其他ARM9主板一樣,帶有精簡
    的頭像 發表于 11-14 09:34 ?2411次閱讀

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

    通訊的時候,往往是需要對RTS進行設置的。為了解決這個問題,公司現在提供了操作串口的COM組件接口
    的頭像 發表于 11-14 09:37 ?2355次閱讀
    <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>介紹

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

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

    信息技術ISA總線擴展定時器的應用介紹

    由于現在工控應用中,PWM應用相當的廣泛。為了滿足不同的應用要求,如PWM輸出、脈沖計數等,可以利用公司的ARM9工控主板的精簡ISA總線
    的頭像 發表于 01-14 14:34 ?1206次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>擴展定時器的應用介紹

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

    的驅動程序,用戶只需直接調用相應的接口函數即可實現。 在使用C#進行應用程序開發時,由于C#無法使用C++的靜態庫函數,對于一些流式驅動設備,比如I
    的頭像 發表于 01-15 11:29 ?1308次閱讀

    信息技術EM335x精簡ISA擴展總線地址總線介紹

    公司新近推出的工控主板EM335x支持精簡ISA擴展總線。由于主板管腳的限制,ISA
    的頭像 發表于 01-17 10:20 ?1383次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>EM335x<b class='flag-5'>精簡</b><b class='flag-5'>ISA</b>擴展<b class='flag-5'>總線</b>地址<b class='flag-5'>總線</b>介紹

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

    資源,提供了Java硬件支持包,主要支持的工控接口有:以太網、串口、CAN、GPIO、SPI、I2C、RTC等。本文主要介紹使用Java語言調用
    的頭像 發表于 02-06 11:06 ?1703次閱讀
    <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>簡介

    信息技術精簡ISA總線Linux編程–Part1

    實現高達10MB/s的數據傳輸。精簡ISA總線作為主板的特色功能之一,在ESM6802、ESM7000、ESM7100、ESM335x等
    的頭像 發表于 02-07 11:19 ?1182次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>精簡</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>Linux編程–Part1

    信息技術精簡ISA總線Linux編程 – Part2簡介

    10MB/s以上的數據傳輸。精簡ISA總線作為主板的特色功能之一,在ESM6802、ESM7000、ESM7100、ESM335x等多款
    的頭像 發表于 02-11 16:50 ?1329次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>精簡</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>Linux編程 – Part2簡介

    信息技術精簡ISA總線Linux編程 – Part3簡介

    10MB/s以上的數據傳輸。精簡ISA總線作為主板的特色功能之一,在ESM6802、ESM7000、ESM7100、ESM335x等多款
    的頭像 發表于 02-11 16:48 ?1416次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>精簡</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>Linux編程 – Part3簡介

    信息技術精簡ISA總線WinCE編程簡介

    ISA總線簡介 精簡ISA總線
    的頭像 發表于 02-11 16:55 ?1310次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>精簡</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>WinCE編程簡介
    主站蜘蛛池模板: 日日做夜夜做| 九九视频这里只有精品| 国产性videosgratis| 国产一区二区在线观看免费| 国产综合图区| 99久久免费精品视频| 夜夜夜精品视频免费| 天天撸视频| 狠狠插狠狠插| 国产免费啪啪| 精品久久久久国产免费| 伊人久久99| 自拍偷拍福利| 在线资源网| 免费又爽又黄的禁片1000部| 国产女人又爽又大| jzzjlzz亚洲乱熟在线播放| 欧美性色黄大片四虎影视| 在线观看视频免费| 69xxx欧美| 一级特级aaa毛片| 色婷婷精品| 久久99精品久久久久久久野外 | 亚洲精品国产自在久久出水| 美女扒开内裤让男人桶| 亚洲精品老司机综合影院| 在线精品一区二区三区| 色老头视频在线观看| 黄 色 片免费观看| 停停五月天| 性欧美高清极品xx| 99久久精品费精品国产一区二 | 性欧美久久| 噜色| 久久mimi色| 亚洲精品九色在线网站| 黄色午夜剧场| 九九re| 欧美在线高清视频| 免费看黄色一级毛片| www伊人|