日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]CAN通信是STM32中比較復(fù)雜的東西之一,它的初始化主要分為兩個部分,一個是CAN的初始化,一個是過濾器的初始化。自發(fā)自收只需要一個器件,CAN的模式選擇回環(huán)(Loopback)模式,這種模式下發(fā)出的數(shù)據(jù)也會被CAN本身接收回

CAN通信是STM32中比較復(fù)雜的東西之一,它的初始化主要分為兩個部分,一個是CAN的初始化,一個是過濾器的初始化。自發(fā)自收只需要一個器件,CAN的模式選擇回環(huán)(Loopback)模式,這種模式下發(fā)出的數(shù)據(jù)也會被CAN本身接收回來,只需要檢查接收到的數(shù)據(jù)和發(fā)送的數(shù)據(jù)是否一樣,就能測試發(fā)送是否成功。

代碼:

void CAN_Config(void)

{

CAN_InitTypeDef CAN_InitStructure;

CAN_FilterInitTypeDef CAN_FilterInitStructure;


RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1,ENABLE);

CAN_DeInit(CAN1);

CAN_StructInit(&CAN_InitStructure);


CAN_InitStructure.CAN_TTCM = DISABLE;

CAN_InitStructure.CAN_ABOM = DISABLE;

CAN_InitStructure.CAN_AWUM = DISABLE;

CAN_InitStructure.CAN_NART = DISABLE;

CAN_InitStructure.CAN_RFLM = DISABLE;

CAN_InitStructure.CAN_TXFP = DISABLE;

CAN_InitStructure.CAN_Mode=CAN_Mode_LoopBack;//回環(huán)模式

CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;//1

CAN_InitStructure.CAN_BS1=CAN_BS1_9tq;//9

CAN_InitStructure.CAN_BS2=CAN_BS2_8tq;//8

CAN_InitStructure.CAN_Prescaler=16;//16分頻

CAN_Init(CAN1,&CAN_InitStructure);


CAN_FilterInitStructure.CAN_FilterNumber=0;

CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;//屏蔽模式

CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;

CAN_FilterInitStructure.CAN_FilterIdHigh = 0x0000;

CAN_FilterInitStructure.CAN_FilterIdLow = 0x0000;

CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x0000;

CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x0000;

CAN_FilterInitStructure.CAN_FilterFIFOAssignment = CAN_FilterFIFO0;

CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;

CAN_FilterInit(&CAN_FilterInitStructure);

}

配置完成,開始發(fā)送和接收:

void CAN_Test(void)

{

CanTxMsg TXmessage;

CanRxMsg RXmessage;

uint8_t TxMailbox=0;

uint8_t ret=0;


CAN_Config();

TXmessage.StdId=0x123;//ID,標(biāo)識符

TXmessage.IDE=CAN_ID_STD;//標(biāo)準(zhǔn)ID

TXmessage.RTR=CAN_RTR_DATA;//傳送的是數(shù)據(jù)幀

TXmessage.DLC=3;//數(shù)據(jù)個數(shù)。不能超過8個

TXmessage.Data[0]=0x01;//傳送的數(shù)據(jù)

TXmessage.Data[1]=0x10;

TXmessage.Data[2]=0xFF;

TxMailbox=CAN_Transmit(CAN1,&TXmessage);//發(fā)送,返回的是當(dāng)前郵箱號

while(CAN_TransmitStatus(CAN1,TxMailbox) !=CANTXOK);//等待發(fā)送完成

while(CAN_MessagePending(CAN1,CAN_FIFO0)<1);//查詢接受狀態(tài)位,看是否有信息(報文)到達

RXmessage.StdId=0x00;//初始化接受結(jié)構(gòu)體

RXmessage.IDE=CAN_ID_STD;

RXmessage.DLC=0;

RXmessage.Data[0]=0;

RXmessage.Data[1]=0;

RXmessage.Data[2]=0;

CAN_Receive(CAN1,CAN_FIFO0,&RXmessage);//接收信息(報文)


//最后檢查所接收到的數(shù)據(jù)每一個項和發(fā)送的是否一樣,如果全部一樣則發(fā)送成功,否則發(fā)送失敗

//設(shè)置標(biāo)志位對結(jié)果進行保存,用串口打印或者LED顯示不同的狀態(tài)來表示發(fā)送接收情況

}


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

