国产精品一区三区,91精品国产色综合久久不卡粉嫩 ,久久久久久久91,7777久久香蕉成人影院

二維碼
微世推網(wǎng)

掃一掃關(guān)注

當(dāng)前位置: 首頁 » 快聞頭條 » 本地資訊 » 正文

STM32的can總線實驗心得

放大字體  縮小字體 發(fā)布日期:2018-03-07 21:45:25    作者:微世推-張峰波    瀏覽次數(shù):593
導(dǎo)讀

(一) 工業(yè)現(xiàn)場總線 CAN 的基本介紹以及 STM32 的 CAN 模塊簡介首先通讀手冊中關(guān)于CAN的文檔,必須精讀。需要精讀的部分為 RCC 和 CAN 兩個章節(jié)。為什么需要精讀 RCC 呢?因為我們將學(xué)習(xí) CAN 的波特率的設(shè)置,將要使

(一) 工業(yè)現(xiàn)場總線 CAN 的基本介紹以及 STM32 的 CAN 模塊簡介

首先通讀手冊中關(guān)于CAN的文檔,必須精讀。
需要精讀的部分為 RCC 和 CAN 兩個章節(jié)。
為什么需要精讀 RCC 呢?因為我們將學(xué)習(xí) CAN 的波特率的設(shè)置,將要使用到 RCC 部分的設(shè)置,因此推薦大家先復(fù)習(xí)下這部分中的幾個時鐘。

關(guān)于 STM32 的 can 總線簡單介紹
bxCAN 是基本擴展 CAN (Basic Extended CAN) 的縮寫,它支持 CAN 協(xié)議 2.0A 和 2.0B 。它的設(shè)計目標(biāo)是,以最小的 CPU 負(fù)荷來高效處理大量收到的報文。它也支持報文發(fā)送的優(yōu)先級要求(優(yōu)先級特性可軟件配置)。
對于安全緊要的應(yīng)用,bxCAN 提供所有支持時間觸發(fā)通信模式所需的硬件功能。

主要特點
支持 CAN 協(xié)議 2.0A 和 2.0B 主動模式
波特率最高可達 1 兆位 / 秒
支持時間觸發(fā)通信功能

發(fā)送
3 個發(fā)送郵箱
發(fā)送報文的優(yōu)先級特性可軟件配置
記錄發(fā)送 SOF 時刻的時間戳

接收
3 級深度的2個接收 FIFO
14 個位寬可變的過濾器組 - 由整個 CAN 共享
標(biāo)識符列表
FIFO 溢出處理方式可配置
記錄接收 SOF 時刻的時間戳

可支持時間觸發(fā)通信模式
禁止自動重傳模式
16 位自由運行定時器
定時器分辨率可配置
可在最后 2 個數(shù)據(jù)字節(jié)發(fā)送時間戳

管理
中斷可屏蔽
郵箱占用單獨 1 塊地址空間,便于提高軟件效率



(二) STM32 CAN 模塊工作模式

STM32 的 can 的工作模式分為:

在此章我們的 Mini-STM32 教程中我們將使用到 CAN_Mode_LoopBack 和 CAN_Mode_Normal 兩種模式。
我們第一步做的就是使用運行在 CAN_Mode_LoopBack 下進行自測試。

在參考手冊中 CAN_Mode_LoopBack (環(huán)回模式) 的定義如下:
環(huán)回模式可用于自測試。為了避免外部的影響,在環(huán)回模式下 CAN 內(nèi)核忽略確認(rèn)錯誤 (在數(shù)據(jù) / 遠程幀的確認(rèn)位時刻,不檢測是否有顯性位) 。在環(huán)回模式下,bxCAN 在內(nèi)部把 Tx 輸出回饋到 Rx 輸入上,而完全忽略 CANRX 引腳的實際狀態(tài)。發(fā)送的報文可以在 CANTX 引腳上檢測到。
因此這種模式也特別適合大家做好硬件后自測程序。

(三) CAN 接口端口映射

STM32 中的 CAN 物理引腳腳位可以設(shè)置成三種:

默認(rèn)模式,重定義地址1模式,重定義地址2模式


在我們的 Mini-STM32 上面沒有接出 CAN 的接口芯片, 所以我們可以利用

RealView MDK

的 CAN 軟件

模擬

模塊來做實驗.

------------------------------------------------------------------------



