91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)新CAN驅(qū)動(dòng)接口調(diào)用方法及說明

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

掃碼添加小助手

加入工程師交流群

用戶可從英創(chuàng)開發(fā)光盤中或聯(lián)系英創(chuàng)工程師獲得CAN例程源碼。參考例程使用英創(chuàng)已經(jīng)封裝好的.h及.cpp庫文件可以使開發(fā)更方便。

注冊表設(shè)置項(xiàng)說明

CAN驅(qū)動(dòng)設(shè)置參數(shù)位于注冊表[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CAN1]及[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CAN2]下

主要配置參數(shù)項(xiàng):

TxTimeout:發(fā)送超時(shí)時(shí)間,單位ms。

BusErrorReport:錯(cuò)誤幀上報(bào)標(biāo)記,0:不上報(bào),1:上報(bào)錯(cuò)誤幀

設(shè)置程序可以連接英創(chuàng)工程師獲得。

CAN打開及關(guān)閉

打開關(guān)閉采用標(biāo)準(zhǔn)的流式設(shè)備驅(qū)動(dòng)接口CreateFile及CloseHandle,設(shè)備名為”CAN1:”及”CAN2:”

調(diào)用示例如下:

//打開CAN1

HANDLE hCan;

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

//關(guān)閉CAN

CloseHandle(hCan);

CAN波特率設(shè)置

參考CAN例程,對驅(qū)動(dòng)的DeviceIoCon trol操作已封裝在SetBaud函數(shù)中。

BOOLSetBaud(HANDLE hCan, DWORD dwBaud)

參數(shù)hCan:CreateFile打開CAN返回的設(shè)備句柄

參數(shù)dwBaud:波特率,單位bps

返回值:TRUE 設(shè)置成功,F(xiàn)ALSE 設(shè)置失敗

調(diào)用示例如下:

//設(shè)置波特率250bps CAN

SetBaud(m_hCan, 250000);

CAN過濾設(shè)置

調(diào)用方法

參考CAN例程,對驅(qū)動(dòng)的DeviceIoCon trol操作已封裝在SetFilter函數(shù)中。

BOOLSetFilter(HANDLE hCan, PCAN_FILTER pFilter, DWORD num)

參數(shù)hCan:CreateFile打開CAN返回的設(shè)備句柄

參數(shù)pFilter:過濾器結(jié)構(gòu)體數(shù)組指針

參數(shù)num:過濾器結(jié)構(gòu)體數(shù)組長度,最大為4

返回值:TRUE 設(shè)置成功,F(xiàn)ALSE 設(shè)置失敗

注:此函數(shù)如果重復(fù)調(diào)用,生效的為最后一次調(diào)用設(shè)置值。

CAN_FILTER過濾器結(jié)構(gòu)體定義

typedefstruct_can_filter

{

CAN_ID can_id;

CAN_ID can_mask;

} CAN_FILTER, *PCAN_FILTER

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

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

即,2進(jìn)制中,過濾MASK為1的對應(yīng)位需和過濾ID值一致,示例表

調(diào)用示例如下

//設(shè)置一組寄存器

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發(fā)送/接收

發(fā)送接收同樣采用標(biāo)準(zhǔn)的流式設(shè)備驅(qū)動(dòng)接口ReadFile及WriteFile

調(diào)用方法

參考CAN例程,封裝好的函數(shù)定義。

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);

}

參數(shù)hCan:CreateFile打開CAN返回的設(shè)備句柄

參數(shù)pFrame:幀結(jié)構(gòu)體數(shù)組指針

參數(shù)num:幀結(jié)構(gòu)體數(shù)組長度,默認(rèn)值1,可空

返回值:發(fā)送/接收的數(shù)據(jù)包個(gè)數(shù)

注:發(fā)送函數(shù)為阻塞函數(shù),超時(shí)時(shí)間可以在注冊表中設(shè)置,默認(rèn)1000ms。

發(fā)送失敗后,應(yīng)用程序應(yīng)當(dāng)自行判斷是否需要重新發(fā)送。

接收函數(shù)應(yīng)當(dāng)單獨(dú)開一個(gè)接收線程,并配合WaitCANEvent函數(shù)使用,參考下一節(jié)。

CAN_FRAME數(shù)據(jù)幀結(jié)構(gòu)體定義

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;

調(diào)用示例如下:

DWORD dwNum;

//發(fā)送

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函數(shù)使用

如果輪詢方式接收CAN包,系統(tǒng)負(fù)荷會(huì)過高,采用事件方式事半功

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

BOOLWaitCANEvent( HANDLE hDevice, LPDWORD lpEvtMask, DWORD dwTimeout )

參數(shù)hDevice:CreateFile打開CAN返回的設(shè)備句柄