CAN通信是一種控制器局域網(wǎng)絡(luò)(Controller Area Network)通信協(xié)議,是由德國BOSCH公司開發(fā),并最終成為國際標(biāo)準(zhǔn)(ISO 11898)。它是一種多主方式的串行通訊總線,基本設(shè)計規(guī)范要求有高的位速率...

關(guān)鍵字: can通信 CAN總線

CAN通信設(shè)計的方法主要有兩種:一種是依靠工程經(jīng)驗的投票法或試錯法,一種是基于系統(tǒng)工程技術(shù)的設(shè)計方法。試錯法是通過將零部件供應(yīng)商在不同項目積累的經(jīng)驗集成到一起的方法設(shè)計CAN通信協(xié)議。系統(tǒng)工程法

關(guān)鍵字: can通信

STM32RTC使用步驟:打開PWR時鐘和Backup區(qū)數(shù)據(jù)訪問若使用外部低速時鐘(LSE),打開LSE并等待起振選擇和打開RTC時鐘,等待時鐘同步配置時間格式,分頻系數(shù)等根據(jù)需要配置時鐘,日期,鬧鐘,喚醒,輸出,時間戳...

關(guān)鍵字: rtc stm32f3 實時時鐘

各位工程師是否遇到需要使用到CAN通信但缺少CAN接口的情況?最簡便的方案是采用UART轉(zhuǎn)CAN通訊。ZLG致遠電子針對此應(yīng)用CSM100系列模塊解決方案,這款模塊將極大的簡化了開發(fā)流程,實現(xiàn)的方式是怎樣的?本文為你詳解...

關(guān)鍵字: can通信 通訊接口 uart轉(zhuǎn)can

本文使用ADC轉(zhuǎn)換電位器輸出的電壓值,并用DMA模式傳輸轉(zhuǎn)換的結(jié)果,每8次采樣轉(zhuǎn)換取平均值,做一個簡單的數(shù)字濾波。ADC的詳細配置與使用見之前的日記STM32中ADC的使用,只是最后增加一步配置DMA:DMA for A...

關(guān)鍵字: adc dma模式 stm32f3 轉(zhuǎn)換數(shù)據(jù)

I2C(Inter-Integrated Circuit)總線是一種兩線式串行總線,用于連接微控制器及其外圍設(shè)備。和SPI一樣,也是一種常用的串行通信方式。STM32微控制器提供硬件I2C,對它進行相應(yīng)配置就可以用來進行...

關(guān)鍵字: stm32f3 硬件i2c lsm303dlhc

利用STM32的PWM輸入捕獲功能,可以測方波的占空比和(或)頻率使用時將相應(yīng)的輸入配置為對應(yīng)定時器對應(yīng)的復(fù)用功能,外部待測量波形從該引腳輸入再配置定時器輸入捕獲功能相應(yīng)參數(shù),選擇主從模式,最后打開中斷或者DMA讀

關(guān)鍵字: pwm stm32f3 輸入捕獲 頻率脈寬

傳統(tǒng)的CAN通信僅局限于PC機與電氣導(dǎo)線連接的現(xiàn)場應(yīng)用,面對當(dāng)今移動設(shè)備大規(guī)模占據(jù)生活中的各個領(lǐng)域,我們CAN通信也不能固步自封,在無線與APP應(yīng)用領(lǐng)域,使用手機等移動設(shè)備監(jiān)控CAN總線成為未來一個趨勢。

關(guān)鍵字: can總線 can通信

21ic訊 意法半導(dǎo)體的STM32F3系列微控制器再添新產(chǎn)品,滿足市場對高性能、創(chuàng)新功能和價格實惠的需求。新微控制器的片上存儲容量增至512KB閃存 (Flash) 以及80KB靜態(tài)隨機存取記憶體 (SRAM),并集成...

關(guān)鍵字: st stm32f3 微控制器 意法半導(dǎo)體 閃存
關(guān)閉