設(shè)置完 CAN 的引腳之后還需要打開 CAN 的時鐘:




(四) CAN 波特率設(shè)置

4、我們需要搞明白CAN波特率的設(shè)置,這個章節(jié)也是使用CAN的最重要的部分之一,因為這實際應(yīng)用中我們需要根據(jù)我們實際的場合來選擇 CAN 的波特率。


一般情況下面1M bps 的速率下可以最高可靠傳輸 40 米以內(nèi)的距離。


在 50K 以下的波特率中一般可以可靠傳輸數(shù)公里遠。


對于波特率的設(shè)置需要詳細學(xué)習(xí)參考手冊對應(yīng)部分的解釋。我們在調(diào)試軟件的時候可以使用示波器來測試 CANTX 引腳上的波形的波特率,這樣可以得到事半功倍的效果,大大的縮短調(diào)試學(xué)習(xí)的時間。


// ***************************************************************


//     BaudRate = 1 / NominalBitTime


//     NominalBitTime = 1tq + tBS1 + tBS2


//     tq = (BRP[9:0] + 1) x tPCLK


//     tPCLK = CAN's clock = APB1's clock


// ****************************************************************


也就是BaudRate = APB1 / ((BS1 + BS2 + 1) * Prescaler)


這里注意的是采用點的位置,也就時BS1,BS2的設(shè)置問題,這里我也找了一些資料,抄錄下來給大家,是 CANopen 協(xié)議中推薦的設(shè)置。


  1Mbps 速率下,采用點的位置在6tq位置處,BS1=5, BS2=2


  500kbps 速率下,采用點的位置在8tq位置處,BS1=7, BS2=3


  250kbps 速率下,采用點的位置在14tq位置處,BS1=13, BS2=2


  125k, 100k, 50k, 20k, 10k 的采用點位置與 250K 相同。


因此我們需要重視的有軟件中的這么幾個部分:


// 設(shè)置 AHB 時鐘(HCLK)


// RCC_SYSCLK_Div1  AHB 時鐘 =  系統(tǒng)時鐘


RCC_HCLKConfig(RCC_SYSCLK_Div8);


// 設(shè)置低速 AHB 時鐘(PCLK1)


// RCC_HCLK_Div2  APB1 時鐘  = HCLK / 2


RCC_PCLK1Config(RCC_HCLK_Div2);


// PLLCLK = 8MHz * 8 = 64 MHz


// 設(shè)置 PLL 時鐘源及倍頻系數(shù)


RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_8);


CAN 波特率設(shè)置中需要的就是PCLK1 的時鐘。


  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;


通過上面部分的時鐘設(shè)置我們已經(jīng)可以算出我們的波特率了


CAN_bps = PCLK1 / ((1 + 7 + 8) * 5) = 25K bps


大家也可以實際測試中修改時鐘值來通過示波器測試我們需要的波特率是否正確例如將PLLCLK 設(shè)置降低一半:


// PLLCLK = 8MHz * 4 = 32 MHz


// 設(shè)置 PLL 時鐘源及倍頻系數(shù)


RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_4);


那么我們得到的CAN_bps也會降低一半。


接下來還可以修改 HCLK 和 PCLK1 ,其實最終這幾個分頻和倍頻值最終影響的都是 PCLK1。


通過幾次試驗,相信大家應(yīng)該很容易掌握波特率的設(shè)置了。


設(shè)置完波特率我們直接測試函數(shù):


大家可以仿真程序,當(dāng)程序中 Test 等于 Passed 那么說明 Loopback 模式測試通過了。


并且在 CAN 通訊框中我們可以看到發(fā)送和接收到的數(shù)據(jù):


到此時說明如果大家只有一塊CAN模塊的時候?qū)W習(xí)可以告一個段落了,不過這個并不代表大家就已經(jīng)掌握了 CAN 了,正真要掌握它,大家還是需要看大量的 CAN 部分的資料,參考手冊部分的也是不夠的,市面上有幾本專門介紹現(xiàn)場總線和CAN總線的書,推薦大家買來經(jīng)常翻翻看看,這樣到需要實際應(yīng)用的時候才可以做到 如魚得水。




(五) 正常模式

完成了 loopback 模式的測試之后接下來我們需要學(xué)習(xí)的就是多機通訊了,當(dāng)然由于我們的 Mini-STM32 沒有將 CAN 接口引出來, 所以我們沒有辦法在板子上面做這部分的試驗了,只能在 RealView MDK 的軟件中進行模擬。