參數(shù)lpEvtMask:返回事件類型,新驅(qū)動(dòng)目前恒為0

參數(shù)dwTimeout:超時(shí)時(shí)間

返回值:FALSE 等待超時(shí),TRUE 有數(shù)據(jù)幀收到

接收線程調(diào)用示例

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

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

//接收線程函數(shù)定義

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 ) // 接收到數(shù)據(jù)包

{

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

while( num )

{

OnRecv(pDlg, rbuf, num); //調(diào)用回調(diào)函數(shù)處理數(shù)據(jù)

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

}

}

else //258

{

}

}

}

return0;

}

錯(cuò)誤幀定義

當(dāng)設(shè)置注冊表選項(xiàng),允許接收錯(cuò)誤幀后,CAN總線上的出錯(cuò)信息將以幀的形式上報(bào)上來。

錯(cuò)誤幀的幀結(jié)構(gòu)體中,值為1,可通過該值判斷是接收到的數(shù)據(jù)幀還是驅(qū)動(dòng)上報(bào)的錯(cuò)誤幀。

if(Frame.can_id.error){

//錯(cuò)誤幀

}

else{

//數(shù)據(jù)幀;

}

錯(cuò)誤幀詳細(xì)定義,請參數(shù)手冊《CAN錯(cuò)誤幀定義》。

精簡掉的接口

新CAN驅(qū)動(dòng)能夠自動(dòng)復(fù)位CAN總線,不需要再手動(dòng)復(fù)位,所以之前ResetCAN,StartCAN,StopCAN精簡掉了。

SetCANLoop功能實(shí)用性不大,故精簡掉。

但是為了兼容老驅(qū)動(dòng),這些函數(shù)依然可以正常調(diào)用。

