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

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

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

英創(chuàng)信息技術(shù)SJA1000的CAN通訊接口函數(shù)介紹

英創(chuàng)信息技術(shù) ? 來(lái)源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-14 15:04 ? 次閱讀

英創(chuàng)ARM9系列嵌入式主板一大特色就是提供了CAN接口,并實(shí)現(xiàn)了相應(yīng)的驅(qū)動(dòng)程序,用戶只需直接調(diào)用CAN_API函數(shù)即可實(shí)現(xiàn)CAN數(shù)據(jù)報(bào)文的通訊操作。目前EM9000以及EM9X60系列板卡所提供的CAN接口均是采用的是SJA1000 CAN總線控制器,SJA1000是一款獨(dú)立的控制器,主要用于汽車和一般工業(yè)環(huán)境中的控制器局域網(wǎng)絡(luò)(CAN)芯片。CAN通訊接口可提供高達(dá)1Mbps的數(shù)據(jù)傳輸速率,當(dāng)采用5Kbps的的數(shù)據(jù)傳輸速率時(shí)其通訊距離最高可達(dá)到10KM。硬件的錯(cuò)誤檢定特性也增強(qiáng)了CAN的抗電磁干擾能力,這給數(shù)據(jù)的遠(yuǎn)程可靠傳輸提供了有利保證。

硬件上來(lái)說(shuō),英創(chuàng)提供的CAN通訊接口根據(jù)用戶的需要分為兩種:一種帶光電隔離,一種不帶光電隔離。帶光電隔離CAN總線通訊模塊的CAN收發(fā)器端的所有信號(hào)電源與其它部分完全隔離,可承受至少1Kv(有效值)的電壓沖擊。

軟件上英創(chuàng)出廠的帶有CAN通訊接口的ARM9板卡均帶有相應(yīng)的驅(qū)動(dòng),基于WinCE系統(tǒng)配置了標(biāo)準(zhǔn)的WinCE流式驅(qū)動(dòng)程序,基于Linux系統(tǒng)是將CAN接口配置為字符設(shè)備驅(qū)動(dòng)程序。CAN通訊的數(shù)據(jù)收發(fā)均采用的中斷方式,驅(qū)動(dòng)程序中已自動(dòng)完成了數(shù)據(jù)的收發(fā),以及內(nèi)部定義的CAN接收緩沖區(qū)和發(fā)送緩沖區(qū)的管理。

接收緩沖區(qū)

發(fā)送緩沖區(qū)

WinCE

64k

4k

Linux

64k

4k

為了方便用戶的使用,在CAN驅(qū)動(dòng)程序的基礎(chǔ)上為客戶封裝了一套簡(jiǎn)單實(shí)用的API函數(shù)。各個(gè)函數(shù)的定義在can_api.h文件下,在該頭文件中對(duì)于各個(gè)API函數(shù)均有相應(yīng)的中文說(shuō)明。本文將詳細(xì)介紹各個(gè)接口函數(shù)的使用。

1、CAN接口API函數(shù)定義
英創(chuàng)公司提供的CAN通訊接口的驅(qū)動(dòng)程序采用標(biāo)準(zhǔn)的驅(qū)動(dòng)程序,用戶可以用標(biāo)準(zhǔn)的打開(kāi)文件、關(guān)閉文件的方式,來(lái)打開(kāi)該CAN設(shè)備。相關(guān)的一些函數(shù)定義如下:

/*
* 功能描述:設(shè)置CAN控制芯片為操作模式。
* 輸入參數(shù)
* fd: CAN設(shè)備文件描述符
* 返回值:
* 0: 成功
* <0: 失敗
*/

int CAN_StartChip( int fd );

/*
* 功能描述:設(shè)置CAN控制芯片為復(fù)位模式。
* 輸入?yún)?shù):
* fd: CAN設(shè)備文件描述符
* 返回值:
* 0: 成功
* <0: 失敗
*/

int CAN_StopChip( int fd );