如果您擁有兩塊帶 CAN 硬件的 STM32 的板子,您需要自己構(gòu)建硬件的物理層的連接, 使用三根線將 CANH,CANL,GND 三根線直連,當(dāng)然你要接好終端電阻才能保證通訊的正常通訊,當(dāng)兩塊板子都跳好后我們使用萬用表測量下 CANH和CANL之間的電阻是否為 60 歐姆。多塊板子多機通訊的是否你只需要在總線的主機端和最后一端接上終端電阻就可以了.



  在初始化完成后,軟件應(yīng)該讓硬件進入正常模式,以便正常接收和發(fā)送報文。軟件可以通過對 CAN_MCR 寄存器的INRQ位清 '0',來請求從初始化模式進入正常模式,然后要等待硬件對 CAN_MSR 寄存器的 INAK 位置 '1' 的確認(rèn)。在跟 CAN 總線取得同步,即在 CANRX 引腳上監(jiān)測到 11 個連續(xù)的隱性位 (等效于總線空閑) 后,bxCAN 才能正常接收和發(fā)送報文。


不需要在初始化模式下進行過濾器初值的設(shè)置,但必須在它處在非激活狀態(tài)下完成 (相應(yīng)的 FACT 位為 '0' ) 。而過濾器的位寬和模式的設(shè)置,則必須在初始化模式中進入正常模式前完成。


準(zhǔn)備工作做完我們需要設(shè)置 CAN 通訊部份軟件。

 
(文/微世推-張峰波)
免責(zé)聲明
本文僅代表發(fā)布者:微世推-張峰波個人觀點,本站未對其內(nèi)容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請及時聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
 

Copyright?2015-2025 粵公網(wǎng)安備 44030702000869號

粵ICP備16078936號

微信

關(guān)注
微信

微信二維碼

WAP二維碼

客服

聯(lián)系
客服

聯(lián)系客服:

24在線QQ: 770665880

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號: weishitui

韓瑞 小英 張澤

工作時間:

周一至周五: 08:00 - 24:00

反饋

用戶
反饋

