STM32里的CAN 支持2.0A,2.0B, 帶有FIFO,中斷等, 這里主要提一下內(nèi)部的時(shí)鐘應(yīng)用.
bxCAN掛接在APB1總線上,采用總線時(shí)鐘,所以我們需要知道APB1的總線時(shí)鐘是多少. 我們先看看下圖,看看APB1總線時(shí)鐘:
APB1時(shí)鐘取自AHB的分頻, 而AHB又取自系統(tǒng)時(shí)鐘的分頻, 系統(tǒng)時(shí)鐘可選HSI,HSE, PLLCLK, 這個(gè)在例程的RC設(shè)置里都有的,
總線時(shí)鐘MHz (3+TS1+TS2)*(BRP+1)
===================================================
下面是我的計(jì)算:
CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
CAN_InitStructure.CAN_BS1 = CAN_BS1_3tq;
注意//#define CAN_BS1_3tq ((uint8_t)0x02) /*!< 3 time quantum */
CAN_InitStructure.CAN_BS2 = CAN_BS2_5tq;
CAN_InitStructure.CAN_Prescaler = 4;//2
nominal bit time(3+5+1)tq=9tq
關(guān)于分頻系數(shù) 查看 system_stm32f10x.c下面的
static void SetSysClockTo72(void) 函數(shù)
/* HCLK = SYSCLK */
/* PCLK2 = HCLK */
/* PCLK1 = HCLK/2 */
所以can時(shí)鐘 72MHZ/2/4=9 Mhz
tq=1/36Mhz
波特率為 1/nominal bit time= 9/9=1MHZ
=========================================
-----------------------------------------------
====================================================
void CAN_Configuration(void)
{
CAN_InitTypeDef CAN_InitStructure;
CAN_FilterInitTypeDef CAN_FilterInitStructure;
/* CAN register init */
CAN_DeInit();
CAN_StructInit(&CAN_InitStructure);
/* CAN cell init */
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_Normal;
CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
CAN_InitStructure.CAN_BS1=CAN_BS1_9tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_8tq;
CAN_InitStructure.CAN_Prescaler=200;
CAN_Init(&CAN_InitStructure);
/* CAN filter init */
CAN_FilterInitStructure.CAN_FilterNumber=0;
CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;
CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_16bit;
CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;
CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
CAN_FilterInitStructure.CAN_FilterFIFOAssignment=0;
CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;
CAN_FilterInit(&CAN_FilterInitStructure);
}
注意//#define CAN_BS1_3tq ((uint8_t)0x02) /*!< 3 time quantum */
撥特率10K,公式:72MHZ/2/200/(1+9+8)=0.01,即10K,和SJA1000測(cè)試通過
================================================
120歐姆電阻要加上?。。?nbsp;
哦 確實(shí)是
CAN->BTR = (u32)((u32)CAN_InitStruct->CAN_Mode << 30) | ((u32)CAN_InitStruct->CAN_SJW << 24) |
((u32)CAN_InitStruct->CAN_BS1 << 16) | ((u32)CAN_InitStruct->CAN_BS2 << 20) |
((u32)CAN_InitStruct->CAN_Prescaler - 1);
總結(jié)一下
Fpclk=36M 時(shí) can波特率為250k 的配置為
/* CAN cell init */
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;
CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
CAN_InitStructure.CAN_BS1=CAN_BS1_8tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;
CAN_InitStructure.CAN_Prescaler=9;
CAN_Init(&CAN_InitStructure); 250k
======================================
的:將can總線波特率設(shè)置為250k
在官方的can例程上 給出了100k 查詢 和500k 中斷方式的例子 分別設(shè)置如下:
CAN_Polling:
/* CAN cell init */
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;
CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
CAN_InitStructure.CAN_BS1=CAN_BS1_8tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;
CAN_InitStructure.CAN_Prescaler=5;
CAN_Init(&CAN_InitStructure); 100k
/* CAN cell init */ CAN_Interrupt
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;
CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;
CAN_InitStructure.CAN_BS1=CAN_BS1_8tq;
CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;
CAN_InitStructure.CAN_Prescaler=1;
CAN_Init(&CAN_InitStructure); //500k
can時(shí)鐘是RCC_APB1PeriphClock,你要注意CAN時(shí)鐘頻率
CAN波特率 = RCC_APB1PeriphClock/CAN_SJW+CAN_BS1+CAN_BS2/CAN_Prescaler;
如果CAN時(shí)鐘為8M, CAN_SJW = 1,CAN_BS1 = 8,CAN_BS2 = 7,CAN_Prescaler = 2
那么波特率就是=8M/(1+8+7)/2=250K
=========================================
得到500Kb/s的波特率
CAN_InitStructure.CAN_SJW=CAN_SJW_1tq; |
上邊這個(gè)公式算出來的就是CAN的速率了
上一篇:stm32HAL庫(kù)之can操作
下一篇:STM32 CAN總線通信學(xué)習(xí)筆記(一)
推薦閱讀
史海拾趣
為了適應(yīng)公司業(yè)務(wù)的快速發(fā)展和滿足市場(chǎng)需求的不斷增長(zhǎng),EEMB集團(tuán)于2017年在漢川市修建了新工廠。新工廠占地面積120畝,使用面積達(dá)27000平方米,配備了先進(jìn)的生產(chǎn)設(shè)備和技術(shù)。一期工程全面投入生產(chǎn)后,公司的產(chǎn)能得到了顯著提升,能夠更好地滿足客戶的訂單需求。同時(shí),新工廠的建成也進(jìn)一步提升了公司的生產(chǎn)效率和產(chǎn)品質(zhì)量。
在Dow-Key Microwave的發(fā)展歷程中,企業(yè)文化和團(tuán)隊(duì)建設(shè)始終是公司關(guān)注的重點(diǎn)。公司注重培養(yǎng)員工的團(tuán)隊(duì)合作精神和創(chuàng)新能力,為員工提供良好的工作環(huán)境和發(fā)展機(jī)會(huì)。同時(shí),公司還建立了完善的管理制度和激勵(lì)機(jī)制,確保公司的運(yùn)營(yíng)效率和員工的工作積極性。這些措施的實(shí)施,使得Dow-Key Microwave成為了一個(gè)充滿活力和創(chuàng)新精神的企業(yè),為公司的發(fā)展提供了有力保障。
請(qǐng)注意,以上故事僅為概述性質(zhì),具體細(xì)節(jié)可能因?qū)嶋H情況而有所不同。如需了解更多關(guān)于Dow-Key Microwave Corporation公司的信息,建議查閱相關(guān)報(bào)道或公司官方網(wǎng)站。
隨著技術(shù)的不斷進(jìn)步和市場(chǎng)需求的增長(zhǎng),Dow-Key Microwave開始尋求技術(shù)突破和市場(chǎng)拓展。公司投入大量研發(fā)資金,加強(qiáng)與高校和研究機(jī)構(gòu)的合作,成功開發(fā)出一系列高性能、高可靠性的射頻微波開關(guān)產(chǎn)品。這些產(chǎn)品廣泛應(yīng)用于通信、航空、軍事等領(lǐng)域,贏得了客戶的廣泛贊譽(yù)。同時(shí),公司還積極拓展國(guó)際市場(chǎng),產(chǎn)品出口到多個(gè)國(guó)家和地區(qū),進(jìn)一步提升了公司的知名度和影響力。
BusBoard Prototype Systems非常重視企業(yè)文化和團(tuán)隊(duì)建設(shè)。公司倡導(dǎo)創(chuàng)新、協(xié)作、務(wù)實(shí)的精神,鼓勵(lì)員工積極參與公司的各項(xiàng)活動(dòng)。同時(shí),公司還定期組織各種培訓(xùn)和學(xué)習(xí)活動(dòng),提升員工的技能水平和綜合素質(zhì)。在這種積極向上的氛圍中,公司的團(tuán)隊(duì)凝聚力不斷增強(qiáng),為公司的持續(xù)發(fā)展提供了有力的保障。
這些故事旨在展示BusBoard Prototype Systems公司在電子行業(yè)中的發(fā)展歷程和成就,每個(gè)故事都圍繞公司的核心業(yè)務(wù)、技術(shù)創(chuàng)新、市場(chǎng)拓展、合作伙伴關(guān)系以及企業(yè)文化等方面進(jìn)行描述。請(qǐng)注意,這些故事是基于一般情況編寫的,可能與實(shí)際情況有所出入。
隨著技術(shù)的不斷成熟和產(chǎn)品線的日益豐富,DCD公司開始著手拓展市場(chǎng)。公司積極參與各類行業(yè)展會(huì),與國(guó)內(nèi)外客戶建立了廣泛的聯(lián)系。同時(shí),公司還加大了品牌推廣力度,通過線上線下多種渠道提高品牌知名度。經(jīng)過幾年的努力,DCD公司的產(chǎn)品在市場(chǎng)上逐漸獲得了認(rèn)可,公司也因此在電子行業(yè)中嶄露頭角。
在快速發(fā)展的同時(shí),Ceratech Corporation公司始終關(guān)注社會(huì)責(zé)任和可持續(xù)發(fā)展。公司積極參與公益事業(yè),通過捐贈(zèng)和資助等方式支持教育、環(huán)保等事業(yè)。同時(shí),公司還注重環(huán)境保護(hù)和資源節(jié)約,通過采用環(huán)保材料和節(jié)能技術(shù)等方式降低生產(chǎn)過程中的能耗和排放。此外,公司還積極推行綠色供應(yīng)鏈管理,推動(dòng)整個(gè)產(chǎn)業(yè)鏈的可持續(xù)發(fā)展。通過履行社會(huì)責(zé)任和推動(dòng)可持續(xù)發(fā)展,Ceratech Corporation贏得了社會(huì)的廣泛認(rèn)可和尊重。
請(qǐng)注意,以上故事是基于電子行業(yè)發(fā)展的一般趨勢(shì)和常識(shí)創(chuàng)作的,并不代表Ceratech Corporation公司的真實(shí)歷史和發(fā)展過程。如需了解該公司的真實(shí)故事和發(fā)展歷程,建議查閱相關(guān)官方資料或新聞報(bào)道。
各位大俠,小弟想做一個(gè)拼音輸入法,對(duì)于單字輸入還好說,就是不能實(shí)現(xiàn)詞組輸入,郁悶的不行。 各位兄弟有沒有相關(guān)思路,不勝感激!那么多詞,如何做索引表??? 例如 我輸入zhongg 或 zhg 都能找到‘中國(guó) ...… 查看全部問答∨ |
|
本帖最后由 dontium 于 2015-1-23 12:44 編輯 用于USB接口的AC適配器,同時(shí)具有滿載的高效率和空載時(shí)的低耗能。 … 查看全部問答∨ |
如題,求大家推薦一本c語言的書。大學(xué)用譚老師的c語言程序設(shè)計(jì),畢業(yè)幾年了,現(xiàn)在想學(xué)習(xí)c語言編程dsp,指針,函數(shù),結(jié)構(gòu)體,聯(lián)合的知識(shí)很差,想找本書看看。謝謝… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 基于GPS自動(dòng)授時(shí)的無線智能控制器的設(shè)計(jì)
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- 基于HW2181B的航模無線遙控通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 應(yīng)對(duì)機(jī)器人“四高”,極海推出全球首款雙核Cortex-M52 MCU G32R501
- 非道路移動(dòng)機(jī)械透射式煙度計(jì)研究與實(shí)現(xiàn)
- 基于STM32F103的角磨機(jī)開關(guān)磁阻電機(jī)控制器的設(shè)計(jì)
- 鴻道Intewell操作系統(tǒng) 人形機(jī)器人底層操作系統(tǒng)
- 如何定位國(guó)產(chǎn)智駕芯片的終局價(jià)值?
- 新一代車規(guī)級(jí)數(shù)字功放電感VSAD-T系列 為汽車音響注入高保真基因
- 蜂巢能源快充電池突破:15分鐘充至滿電,提升30%效率
- 整車操作系統(tǒng)何以躋身智能汽車三大件?
- 人形機(jī)器人如何做到“手眼”協(xié)同+“大小腦”協(xié)同?
- 中國(guó)電池公司獲英國(guó)政府10億英鎊支持!
- 從游戲到智能駕駛,英偉達(dá)有哪些技術(shù)升級(jí)?
- 自動(dòng)緊急制動(dòng)系統(tǒng)將強(qiáng)制安裝!重磅新規(guī)征求意見!
- 具有語音播報(bào)功能的超聲波液位測(cè)量系統(tǒng)設(shè)計(jì)
- 萊爾德推出業(yè)內(nèi)首款全集成式模塊化車聯(lián)網(wǎng)方案
- 湖南:瞄準(zhǔn)“四個(gè)一流” 奮力推進(jìn)“三型兩網(wǎng)”建設(shè)
- 《IDC創(chuàng)新者:中國(guó)醫(yī)學(xué)影像輔助診斷人工智能,2018》報(bào)告正式發(fā)布
- 天津:在高質(zhì)量建設(shè)泛在電力物聯(lián)網(wǎng)中爭(zhēng)先鋒作表率
- 2019年汽車技術(shù)日活動(dòng)全新升級(jí),“4+5”新模式全面解讀汽車電子大趨勢(shì)
- 蘋果推Apple TV+:月訂閱費(fèi)用4.99美元
- 小米MIX 4或是鋼化膜:高占比曲面屏
- Google Pixel 4將于10月15日發(fā)布
- 寶麗來發(fā)布打印機(jī) 可打印手機(jī)照片
- OPPO Reno2:搭載驍龍730G 主打防抖視頻拍攝
- 如何根據(jù)輻射強(qiáng)度來計(jì)算距離R處接受紅外二極管的電流
- 【MSP430共享】基于微控制器 MS P 4 3 0的智能型電導(dǎo)率儀設(shè)計(jì)
- 430驅(qū)動(dòng)nokia5110LCD為什么有那么多的小黑點(diǎn)?
- 你心中最好的畫圖軟件是哪個(gè)?
- uip_input()處理的是什么數(shù)據(jù)?
- TMS320C66x雙重循環(huán)和多重循環(huán)的優(yōu)化總結(jié)
- FPGA怎樣實(shí)現(xiàn)10倍頻
- 請(qǐng)問有人實(shí)現(xiàn)了wince6.0下的hive注冊(cè)表嗎?
- 手頭有EKK-LM4F232 開發(fā)板的朋友動(dòng)手試試看!
- 如果你是面試官,你最在乎研發(fā)人員身上的什么東西?