/*
* 功能描述:設(shè)置CAN通訊的波特率
* 輸入?yún)?shù):
* fd: CAN設(shè)備文件描述符
* Baud: 枚舉變量,分別對(duì)應(yīng)不同的波特率
* CAN_BAUDRATE_10K = 0: 10Kbps
* CAN_BAUDRATE_20K = 1: 20Kbps
* CAN_BAUDRATE_50K = 2: 50Kbps
* CAN_BAUDRATE_100K = 3: 100Kbps
* CAN_BAUDRATE_125K = 4: 125Kbps
* CAN_BAUDRATE_250K = 5: 250Kbps
* CAN_BAUDRATE_500K = 6: 500Kbps
* CAN_BAUDRATE_1000K = 7: 1Mbps
* CAN_BAUDRATE_60K = 8: 60Kbps
* 返回值:
* 0: 成功
* <0: 失敗
*/

int CAN_SetBaudRate( int fd , CAN_BAUDRATE Baud );

/*
* 功能描述:設(shè)置CAN通訊驗(yàn)收濾波器配置
* 輸入?yún)?shù):
* fd: CAN設(shè)備文件描述符
* *AcceptanceFilter: 驗(yàn)收濾波器結(jié)構(gòu)指針
* struct accept_filter
* {
* unsigned int accept_code;
* unsigned int accept_mask;
* unsigned char filter_mode;
* };
* accept_code: 濾波器接收碼
* accept_mask: 濾波器屏蔽碼
* filter_mode: 0-雙濾波器 1-單濾波器
*
* 返回值:
* 0: 成功
* <0: 失敗
*/

int CAN_SetGlobalAcceptanceFilter( int fd , accept_filter *AcceptanceFilter );

/*
* 功能描述:用于啟動(dòng)或關(guān)閉CAN自檢測(cè)模式
* 輸入?yún)?shù):
* fd: CAN設(shè)備文件描述符
* Mode: 1-啟動(dòng)自檢測(cè)模式
* 0-關(guān)閉自檢測(cè)模式,返回正常模式
* 返回值:
* 0: 成功
* <0: 失敗
*/

int CAN_SelfTest( int fd , int Mode );

/*
* 功能描述:獲取CAN通訊時(shí)的錯(cuò)誤編碼
* 輸入?yún)?shù):
* fd: CAN設(shè)備文件描述符
* 輸出參數(shù):
* *ErrorPtr:錯(cuò)誤編碼
* 返回值:
* 0: 成功
* <0: 失敗
*/

int CAN_GetError( int fd , DWORD *ErrorPtr);

/*
* 功能描述:獲取CAN通訊中相關(guān)統(tǒng)計(jì)數(shù)據(jù)以及CAN控制芯片的狀態(tài)寄存器
* 輸入?yún)?shù):
* fd: CAN設(shè)備文件描述符
* 輸出參數(shù):
* *DriverStatistics:得到相應(yīng)統(tǒng)計(jì)結(jié)構(gòu)數(shù)據(jù)
* 返回值:
* 0: 成功
* <0: 失敗
*/

int CAN_GetCANDriverStatistics( int fd , drv_statistics *DriverStatistics );

在can_api.h中還定義了一個(gè)CAN驅(qū)動(dòng)的統(tǒng)計(jì)數(shù)據(jù)結(jié)構(gòu)struct DRIVERSTATISTICS,這個(gè)結(jié)構(gòu)中記錄了CAN通訊的一些統(tǒng)計(jì)參數(shù),包括CAN中斷次數(shù),CAN數(shù)據(jù)幀發(fā)送成功統(tǒng)計(jì)次數(shù)等等。這些參數(shù)可通過(guò)API函數(shù)中CAN_GetCANDriverStatistics來(lái)獲取,這些參數(shù)可以作為分析CAN通訊的狀態(tài)的一個(gè)重要參考。以下為這些參數(shù)的定義。

