下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、STM32F103*的CAN總線使用說明1.配置CAN時鐘、映射、IO 口RCC_APB 1 PeriphClockCmd(RCC_APB 1 Periph.CAN I. ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_USARTl I RCC_APB2Periph_GPI0A I RCC_APB2Pcriph_GPI0B I RCC_APB2Pcriph_GPI0C I RCC_APB2Pcriph_AH0. ENABLE);GPIO_PinRemapConfig(GPIO_Remap 1 _CAN 1 .ENABLE);打開對應IO/* Conf
2、igure CAN pin: RX */GPIOJnitStnicture.GPIO_Pin = GPIO_Pin_ &GPIO InitStructure.GPIO Mode = GPIO Mode 1PU;GPI0_Init(GP10B. &GPIO_InitStructurc);/* Configure CAN pin: TX */GPIO InitStructure.GPIO Pin = GPIO Pin 9;GPIO_InitStructurc.GPIO_Modc = GPIO_Modc_AF_PP:GPIO_Init(GPIOB. &GPIOJnitStru
3、cture);2使能CAN中斷向量NVICnitStructurc.NVICRQCh;umcl = USB_LP_CANl_RXOJRQn: NVIC_InitStnicture.NVIC_IRQChannelPreemptionPriority = 0;NVIC_lnitStmcture.NVICRQChannclSubPriority = 1; NVIC_InitStructure.NVIC_lRQChiinneICind = ENABLE;NVICnit(&NVICJnitStructurc);3.CAN硬件寄存器配置初始化CAN_DeInit(CANl);與 2.0 庫何區(qū)別:
4、CAN_StructInit(&CAN_InitStructurc);CAN_InitStructure.CAN_TTCM=DISABLE;CANnitStructure.CAN_ABOM=ENABLE;總線斷開后口動修復;CAN_InitSlructurc.CAN_AWUM=DlSABLE:CAN_InitStructurc.CAN_NART=DISABLE; CANJnitStructure.CAN_RFLM=DISABLE;CANnitStructure.CAN_TXFP=DISABLE:CAN InitStructure.CAN Modc=CAN Mode LoopBack;/
5、CAN Mode Silent;/CAN Mode Normal ;/CAN_Mode_LoopBacky/CAN_InitStructure.CAN_SJW=CAN_SJW_ltq;CAN_InitStructurc.CAN_BSl=CAN_BSl_6tq;CAN_InitStructurc.CAN_BS2=CAN_BS2_4tq;CANnitStructure.CAN_Prescaler=C ANOOk.Prescaler;CANnit(CANL &CANnitStructure);4 過濾器初始化CAN_ElterInitStnicture.CAN_FilterNumber=O;
6、CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;/CAN_FilterMode_IdL ist; 標識符模式;/CAN_FilterInitStructure.CAN_FikerMo<lc=CAN_FilterMode_IdList;/r 展模式濾波器CAN_FilterInitStructure.CAN_FiltcrScale=CAN_FiltcrScale_32bit: 32 位過濾器:CAN_FilterInitStructure.CAN_FilterIdHigh=OxO26O;適用 TxMessage.St
7、dId=Ox 13;標識符寄存器;CAN_FilterInitStructure.CAN_FilterIdLow=OxOOOO:CAN_FilterInitStructure.CAN_FiltcrMaskIdHigh=0x0260:屏蔽寄存器(不屏蔽);CAN_FilterInitStructure.CAN_FilterMaskIdLow=OxOOOO;產(chǎn)屏蔽寄存器0表示屏蔽,1表示不屏蔽*/CAN_FilterInitStructure.CAN_FilterFIFOAssignment=0;CAN_FilterInitStmcture.CAN_FilterActivation=ENABLE;
8、 CAN_FilterInit(&CAN_FilterInitStructure);5打開CAN接收中斷CANTConfig(CANl, CAN_IT_FMPO. ENABLE);6編輯發(fā)送數(shù)據(jù)(標識符模式和擴展模式)TxMcssage.StdId=Ox 10:TxMessage.RTR=CAN_RTR_DATA:TxMessage.IDE=CAND_STD;/(標識符模式)/ CAN_ID_EXT (擴展標識符模式)TxMessage.DLC=8:TxMessage.DataO =0x01;TxMessage.Data| 1 =0x01;TxMessage.Data| 2 =0x01
9、;TxMessage.Data3 =0x01;TxMessage.Data4 =0x01;TxMessage.Data|5 =0x01;TxMessage.Data|6| =0x01;T xMessage. Data 7 =0x01;CAN_Transmit(CAN 1, &TxMessage);7 査詢是否發(fā)送完成i = 0;while(CAN_TransmitStatus(CAN 1, TransmitMailbox) != CANTXOK) && (i != Ox卜卜卜) 與2.0庫有異;判斷發(fā)送數(shù)據(jù)成功i+;if(CAN_TransmitStatus(CAN 1
10、. TransmitMailbox) = CANTXPENDING)表示數(shù)據(jù)疋在發(fā)送屮。8 接收數(shù)據(jù)void receive(void)u32 i;CanRxMsg RxMessage;i = 0;while(CAN_MessagePending(CAN 1 CAN_F1FOO) < 1) && (i != OxFF)if(i=OxFF) 表示沒自收到數(shù)據(jù)elseRxMcssage.StdId=OxOO;RxMessage.IDE=CAN_ID_STD;RxMessage.DLC=O;RxMessage.Data0=0x00;RxMessagc.Data 1 =0x00:
11、RxMessage.Data2=0x00;RxMessage.Data|3=0x00;RxMessage.Data4=OxOO;RxMessagc.Data5=0x00;RxMessage.Data6=OxOO;RxMessage.Data| 7 |=0x00;CAN_Receive(CAN 1, CAN_FIFOO, &RxMessage);void USB.LP.CAN 1.RX0 JRQHandlcr(void) CanRxMsg RxMessage;RxMessage.StdId=OxOO:RxMessage.ExtId=OxOO:RxMessage.IDE=O;RxMessa
12、gc.DLC=O;RxMessage.FMI=O;RxMessage.Data0=OxOO;RxMessage.Data| 1 |=0x00;RxMessage.Data 2 |=OxOO;RxMessage.Dataf 3 =OxOO;RxMessage.Data4=0x00;RxMessage.Data5 |=OxOO;RxMessage.Data|6|=0x00;RxMessage.Data7 =0x00;CAN_Receive(CANl, CAN_FIFOO. &RxMessage);if(RxMessage.IDE=CAN_ID_STD)ret = 1;elseret = 0
13、;I發(fā)送ID與過濾器設置的對應求值算法:發(fā)送數(shù)據(jù)的ID耍求:TxMessage.StdId=0x00;TxMessage.ExtId=Ox 1234;T xMcssage.IDE=0x04;TxMessage.RTR=O;過濾器所對應的配置:32位,標識符模式31:2423:1615:87:0STID|10:3STID2:0EXID17:13EXID|12:5EXID|4:0 IDE RTR 0000000000(X)000001001000110100100CAN FilterIdHighCAN FilterIdLow000091A4得出:CAN_HlterInitStructure.CAN
14、_FilterIdHigh=0x0000;CAN_FilterInitStructure.CAN_FilterIdLow=0x91A4;備注總線模式說明:何詢CAN總線上的數(shù)據(jù),不対總線進行任何操作的設直: 總線模式選擇CAN_Mode_Silent不要在總線上發(fā)送數(shù)據(jù);過濾器設置為:CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;CAN_FilterInitStructurc.CAN_FilterIdLow=0x0000;CAN_FilterInitStructure.CAN_FiltcrMaskIdHigh=OxOOOO:CAN_Filter
15、InitStructure.CAN_FilterMaskIdLow=OxOOOO;開啟接收函數(shù):receive(); void receive(void)u32 Error:CanRxMsg RxMessage;i = 0;while(CAN_MessagePending(CAN 1, CAN_F1FOO) < I) && (i != OxFF) 有異:判斷接收到數(shù)據(jù)i+;if(i=0xFF)/ status = CAN_GetFlagStatus(CAN 1 .CAN_FLAG_BOF):/Error = C AN_GetError( C AN 1);/ Usart 1 Scnd32Bit(Error);elseRxMcssagc.StdId=OxOO:RxMes
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一的變調練習題
- 二零二五年度重型吊車安全責任及運輸合同3篇
- 壓瘡的預防及護理課件
- 射箭游戲-數(shù)學
- 2024年浙江宇翔職業(yè)技術學院高職單招職業(yè)適應性測試歷年參考題庫含答案解析
- 2024年濟源職業(yè)技術學院高職單招職業(yè)適應性測試歷年參考題庫含答案解析
- 《科幻小說賞析與寫作》 課件 -第三章 “太空歌劇”的探索與開拓-《2001太空漫游》
- 2024年河南工業(yè)貿易職業(yè)學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 二零二五年租賃權轉讓及配套設備協(xié)議范本3篇
- 2024年滄州職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 2025年中國AI AGENT(人工智能體)行業(yè)市場動態(tài)分析、發(fā)展方向及投資前景分析報告
- 家居建材行業(yè)綠色材料應用及節(jié)能設計方
- 農副產(chǎn)品安全培訓
- 2024年中國玩具工程車市場調查研究報告
- 2025-2030年中國電動三輪車市場發(fā)展現(xiàn)狀及前景趨勢分析報告
- TCABEE 063-2024 建筑光儲直柔系統(tǒng)變換器 通 用技術要求
- 【9化期末】合肥市廬陽區(qū)2023-2024學年九年級上學期期末化學試題
- 高一下學期生物人教版必修二:3.4 基因通常是有遺傳效應的DNA片段課件
- 下屬企業(yè)考核報告范文
- 修車補胎合同范例
- 2024年基金應知應會考試試題
評論
0/150
提交評論