|
編者 序
作為一個(gè)還在校園里的本科生,我受夠了封閉的,腐朽的,令人壓抑的,所謂的大學(xué)高等教育。我只是想說(shuō),在我們疲于應(yīng)付考試,忙于爭(zhēng)奪獎(jiǎng)學(xué)金,有志于參加比賽,拼命考取證書(shū)之外,我們是否想過(guò),我們真正學(xué)到過(guò)什么?我們是否問(wèn)過(guò)自己,我們喜歡什么?我們是否觀察過(guò)社會(huì),社會(huì)需要什么人才?四年的光陰,就在這迷惘泛濫成災(zāi)的大學(xué)校園里,一分一秒,一時(shí)一刻,一年一月地消磨掉?我可以問(wèn)心無(wú)愧的說(shuō),我不是在消磨時(shí)間,我的大學(xué)沒(méi)白讀,因?yàn)槲覍W(xué)到了那么一點(diǎn)東西。但我也糾結(jié)過(guò),也迷茫過(guò),也矛盾過(guò)。當(dāng)我每次打完電話給家人,就要掛的時(shí)候,他們最后的叮囑都是,要用功學(xué)習(xí)。我沒(méi)有用功學(xué)習(xí),我不像大多數(shù)人一樣,拼命地把每一門(mén)課程的考試成績(jī)都保持在 90 分以上,我拼命做的是別的事情,我不在乎獎(jiǎng)學(xué)金,我也不在乎考試成績(jī),進(jìn)不進(jìn)學(xué)生會(huì)也無(wú)所謂,我只想學(xué),學(xué)以致用。所以我也無(wú)法向家人證明,我努力了,但我堅(jiān)信我堅(jiān)持的是對(duì)的,即使我走的是“獨(dú)木橋” 。 我身邊有一些同學(xué)對(duì) 51 單片機(jī)很感興趣,于是除了看統(tǒng)一訂的課本之外,還到圖書(shū)館借一些書(shū)來(lái)看, 他們習(xí)慣了學(xué)一樣?xùn)|西, 就要看這方面的書(shū), 教科書(shū),越厚越好。殊不知,除了數(shù)據(jù)手冊(cè),其他的絕大多書(shū)都是浮云。而且引用一位神人說(shuō)過(guò)的話,資料被翻譯成中文的芯片,都是被人用爛了的,再看這種資料已經(jīng)走在別人后面了。這話雖然說(shuō)得絕對(duì),但也不無(wú)道理。所以我在這里要做的是,參考數(shù)據(jù)手冊(cè),記錄其中的要點(diǎn),總結(jié)出配置寄存器的步驟,寫(xiě)出自己的程序,僅此而已。
小船
于 廣東石油化工學(xué)院測(cè)控實(shí)驗(yàn)室
前言
意法半導(dǎo)體 2011 年 9 月份新推出的 cortex-m4 內(nèi)核微控制器 stm32f407VG,主頻達(dá)到 168M,帶 FPU,單周期 DSP 指令,如果出貨量跟的上,st 將會(huì)再一次席卷 MCU 市場(chǎng)。 而 TI 也早早地發(fā)布了自家的 cm4 處理器,業(yè)界首款 65nm Cortex M4 MCU 系列——Stellari。飛思卡爾,Atmel 等等在 cortex-m3 上被 ST 占了先機(jī)的巨頭們,也不甘落后,紛紛推出自家的 M4。在 cortex-m4 的市場(chǎng)上,將不會(huì)是 ST 一家獨(dú)大。 與STM32f4 的高頻率, 大容量, 隱隱約約威脅低端 DSP 市場(chǎng)的定位不同,TI 的 M4 是為了搶 ST 的 M3 市場(chǎng)的,而 NXP 則傾向于 M4-M0 的雙核結(jié)構(gòu),在未來(lái)的 M4 市場(chǎng)上,誰(shuí)家會(huì)勝出?我們拭目以待。 我之所以選擇 stm32f4-discovery 作為硬件平臺(tái),是因?yàn)樗鄬?duì)于我們學(xué)生來(lái)說(shuō)比較便宜, 比較方便。 一塊小板子上集成仿真器, 加速度傳感器, MEM 話筒,音頻功放芯片,只需要一根 USB 線連到電腦上就可以調(diào)試了,絕對(duì)對(duì)得起一百來(lái)塊的價(jià)格,而且這種小板子是意法半導(dǎo)體公司為了推廣他的芯片而推出的,在價(jià)格上比較平民。雖然這種板子不帶有視頻教程,但是可以到 ST 官網(wǎng)上下載相應(yīng)的庫(kù)函數(shù)例程。雖然還沒(méi)有中文數(shù)據(jù)手冊(cè),但我覺(jué)得看懂英文數(shù)據(jù)手冊(cè)是一個(gè)工程師所要具備的技能。 雖然我不是一名工程師, 但我有一顆成為工程師的心^*^。 編譯器之所以選擇IAR而不是Keil, 是因?yàn)槲矣X(jué)得IAR的編譯效率是最高的,尤其是在編譯大工程的時(shí)候,而且它有很多的設(shè)置能使得調(diào)試比較方便,比如可以為工程設(shè)置幾種配置,每種配置設(shè)定編譯不同的文件,定義不同的宏,選擇不同的優(yōu)化等級(jí),等等,我在搞 Zigbee 協(xié)議棧的時(shí)候深有體會(huì)。Keil 也有他的特色,比如代碼編輯比較人性化,快速注釋等。 為什么我會(huì)去操作寄存器而不直接用庫(kù)函數(shù),是因?yàn)橹苯硬僮骷拇嫫鲿?huì)對(duì)芯片底層的工作比較了解, 對(duì)整個(gè)程序的細(xì)節(jié)都很清楚, 寫(xiě)出來(lái)的代碼效率會(huì)很高。 然后我們手上所需要的數(shù)據(jù)手冊(cè)有:
《Cortex™-M4 Devices Generic User Guide》ARM 的 M4 用戶(hù)手冊(cè)
《RM0090 Reference manual》ST 的 stm32f4 系列參考手冊(cè)
《stm32f407_datasheet》stm32f407 的數(shù)據(jù)手冊(cè)
0.jpg (39.77 KB, 下載次數(shù): 49)
下載附件
2018-4-17 02:20 上傳
STM32F407VGT6 微控制器的時(shí)鐘
復(fù)位后默認(rèn)選擇 16 MHz的內(nèi)部 RC振蕩器作為時(shí)鐘。這個(gè) RC振蕩器有 1%的精度,用戶(hù)也可以選擇外部的 RC振蕩器或 4‐26 MHz 的時(shí)鐘源,如果檢測(cè)到這個(gè)時(shí)鐘出現(xiàn)故障,系統(tǒng)將會(huì)自動(dòng)切換回內(nèi)部 RC振蕩器并產(chǎn)生一個(gè)軟件中斷(如果啟用) 。
該時(shí)鐘源輸入到一個(gè) PLL 從而允許陪頻到 168 MHz。
通過(guò)多個(gè)預(yù)分頻器可以分別配置的兩條 AHB 總線,高速總線 APB(APB2)和低速總線APB(APB1) 。AHB 最高頻率為 168M,高速 APB 的最高頻率為 84M,低速 APB 最高頻率為42M。
芯片內(nèi)嵌入了另一個(gè) PLL(PLLI2S)從而允許 I2S主時(shí)鐘產(chǎn)生所有從 8 kHz至 192 kHz 的頻率。
系統(tǒng)時(shí)鐘(SYSCLK)可以從以下三個(gè)不同的時(shí)鐘源中選擇:
HSI 指振蕩器時(shí)鐘
HSE振蕩器時(shí)鐘
鎖相環(huán)(PLL)時(shí)鐘
兩個(gè)可選低速時(shí)鐘源(用于實(shí)時(shí)時(shí)鐘和獨(dú)立看門(mén)狗) :
內(nèi)置 32K 時(shí)鐘
外接 32.768K時(shí)鐘
0.png (103.66 KB, 下載次數(shù): 37)
下載附件
2018-4-17 02:21 上傳
0.jpg (51.46 KB, 下載次數(shù): 58)
下載附件
2018-4-17 02:22 上傳
0.jpg (36.7 KB, 下載次數(shù): 46)
下載附件
2018-4-17 02:22 上傳
0.jpg (28.32 KB, 下載次數(shù): 53)
下載附件
2018-4-17 02:23 上傳
完整的pdf格式文檔51黑下載地址(共146頁(yè)):
我的stm32f4學(xué)習(xí)歷程.pdf
(4.95 MB, 下載次數(shù): 161)
2018-4-16 15:20 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|