typedef struct
{
DWORD NumISTEvents; // CAN中斷事件統(tǒng)計(jì)次數(shù)
DWORD NumRxDataFrameInt; // CAN數(shù)據(jù)幀接收中斷統(tǒng)計(jì)次數(shù)
DWORD NumRxDataFramePutRing; // CAN接收數(shù)據(jù)幀放入接收環(huán)形數(shù)據(jù)
// BUF的統(tǒng)計(jì)次數(shù)
DWORD NumTxDataFramePutRing; // CAN發(fā)送數(shù)據(jù)幀放入發(fā)送環(huán)形數(shù)據(jù)
// BUF的統(tǒng)計(jì)次數(shù)
DWORD NumTxDataFrameInt; // CAN數(shù)據(jù)幀發(fā)送中斷統(tǒng)計(jì)次數(shù)
DWORD NumTxSuccessful; // CAN數(shù)據(jù)幀發(fā)送成功統(tǒng)計(jì)次數(shù)
DWORD NumTxFailed; // CAN數(shù)據(jù)幀發(fā)送失敗統(tǒng)計(jì)次數(shù)
DWORD NumErrorWarningInt; // CAN通訊錯(cuò)誤報(bào)警中斷的統(tǒng)計(jì)次數(shù)
DWORD NumErrorWarningLevel; // CAN通訊出錯(cuò)的統(tǒng)計(jì)次數(shù),錯(cuò)誤指至
// 少一個(gè)錯(cuò)誤計(jì)數(shù)器滿或由錯(cuò)誤報(bào)警限
// 制寄存器(EWLR)定義的CPU報(bào)警
// 限制

DWORD NumErrorPassive; // CAN通訊中錯(cuò)誤消極中斷的統(tǒng)計(jì)次數(shù)
DWORD NumErrorBusOff; // CAN通訊錯(cuò)誤中總線關(guān)閉錯(cuò)誤的統(tǒng)計(jì)次數(shù)
DWORD NumSwitchedToNormalOperation; // CAN通訊中錯(cuò)誤狀態(tài)切換到正常
// 狀態(tài)(總線開(kāi)啟)的統(tǒng)計(jì)次數(shù)
DWORD NumOverrunInt; // CAN通訊中數(shù)據(jù)溢出中斷的統(tǒng)計(jì)次數(shù)
DWORD NumBusErrorInt; // CAN通訊中數(shù)據(jù)BUSOFF錯(cuò)誤中斷的統(tǒng)計(jì)次數(shù)
DWORD NumArbitrationLostInt; // CAN通訊中仲裁丟失中斷的統(tǒng)計(jì)次數(shù)
DWORD MaxNumMsgsInRing; // CAN通訊中接收數(shù)據(jù)幀的數(shù)目
DWORD RXErrorCounter; // 讀取CAN通訊芯片中RX錯(cuò)誤計(jì)數(shù)器的值
DWORD TXErrorCounter; // 讀取CAN通訊芯片中TX錯(cuò)誤計(jì)數(shù)器的值
DWORD Status; // 讀取CAN通訊芯片中狀態(tài)寄存器的值
}DRIVERSTATISTICS;