相關(guān)測試?yán)炭梢月?lián)系英創(chuàng)工程師獲得。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6107

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    調(diào)用野莓平臺商品詳情API接口實(shí)踐

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

    國產(chǎn)芯筑基,飛騰主板賦能信創(chuàng)未來

    信息技術(shù)自主可控成為國家戰(zhàn)略的今天,信創(chuàng)產(chǎn)業(yè)正從“政策驅(qū)動(dòng)”邁向“市場驅(qū)動(dòng)”的高質(zhì)量發(fā)展新階段。作為信創(chuàng)產(chǎn)業(yè)鏈的核心硬件基石,主板的國產(chǎn)化
    的頭像 發(fā)表于 12-30 09:49 ?208次閱讀
    國產(chǎn)芯筑基,飛騰主板賦能信<b class='flag-5'>創(chuàng)</b>未來

    龍芯中科成功舉辦2025信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)教融合交流會(huì)

    11月30日,在教育部教育管理信息中心、山東省電化教育館的支持和指導(dǎo)下,龍芯中科聯(lián)合浪潮集團(tuán)、濟(jì)南幼兒師范高等專科學(xué)校(以下簡稱“濟(jì)南幼高?!保?,成功舉辦信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)教融合交流會(huì),并同步舉行信息技術(shù)應(yīng)用創(chuàng)新實(shí)踐基地啟用儀式
    的頭像 發(fā)表于 12-08 14:53 ?786次閱讀

    龍芯中科助力2025教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    2025年11月13日-15日,由中國教育技術(shù)協(xié)會(huì)主辦、浙江大學(xué)與中國教育技術(shù)協(xié)會(huì)網(wǎng)絡(luò)安全專業(yè)委員會(huì)聯(lián)合承辦,中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)、浙江高校信
    的頭像 發(fā)表于 11-21 16:23 ?793次閱讀

    誠邁科技信創(chuàng)電腦助力2025第二屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿收官

    11月15日,由中國教育技術(shù)協(xié)會(huì)主辦、浙江大學(xué)與中國教育技術(shù)協(xié)會(huì)網(wǎng)絡(luò)安全專業(yè)委員會(huì)聯(lián)合承辦,中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)、浙江高校信
    的頭像 發(fā)表于 11-17 17:58 ?679次閱讀
    誠邁科技信<b class='flag-5'>創(chuàng)</b>電腦助力2025第二屆教育<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新大賽圓滿收官

    Python調(diào)用API教程

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

    寶馬南京信息技術(shù)有限公司開業(yè)

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

    軟通動(dòng)力入選2025新一代信息技術(shù)應(yīng)用優(yōu)秀案例

    近日,DBC德本咨詢正式發(fā)布“2025新一代信息技術(shù)應(yīng)用優(yōu)秀案例”榜單,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司攜手廣西星網(wǎng)智云科技有限公司,為廣西玉柴機(jī)器集團(tuán)有限公司打造的“玉柴數(shù)智化審計(jì)業(yè)務(wù)場景項(xiàng)目”成功入選,位列榜單第二名,充分彰顯了軟通動(dòng)力在企業(yè)數(shù)智化轉(zhuǎn)型領(lǐng)域的深厚
    的頭像 發(fā)表于 09-28 17:48 ?1398次閱讀

    易華錄入選國家級信息技術(shù)應(yīng)用創(chuàng)新典型解決方案

    近日,工業(yè)和信息化部網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展中心(工業(yè)和信息化部信息中心)公布了“2024年信息技術(shù)應(yīng)用創(chuàng)新解決方案”評選結(jié)果。易華錄申報(bào)的“基于節(jié)能高效藍(lán)光的超級智能存儲解決方案”憑借顯著的
    的頭像 發(fā)表于 08-07 15:35 ?1622次閱讀

    信息技術(shù)應(yīng)用產(chǎn)學(xué)協(xié)同人才培養(yǎng)行動(dòng)計(jì)劃”正式發(fā)布,誠邁科技入選首批參與單位

    設(shè)在中國軟件評測中心。誠邁科技作為信創(chuàng)技術(shù)先鋒企業(yè),受邀成為首批參與單位,與國內(nèi)頂尖高校、領(lǐng)軍企業(yè)和權(quán)威機(jī)構(gòu)攜手,共同打造具有中國特色的信息技術(shù)人才培養(yǎng)新范式,為
    的頭像 發(fā)表于 08-06 17:29 ?1559次閱讀
    “<b class='flag-5'>信息技術(shù)</b>應(yīng)用產(chǎn)學(xué)協(xié)同人才培養(yǎng)行動(dòng)計(jì)劃”正式發(fā)布,誠邁科技入選首批參與單位

    佛瑞亞如何通過信息技術(shù)推動(dòng)業(yè)務(wù)增長

    在數(shù)字化、信息化的浪潮下,信息技術(shù)已經(jīng)不僅是后臺工具,更成為驅(qū)動(dòng)企業(yè)發(fā)展的關(guān)鍵力量。本期Women Inspiring Mobility,我們采訪了佛瑞亞中國區(qū)信息技術(shù)總監(jiān)馬瑛,了解她
    的頭像 發(fā)表于 07-29 14:00 ?911次閱讀

    飛騰主板為信創(chuàng)產(chǎn)業(yè)發(fā)展提高硬實(shí)力

    信息技術(shù)飛速發(fā)展的當(dāng)下,信創(chuàng)產(chǎn)業(yè)已成為我國實(shí)現(xiàn)科技自立自強(qiáng)、保障國家信息安全的關(guān)鍵領(lǐng)域。信創(chuàng),即信息技術(shù)應(yīng)用創(chuàng)新,其核心目標(biāo)是實(shí)現(xiàn)
    的頭像 發(fā)表于 07-22 18:20 ?714次閱讀

    DEKRA德凱成為沙特通信和信息技術(shù)設(shè)備技術(shù)法規(guī)認(rèn)證機(jī)構(gòu)

    近日,DEKRA德凱成功獲得沙特標(biāo)準(zhǔn)、計(jì)量和質(zhì)量組織(SASO)認(rèn)可,正式成為沙特通信和信息技術(shù)設(shè)備技術(shù)法規(guī)(Technical Regulation for Communications
    的頭像 發(fā)表于 07-15 14:27 ?925次閱讀

    科普|信創(chuàng)是什么?一文讀懂“信息技術(shù)應(yīng)用創(chuàng)新”戰(zhàn)略

    什么是信創(chuàng)?信創(chuàng),即“信息技術(shù)應(yīng)用創(chuàng)新”,是國家推動(dòng)IT系統(tǒng)自主可控、安全可控的重要戰(zhàn)略工程。它不僅是技術(shù)層面的創(chuàng)新,更承載著保障國家網(wǎng)絡(luò)安全、推動(dòng)產(chǎn)業(yè)升級和實(shí)現(xiàn)數(shù)字主權(quán)的重任。簡單來
    的頭像 發(fā)表于 06-13 10:06 ?8347次閱讀
    科普|信<b class='flag-5'>創(chuàng)</b>是什么?一文讀懂“<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新”戰(zhàn)略

    2025第二屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽正式開賽

    為進(jìn)一步落實(shí)建設(shè)網(wǎng)絡(luò)強(qiáng)國和教育強(qiáng)國的戰(zhàn)略部署,推動(dòng)各級教育行政部門及高校信息技術(shù)應(yīng)用創(chuàng)新能力提升,培養(yǎng)實(shí)戰(zhàn)型創(chuàng)新人才。龍芯中科聯(lián)合太初元碁、誠邁科技在2025第二屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽共同發(fā)布信息技術(shù)應(yīng)用創(chuàng)新人工智能方向(賽
    的頭像 發(fā)表于 05-13 16:21 ?1443次閱讀