国产精品一区三区,91精品国产色综合久久不卡粉嫩 ,久久久久久久91,7777久久香蕉成人影院
久久免费视频在线观看| 国产精品ⅴa在线观看h| 国产精品红桃| 久久影视三级福利片| 亚洲国产成人久久综合一区| 欧美96在线丨欧| 亚洲乱码国产乱码精品精98午夜| 国产日韩欧美麻豆| 麻豆av一区二区三区久久| 亚洲国产日韩欧美一区二区三区| 国产精品三级久久久久久电影| 国产欧美精品一区二区色综合 | 国产精品进线69影院| 亚洲专区在线视频| 国内精品免费午夜毛片| 国产精品国产三级国产a| 欧美在线观看网址综合| 在线精品在线| 国产一区二区三区高清| 久久综合免费视频影院| 一本久道久久综合狠狠爱| 亚洲国产裸拍裸体视频在线观看乱了| 欧美精品18+| 欧美成人一区二区三区在线观看| 在线中文字幕日韩| 国产午夜精品一区理论片飘花| 国产精品毛片a∨一区二区三区| 久久久av水蜜桃| 一区二区毛片| 亚洲最快最全在线视频| 国产亚洲综合性久久久影院| 国产精品一二一区| 欧美xxx在线观看| 久久夜色精品一区| 这里只有精品丝袜| 在线观看91精品国产入口| 狠色狠色综合久久| 国产精品地址| 欧美日韩免费看| 欧美中文字幕| 一区二区三区精品| 一本综合精品| 精品999日本| 禁久久精品乱码| 国产精品久久毛片a| 国产精品v亚洲精品v日韩精品 | 免费精品视频| 欧美亚洲免费| 一区二区三区毛片| 正在播放亚洲一区| 亚洲国产你懂的| 亚洲精品乱码久久久久久蜜桃麻豆| 国产日韩综合一区二区性色av| 国产精品一区二区久久| 欧美精品在线免费| 欧美日韩p片| 久久夜色精品国产欧美乱极品| 久久亚洲精品一区二区| 亚洲欧美另类国产| 亚洲精品你懂的| 一级成人国产| 亚洲国产精品久久91精品| 亚洲国产精品电影| 国内精品久久久久久| 亚洲成人自拍视频| 国产一区二区剧情av在线| 极品尤物一区二区三区| 国产日韩一区| 狠狠色丁香久久婷婷综合丁香 | 久久综合99re88久久爱| 欧美在线播放一区| 麻豆久久精品| 久久精品亚洲乱码伦伦中文 | 日韩午夜激情av| 亚洲黄色成人网| 一区二区精品在线| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲天堂av高清| 亚洲精品资源| 亚洲免费婷婷| 久久蜜桃精品| 久久精品亚洲精品国产欧美kt∨| 免费亚洲视频| 久久综合狠狠综合久久激情| 欧美日韩国产一区| 欧美交受高潮1| 国产精品亚洲а∨天堂免在线| 欧美日一区二区在线观看 | 欧美性片在线观看| 国产一区二区三区不卡在线观看 | 欧美视频一区| 欧美日韩一区二区三区在线看| 国产美女一区| 国产日韩欧美不卡| 亚洲精品一区二区三区av| 亚洲国产影院| 亚洲欧美日韩精品综合在线观看| 久久久免费精品视频| 久久久久久久综合狠狠综合| 欧美日韩国产精品专区| 欧美日韩视频免费播放| 国内揄拍国内精品久久| 黄色精品一区| 一本色道久久88综合日韩精品 | 国产主播一区二区三区四区| 国内自拍一区| 在线视频免费在线观看一区二区| 夜夜狂射影院欧美极品| 久久国产精品一区二区三区四区| 欧美母乳在线| 欧美三级电影大全| 亚洲第一页中文字幕| 91久久久国产精品| 羞羞答答国产精品www一本| 欧美激情一区二区三区蜜桃视频 | 欧美国产日韩一区| 国产亚洲欧美日韩日本| 韩日欧美一区| 亚洲欧美国产精品va在线观看| 女女同性精品视频| 欧美国产成人精品| 韩日欧美一区| 亚洲精品一区二区三区樱花| 久久大逼视频| 国产精品国产a级| 国产亚洲精品高潮| 亚洲一区二区三区中文字幕| 欧美va日韩va| 欧美日韩亚洲不卡| 亚洲国产精品久久精品怡红院| 日韩午夜免费| 免费中文字幕日韩欧美| 国内外成人在线| 日韩视频免费| 免费视频最近日韩| 韩国三级电影久久久久久| 亚洲日本一区二区三区| 久久综合国产精品| 国模吧视频一区| 亚洲美女在线视频| 欧美成人高清| 亚洲第一福利视频| 久久男人资源视频| 欧美日韩久久不卡| 亚洲人成啪啪网站| 蜜桃久久av一区| 国产精品每日更新在线播放网址| 一本久道久久综合婷婷鲸鱼| 欧美人妖另类| 国产一区二区黄色| 欧美中日韩免费视频| 国产视频一区三区| 亚洲精品免费看| 欧美日本亚洲视频| 日韩视频免费在线| 欧美日韩xxxxx| 国外成人性视频| 久久理论片午夜琪琪电影网| 国产综合久久| 一区二区三区日韩精品视频| 欧美日韩一区三区四区| 99这里只有精品| 欧美日韩伊人| 亚洲第一黄网| 欧美国产大片| 妖精视频成人观看www| 欧美日韩一区二区三区免费| 亚洲第一区在线| 免费永久网站黄欧美| 亚洲破处大片| 欧美欧美全黄| 亚洲国产精品激情在线观看| 欧美国产先锋| av成人福利| 国产精品免费久久久久久| 最新国产乱人伦偷精品免费网站| 欧美国产日韩一二三区| av成人免费观看| 国产精品乱子乱xxxx| 野花国产精品入口| 国产精品99免费看 | 一本一本久久a久久精品综合麻豆| 欧美日本在线视频| 在线亚洲欧美专区二区| 国产精品麻豆成人av电影艾秋| 亚洲精品视频啊美女在线直播| 欧美欧美在线| 亚洲综合日韩| 国产在线欧美日韩| 免费在线成人av| 极品日韩av| 欧美精品系列| 亚洲午夜精品一区二区三区他趣 | 久久综合九色99| 亚洲国产欧美在线 | 先锋影院在线亚洲| 黄色精品一二区| 欧美国产高潮xxxx1819| 激情亚洲网站| 欧美极品在线播放|