2、CAN數(shù)據(jù)的接收和發(fā)送
在WinCE下,作為流式接口函數(shù)通常和文件系統(tǒng)的API函數(shù)(如CreateFile)緊密匹配的,因此在使用英創(chuàng)提供的CAN接口的API函數(shù)時(shí),首先需要調(diào)用CreateFile(…)來(lái)獲取CAN接口設(shè)備的句柄handle,如使用CAN1通訊口,可以調(diào)用以下函數(shù):
m_hCAN=CreateFile(_T(“CAN1:”), GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

在Linux下,調(diào)用的方式如下:

m_fd=open('/dev/em9x60_can1',O_RDWR | O_NOBLOCK );

在創(chuàng)建CAN設(shè)備得到有效的handle之后,就可以調(diào)用can_api.h中定義的相應(yīng)函數(shù)來(lái)啟動(dòng)CAN設(shè)備接口。

BOOL CAN_StartChip (HANDLE hDevice);

在進(jìn)行CAN數(shù)據(jù)通訊之前,需要設(shè)置和CAN通訊相關(guān)的一些參數(shù),包括CAN通訊的波特率設(shè)置以及對(duì)接收過(guò)濾器的設(shè)置。

BOOL CAN_SetBaudRate(HANDLE hDevice, BYTE *index);

用于設(shè)置CAN通訊的波特率,波特率的設(shè)置范圍包括:10kbps~1Mbps。具體的定義請(qǐng)參見(jiàn)can_api.h文件中的注釋說(shuō)明。

通過(guò)配置接收過(guò)濾器,CAN通訊接口可以實(shí)現(xiàn)只接收標(biāo)識(shí)符也接收過(guò)濾器預(yù)設(shè)值相一致的報(bào)文。接收過(guò)濾器由接收碼寄存器ACRn和接收屏蔽碼寄存器AMRn來(lái)定義的,還可以選擇兩種不同的過(guò)濾器模式,單過(guò)濾器模式或者雙過(guò)濾器模式。關(guān)于ACR、AMR中各位的定義,請(qǐng)參見(jiàn)SJA1000的數(shù)據(jù)手冊(cè),這里就不再贅述。在英創(chuàng)提供的API函數(shù)中,用戶可以調(diào)用以下函數(shù)來(lái)實(shí)現(xiàn)接收過(guò)濾器的設(shè)置:
BOOL CAN_SetGlobalAcceptanceFilter( HANDLE hDevice, BYTE *AcceptanceFilter, BYTE size)

對(duì)于CAN通訊數(shù)據(jù)接收線程可以采用兩種方式:一種可以采用定時(shí)查詢,即定時(shí)調(diào)用函數(shù)CAN_GetNextReceivedFrame( …)檢測(cè)是否有接收到CAN報(bào)文數(shù)據(jù);一種可以利用操作系統(tǒng)的消息機(jī)制,采用事件響應(yīng)的方式,一旦硬件接收的數(shù)據(jù)報(bào)文,底層的驅(qū)動(dòng)接收程序會(huì)自動(dòng)讀取報(bào)文,同時(shí)發(fā)送一個(gè)接收事件。作為應(yīng)用程序的接收線程在等待到該事件后,調(diào)用CAN_GetNextReceivedFrame(…)即可進(jìn)行CAN數(shù)據(jù)報(bào)文的讀取。需要注意的是函數(shù)CAN_GetNextReceivedFrame每執(zhí)行一次,只是讀取了一幀CAN數(shù)據(jù)報(bào)文,如果在應(yīng)用程序中需要將最新的數(shù)據(jù)全部讀出,只需反復(fù)調(diào)用該函數(shù),直到該函數(shù)的返回值為FALSE。

接收線程部分代碼:

DWORD CEM9000_CAN::ReadThreadFunc( LPVOID lparam )
{
CEM9000_CAN *ceCAN = (CEM9000_CAN*)lparam;
BOOL bResult;
while( 1 )
{
if(WaitForSingleObject(ceCAN->m_hReadCloseEvent,0 )==WAIT_OBJECT_0 )
{
break;
}
// 等待接收事件觸發(fā),使用以下代碼
WaitForSingleObject( ceCAN->m_hRxEvent, INFINITE );
// 若采用定時(shí)查詢,則調(diào)用Sleep(..)即可,Sleep的時(shí)間由應(yīng)用程序確定
// Sleep( 50 );


ceCAN->m_nRxCounter = 0;
for( ; ; )
{
// 讀取已接收的所有數(shù)據(jù)幀
bResult=CAN_GetNextReceivedFrame(ceCAN->m_hCAN,&ceCAN->RxMFrame[ceCAN->m_nRxCounter] );
if( !bResult )
{
break;
}
ceCAN->m_nRxCounter++;
}
if(ceCAN->m_nRxCounter>0 )
{
// 調(diào)用回調(diào)函數(shù),進(jìn)行必要的數(shù)據(jù)處理
ceCAN->OnRead( ceCAN->m_pCANOwner );
}
}
return 0;
}

CAN數(shù)據(jù)報(bào)文的發(fā)送比較簡(jiǎn)單,應(yīng)用程序直接調(diào)用函數(shù)CAN_SendFrame(…)即可,該函數(shù)的功能只是將需要發(fā)送的數(shù)據(jù)填入驅(qū)動(dòng)的發(fā)送數(shù)據(jù)緩沖區(qū),真正的數(shù)據(jù)發(fā)送是由驅(qū)動(dòng)程序中的發(fā)送線程自動(dòng)完成的。若用戶需要查看數(shù)據(jù)是否發(fā)送成功,可以通過(guò)檢查驅(qū)動(dòng)的相關(guān)統(tǒng)計(jì)數(shù)據(jù)DriversStatistics來(lái)判斷,其中NumTxSuccessful為CAN數(shù)據(jù)幀成功發(fā)送統(tǒng)計(jì)數(shù),每成功發(fā)送一次CAN數(shù)據(jù)幀,該計(jì)數(shù)值自動(dòng)加1。

3、CAN通訊的出錯(cuò)處理
在can_api.h文件對(duì)于CAN通訊所返回的錯(cuò)誤代碼分別定義如下:

錯(cuò)誤代碼

定義

CANCONTROLLER_NORMAL 表明CAN通訊工作正常
CANCONTROLLER_WARNING_LIMIT_REACHED 表明出錯(cuò),至少接收或發(fā)送錯(cuò)誤計(jì)數(shù)器中的一個(gè)已達(dá)到或超過(guò)了由錯(cuò)誤報(bào)警寄存器(EWLR)定義的報(bào)警限,缺省為96
CANCONTROLLER_ERROR_PASSIVE 表明SJA1000達(dá)到錯(cuò)誤消極狀態(tài),也就是說(shuō)至少一個(gè)錯(cuò)誤計(jì)數(shù)器超過(guò)規(guī)定值127
CANCONTROLLER_BUS_OFF 表明該接口脫離總線
CANCONTROLLER_OVERRUN 數(shù)據(jù)溢出錯(cuò)誤
RING_BUFFER_FULL 表明接收或發(fā)送緩沖區(qū)滿

錯(cuò)誤代碼可通過(guò)API函數(shù)CAN_GetError(HANDLE hDevice, DWORD *ErrorPtr)來(lái)獲取。一般來(lái)說(shuō)出現(xiàn)前面兩個(gè)錯(cuò)誤:CANCONTROLLER_WARNING_LIMIT_REACHED和CANCONTROLLER_ERROR_PASSIVE,CAN通訊口還可恢復(fù),一旦CAN接口成功接收或發(fā)送一幀數(shù)據(jù),CAN接口又可回到正常工作狀態(tài)。而對(duì)于出現(xiàn)其余的三項(xiàng)錯(cuò)誤,我們建議在應(yīng)用程序最好是做復(fù)位CAN接口的操作,即通過(guò)函數(shù)調(diào)用先關(guān)閉CAN口然后再重新初始化該接口。

在英創(chuàng)公司提供的應(yīng)用光盤中有具體CAN接口的測(cè)試代碼,可供客戶參考測(cè)試。


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

    關(guān)注

    87

    文章

    11207

    瀏覽量

    208717
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6084

    瀏覽量

    35154
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    中科創(chuàng)達(dá)榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達(dá)憑借非凡的技術(shù)實(shí)力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競(jìng)爭(zhēng)力百?gòu)?qiáng)企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?326次閱讀

    CAN/CANFD卡接口函數(shù)使用說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《CAN/CANFD卡接口函數(shù)使用說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 10-15 17:35 ?0次下載

    EN?Power?Bus二總線接口轉(zhuǎn)接485方案芯片-485接口芯片

    EN20F18 是采用低壓直流供電總線通訊技術(shù)設(shè)計(jì)的一款通訊接口芯片,是銳恩EN Power Bus二總線
    發(fā)表于 09-29 16:04

    創(chuàng)國(guó)產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)的簡(jiǎn)稱,于2016年“信創(chuàng)工委會(huì)”(信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì))提出,目的就是要推動(dòng)我們國(guó)內(nèi)軟硬件關(guān)鍵技術(shù)的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?275次閱讀

    梯度科技入選2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案名單

    日前,工業(yè)和信息化部網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展中心(工業(yè)和信息化部信息中心)在天津舉辦2024信息技術(shù)應(yīng)用創(chuàng)新發(fā)展大會(huì)暨解決方案應(yīng)用推廣大會(huì)。會(huì)上正式公布了2023年
    的頭像 發(fā)表于 09-09 16:29 ?366次閱讀

    業(yè)內(nèi)超高性價(jià)比CAN BUS通訊接口靜電防護(hù)器件SENC23T24V2BC

    業(yè)內(nèi)超高性價(jià)比CAN BUS通訊接口靜電防護(hù)器件SENC23T24V2BC CAN接口在工業(yè)自動(dòng)化領(lǐng)域應(yīng)用十分廣泛,為了防止靜電放電事件對(duì)端
    的頭像 發(fā)表于 08-21 15:36 ?325次閱讀
    業(yè)內(nèi)超高性價(jià)比<b class='flag-5'>CAN</b> BUS<b class='flag-5'>通訊</b><b class='flag-5'>接口</b>靜電防護(hù)器件SENC23T24V2BC

    芯力特車規(guī)TVS產(chǎn)品助力CAN/LIN通訊接口保護(hù)

    芯力特深耕車規(guī)CAN/LIN通訊接口芯片,在大量的客戶項(xiàng)目應(yīng)用中深入了解客戶需求后,推出了汽車級(jí)TVS防護(hù)器件,助力車規(guī)CAN/LIN通訊
    的頭像 發(fā)表于 07-02 08:07 ?375次閱讀
    芯力特車規(guī)TVS產(chǎn)品助力<b class='flag-5'>CAN</b>/LIN<b class='flag-5'>通訊</b><b class='flag-5'>接口</b>保護(hù)

    BIG WALNUT大核桃全面響應(yīng)國(guó)家“信創(chuàng)”號(hào)召,傾力“智”造國(guó)產(chǎn)芯片+國(guó)產(chǎn)加密安全系統(tǒng)通訊產(chǎn)品

    信息化高速發(fā)展的今天,信息技術(shù)的自主可控和信息安全已經(jīng)成為國(guó)家發(fā)展的重要基石。國(guó)家信創(chuàng)戰(zhàn)略的提出,旨在推動(dòng)國(guó)產(chǎn)信息產(chǎn)業(yè)的崛起,實(shí)現(xiàn)
    的頭像 發(fā)表于 06-18 17:42 ?469次閱讀

    如何檢測(cè)can通訊電路的好壞

    CAN(Controller Area Network)是一種基于總線通信的局域網(wǎng)技術(shù),廣泛應(yīng)用于汽車電子、工業(yè)控制等領(lǐng)域。在實(shí)際應(yīng)用中,CAN通訊電路的好壞對(duì)整個(gè)系統(tǒng)的穩(wěn)定性和可靠性
    的頭像 發(fā)表于 06-16 09:42 ?2106次閱讀

    STM32 HAL執(zhí)行到HAL_CAN_Receive_IT函數(shù)時(shí),導(dǎo)致can接收的標(biāo)志位不清空can通訊直接掛的原因?

    最近使用HAL遇到一個(gè)BUG 當(dāng)執(zhí)行到HAL_CAN_Receive_IT函數(shù)錯(cuò)誤時(shí),產(chǎn)生一個(gè)問(wèn)題導(dǎo)致can接收的標(biāo)志位不清空,導(dǎo)致can通訊
    發(fā)表于 04-24 06:32

    CANoe總線接口硬件VN1640A實(shí)物展示與功能介紹#汽車CAN總線?

    總線接口CAN總線接口
    北匯信息POLELINK
    發(fā)布于 :2024年04月11日 10:50:36

    兩片STM32的CAN接口,可以直接用TX與RX引腳連接正常通訊嗎?

    兩片 STM32的CAN接口,可以直接用TX與RX引腳連接(不接CAN收發(fā)器芯片)正常通訊
    發(fā)表于 04-01 07:38

    龍芯中科三項(xiàng)信創(chuàng)方案入圍工信部2023年信息技術(shù)應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    近日,工業(yè)和信息化部通報(bào)了2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案征集遴選結(jié)果,本次共評(píng)選出典型解決方案173個(gè)、應(yīng)用示范案例83個(gè)、單項(xiàng)創(chuàng)新案例64個(gè)。
    的頭像 發(fā)表于 03-07 16:45 ?834次閱讀
    龍芯中科三項(xiàng)信<b class='flag-5'>創(chuàng)</b>方案入圍工信部2023年<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    XMC4500 CAN通訊能發(fā)不能接收是怎么回事?

    剛開(kāi)始結(jié)束英飛凌的片子,需要用到CAN通訊,使用的是keil。在程序中,XMC_CAN_MO_Transmit可以發(fā)送數(shù)據(jù),使用CAN-USB模塊能在電腦端查看到。用另一塊班子給它發(fā)
    發(fā)表于 02-06 06:31

    闡述量子信息技術(shù)的研究現(xiàn)狀與未來(lái)

    20世紀(jì) 80 年代, 科學(xué)家將量子力學(xué)應(yīng)用到信息領(lǐng)域, 從而誕生了量子信息技術(shù), 諸如量子計(jì)算機(jī)、量子密碼、量子傳感等. 這些技術(shù)的運(yùn)行規(guī)律遵從量子力學(xué), 因此不僅其原理是量子力學(xué), 器件本身也
    發(fā)表于 11-22 11:40 ?767次閱讀
    闡述量子<b class='flag-5'>信息技術(shù)</b>的研究現(xiàn)狀與未來(lái)