国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

英創信息技術新CAN驅動接口調用方法及說明

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2020-02-05 10:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

用戶可從英創開發光盤中或聯系英創工程師獲得CAN例程源碼。參考例程使用英創已經封裝好的.h及.cpp庫文件可以使開發更方便。

注冊表設置項說明

CAN驅動設置參數位于注冊表[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CAN1]及[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CAN2]下

主要配置參數項:

TxTimeout:發送超時時間,單位ms。

BusErrorReport:錯誤幀上報標記,0:不上報,1:上報錯誤幀

設置程序可以連接英創工程師獲得。

CAN打開及關閉

打開關閉采用標準的流式設備驅動接口CreateFile及CloseHandle,設備名為”CAN1:”及”CAN2:”

調用示例如下:

//打開CAN1

HANDLE hCan;

hCan = CreateFile( L”CAN1:”, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

//關閉CAN

CloseHandle(hCan);

CAN波特率設置

參考CAN例程,對驅動的DeviceIoCon trol操作已封裝在SetBaud函數中。

BOOLSetBaud(HANDLE hCan, DWORD dwBaud)

參數hCan:CreateFile打開CAN返回的設備句柄

參數dwBaud:波特率,單位bps

返回值:TRUE 設置成功,FALSE 設置失敗

調用示例如下:

//設置波特率250bps CAN

SetBaud(m_hCan, 250000);

CAN過濾設置

調用方法

參考CAN例程,對驅動的DeviceIoCon trol操作已封裝在SetFilter函數中。

BOOLSetFilter(HANDLE hCan, PCAN_FILTER pFilter, DWORD num)

參數hCan:CreateFile打開CAN返回的設備句柄

參數pFilter:過濾器結構體數組指針

參數num:過濾器結構體數組長度,最大為4

返回值:TRUE 設置成功,FALSE 設置失敗

注:此函數如果重復調用,生效的為最后一次調用設置值。

CAN_FILTER過濾器結構體定義

typedefstruct_can_filter

{

CAN_ID can_id;

CAN_ID can_mask;

} CAN_FILTER, *PCAN_FILTER

過濾器由id和mask組成,設置的過濾器組數最大4個。CAN包能滿足其中一組過濾器以下條件才能接收

CAN包id & 過濾器mask = 過濾器id

即,2進制中,過濾MASK為1的對應位需和過濾ID值一致,示例表

調用示例如下

//設置一組寄存器

CAN_FILTER Filter[4];

memzero(Filter,sizeof(CAN_FILTER));

Filter[0].can_id.id = 5;

Filter[0].can_mask.id = 22;

SetFilter(m_hCan, Filter, 1);

CAN發送/接收

發送接收同樣采用標準的流式設備驅動接口ReadFile及WriteFile

調用方法

參考CAN例程,封裝好的函數定義。

intWriteCAN(HANDLE hCan, PCAN_FRAME pFrame, DWORD num){

DWORD dwLen;

if(!WriteFile( hCan, (char*)pFrame, num*sizeof(CAN_FRAME), &dwLen, 0 ))return0;

returndwLen/sizeof(CAN_FRAME);

}

intReadCAN(HANDLE hCan, PCAN_FRAME pFrame, DWORD num){

DWORD dwLen;

if(!ReadFile( hCan, (char*)pFrame, num*sizeof(CAN_FRAME), &dwLen, 0 ))return0;

returndwLen/sizeof(CAN_FRAME);

}

參數hCan:CreateFile打開CAN返回的設備句柄

參數pFrame:幀結構體數組指針

參數num:幀結構體數組長度,默認值1,可空

返回值:發送/接收的數據包個數

注:發送函數為阻塞函數,超時時間可以在注冊表中設置,默認1000ms。

發送失敗后,應用程序應當自行判斷是否需要重新發送。

接收函數應當單獨開一個接收線程,并配合WaitCANEvent函數使用,參考下一節。

CAN_FRAME數據幀結構體定義

typedefstruct{

unsignedintid:29;

unsignedinterror:1;

unsignedintremote:1;

unsignedintextended:1;

}CAN_ID;

typedefstruct_can_frame

{

CAN_ID can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */

BYTE can_dlc; /* frame payload length in byte (0 ..CAN_MAX_DLEN) */

BYTE data[CAN_MAX_DLEN];

} CAN_FRAME, *PCAN_FRAME;

調用示例如下:

DWORD dwNum;

//發送

CAN_FRAME Sendframe;

memzero(Sendframe,sizeof(CAN_FRAME));

Sendframe.can_id.id = 6;

m_Sendframe.data[0] = 0x01;

m_Sendframe.can_dlc = 1;

dwNum = WriteCAN(hCan, &Sendframe);

//接收

CAN_FRAME Revframe[MAX_ARRAY];

dwNum = ReadCAN(hCan, Revframe, MAX_ARRAY);

WaitCANEvent函數使用

如果輪詢方式接收CAN包,系統負荷會過高,采用事件方式事半功

WaitCANEvent為等待CAN接收事件的阻塞函數,通過返回值可以判斷是否有CAN數據接收。

BOOLWaitCANEvent( HANDLE hDevice, LPDWORD lpEvtMask, DWORD dwTimeout )

參數hDevice:CreateFile打開CAN返回的設備句柄

參數lpEvtMask:返回事件類型,新驅動目前恒為0

參數dwTimeout:超時時間

返回值:FALSE 等待超時,TRUE 有數據幀收到

接收線程調用示例

//主線程中開啟接收線程

m_hRecvThread = CreateThread(0, 0, RecvTread,this, 0, NULL);

//接收線程函數定義

DWORD Ctest_can_v2Dlg::RecvTread(LPVOID lparam)

{

Ctest_can_v2Dlg* pDlg = (Ctest_can_v2Dlg*)lparam;

DWORD dwEvtMask;

int num;

CAN_FRAME rbuf[MAX_ARRAY];

while(!pDlg->m_bThreadStop)

{

if(WaitCANEvent(pDlg->m_hCan, &dwEvtMask, 200))

{

if( dwEvtMask == 0 ) // 接收到數據包

{

num = ReadCAN(pDlg->m_hCan, rbuf, MAX_ARRAY);

while( num )

{

OnRecv(pDlg, rbuf, num); //調用回調函數處理數據

num = ReadCAN(pDlg->m_hCan, rbuf, MAX_ARRAY);

}

}

else //258

{

}

}

}

return0;

}

錯誤幀定義

當設置注冊表選項,允許接收錯誤幀后,CAN總線上的出錯信息將以幀的形式上報上來。

錯誤幀的幀結構體中,值為1,可通過該值判斷是接收到的數據幀還是驅動上報的錯誤幀。

if(Frame.can_id.error){

//錯誤幀

}

else{

//數據幀;

}

錯誤幀詳細定義,請參數手冊《CAN錯誤幀定義》。

精簡掉的接口

新CAN驅動能夠自動復位CAN總線,不需要再手動復位,所以之前ResetCAN,StartCAN,StopCAN精簡掉了。

SetCANLoop功能實用性不大,故精簡掉。

但是為了兼容老驅動,這些函數依然可以正常調用。

相關測試例程可以聯系英創工程師獲得。

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

    關注

    7

    文章

    6107

    瀏覽量

    37071
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    調用野莓平臺商品詳情API接口實踐

    ? ?在電商平臺的技術棧中,商品詳情信息的獲取是高頻且核心的操作。野莓平臺提供了穩定、高效的API接口供開發者查詢商品詳情數據。本文將詳細介紹如何調用野莓平臺的商品詳情API
    的頭像 發表于 02-04 16:42 ?522次閱讀
    <b class='flag-5'>調用</b>野莓平臺商品詳情API<b class='flag-5'>接口</b>實踐

    國產芯筑基,飛騰主板賦能信未來

    信息技術自主可控成為國家戰略的今天,信產業正從“政策驅動”邁向“市場驅動”的高質量發展新階段。作為信產業鏈的核心硬件基石,主板的國產化
    的頭像 發表于 12-30 09:49 ?198次閱讀
    國產芯筑基,飛騰主板賦能信<b class='flag-5'>創</b>未來

    龍芯中科成功舉辦2025信息技術應用創新產教融合交流會

    11月30日,在教育部教育管理信息中心、山東省電化教育館的支持和指導下,龍芯中科聯合浪潮集團、濟南幼兒師范高等??茖W校(以下簡稱“濟南幼高?!保?,成功舉辦信息技術應用創新產教融合交流會,并同步舉行信息技術應用創新實踐基地啟用儀式
    的頭像 發表于 12-08 14:53 ?776次閱讀

    龍芯中科助力2025教育信息技術應用創新大賽成功舉辦

    2025年11月13日-15日,由中國教育技術協會主辦、浙江大學與中國教育技術協會網絡安全專業委員會聯合承辦,中國電子工業標準化技術協會信息技術應用創新工作委員會、浙江高校信
    的頭像 發表于 11-21 16:23 ?784次閱讀

    誠邁科技信電腦助力2025第二屆教育信息技術應用創新大賽圓滿收官

    11月15日,由中國教育技術協會主辦、浙江大學與中國教育技術協會網絡安全專業委員會聯合承辦,中國電子工業標準化技術協會信息技術應用創新工作委員會、浙江高校信
    的頭像 發表于 11-17 17:58 ?671次閱讀
    誠邁科技信<b class='flag-5'>創</b>電腦助力2025第二屆教育<b class='flag-5'>信息技術</b>應用創新大賽圓滿收官

    Python調用API教程

    兩個不同系統之間的信息交互。在這篇文章中,我們將詳細介紹Python調用API的方法和技巧。 一、用Requests庫發送HTTP請求 使用Python調用API的第一步是發送HTTP
    的頭像 發表于 11-03 09:15 ?866次閱讀

    寶馬南京信息技術有限公司開業

    今日,寶馬(南京)信息技術有限公司在南京正式“掛牌運行”。這家華晨寶馬全資子公司由領悅數字信息技術有限公司南京分公司“迭代”而來,代表著一次里程碑式的“進化”。這次升級不僅加速了寶馬在華數字化轉型進程,更通過深化本土創新,為“未來智慧出行”的發展譜寫了核心“代碼”。
    的頭像 發表于 10-29 15:17 ?616次閱讀

    易華錄入選國家級信息技術應用創新典型解決方案

    近日,工業和信息化部網絡安全產業發展中心(工業和信息化部信息中心)公布了“2024年信息技術應用創新解決方案”評選結果。易華錄申報的“基于節能高效藍光的超級智能存儲解決方案”憑借顯著的
    的頭像 發表于 08-07 15:35 ?1613次閱讀

    信息技術應用產學協同人才培養行動計劃”正式發布,誠邁科技入選首批參與單位

    設在中國軟件評測中心。誠邁科技作為信技術先鋒企業,受邀成為首批參與單位,與國內頂尖高校、領軍企業和權威機構攜手,共同打造具有中國特色的信息技術人才培養新范式,為
    的頭像 發表于 08-06 17:29 ?1547次閱讀
    “<b class='flag-5'>信息技術</b>應用產學協同人才培養行動計劃”正式發布,誠邁科技入選首批參與單位

    佛瑞亞如何通過信息技術推動業務增長

    在數字化、信息化的浪潮下,信息技術已經不僅是后臺工具,更成為驅動企業發展的關鍵力量。本期Women Inspiring Mobility,我們采訪了佛瑞亞中國區信息技術總監馬瑛,了解她
    的頭像 發表于 07-29 14:00 ?900次閱讀

    飛騰主板為信產業發展提高硬實力

    信息技術飛速發展的當下,信產業已成為我國實現科技自立自強、保障國家信息安全的關鍵領域。信,即信息技術應用創新,其核心目標是實現
    的頭像 發表于 07-22 18:20 ?707次閱讀

    DEKRA德凱成為沙特通信和信息技術設備技術法規認證機構

    近日,DEKRA德凱成功獲得沙特標準、計量和質量組織(SASO)認可,正式成為沙特通信和信息技術設備技術法規(Technical Regulation for Communications
    的頭像 發表于 07-15 14:27 ?917次閱讀

    科普|信是什么?一文讀懂“信息技術應用創新”戰略

    什么是信?信,即“信息技術應用創新”,是國家推動IT系統自主可控、安全可控的重要戰略工程。它不僅是技術層面的創新,更承載著保障國家網絡安全、推動產業升級和實現數字主權的重任。簡單來
    的頭像 發表于 06-13 10:06 ?8199次閱讀
    科普|信<b class='flag-5'>創</b>是什么?一文讀懂“<b class='flag-5'>信息技術</b>應用創新”戰略

    2025第二屆教育信息技術應用創新大賽正式開賽

    為進一步落實建設網絡強國和教育強國的戰略部署,推動各級教育行政部門及高校信息技術應用創新能力提升,培養實戰型創新人才。龍芯中科聯合太初元碁、誠邁科技在2025第二屆教育信息技術應用創新大賽共同發布信息技術應用創新人工智能方向(賽
    的頭像 發表于 05-13 16:21 ?1435次閱讀

    上海雷卯提供1KV的CAN浪涌方案 CAN接口浪涌損壞測試

    CAN接口
    上海雷卯電子
    發布于 :2025年03月07日 19:13:43