STM32F系列ARM Cortex-M3核微控制器開發(fā)與應(yīng)用(附光盤)
定 價:58 元
- 作者:喻金錢 ,喻斌 著
- 出版時間:2011/4/1
- ISBN:9787302244424
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP332.3
- 頁碼:496
- 紙張:膠版紙
- 版次:1
- 開本:16開
《STM32F系列ARMCortex-M3核微控制器開發(fā)與應(yīng)用(附光盤)》從實際應(yīng)用需求和開發(fā)過程中所遇到的問題出發(fā),介紹了stm32f系列arm芯片內(nèi)外設(shè)和各個 功能模塊的應(yīng)用。
《STM32F系列ARMCortex-M3核微控制器開發(fā)與應(yīng)用(附光盤)》沒有涉及有關(guān)芯片的存儲結(jié)構(gòu)系統(tǒng)構(gòu)架、指令集等理論性的知識,而是從最基本的應(yīng)用要求出發(fā),結(jié)合大量實例,依托庫函數(shù),詳細(xì)講解i/o接口、異步串口、系統(tǒng)時基定時器、spi接口、rtc、看門狗、定時器、i2c接口、can接口和模數(shù)轉(zhuǎn)化器等外設(shè)接口的使用方法。本書注重實際操作和開發(fā)中的細(xì)節(jié),對在開發(fā)過程中容易出錯的情況作出提醒,并與讀者分享作者在實際開發(fā)中的一些經(jīng)驗和感?,為有單片機(jī)和c語言基礎(chǔ)的讀者打開了通向嵌入式開發(fā)的大門。
《STM32F系列ARMCortex-M3核微控制器開發(fā)與應(yīng)用(附光盤)》可作為單片機(jī)愛好者的學(xué)習(xí)用書,也可作為嵌入式應(yīng)用工程技術(shù)人員的學(xué)習(xí)和培訓(xùn)用書,同時可作為大學(xué)生學(xué)習(xí)單片機(jī)的教材。
單片機(jī)市場的規(guī)模越來越大,到2010年出貨量在20G片左右。世界各大半導(dǎo)體公司紛紛亮出自己的得意之作,提供各具特色的器件和架構(gòu)。意法半導(dǎo)體集團(tuán)(ST)是世界第五大半導(dǎo)體公司,當(dāng)前推出一個新的32位微控制器系列產(chǎn)品——STM32系列。該系列產(chǎn)品所用微處理器是ARM公司為高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的ARM?Cortex-M3內(nèi)核。
由于各行各業(yè)對于單片機(jī)的要求在不斷提高,處理器必須在不增加功耗的條件下,處理更多的任務(wù)。處理器間的互聯(lián)也變得復(fù)雜,串口、USB、SPI、I2C、CAN等一系列的硬件接口一個都不能少。在軟件上,應(yīng)用程序的功能也在不斷創(chuàng)新,要求有更高的運算速度,更強(qiáng)的實時能力,更炫的圖形界面……STM32系列產(chǎn)品得益于Cortex-M3在架構(gòu)上進(jìn)行的多項改進(jìn),包括提升性能的同時又提高了代碼密度的Thumb-2指令集和大幅度提高中斷響應(yīng)的緊耦合嵌套向量中斷控制器,所有這些功能都同時具有業(yè)界最優(yōu)的功耗水平。這些性能的不斷提高滿足了業(yè)界對單片機(jī)的需求。許多曾經(jīng)只能求助于高級32位處理器或DSP的軟件設(shè)計,都能在STM32上運行得很順暢。
本書根據(jù)筆者多年使用STM32的實際經(jīng)驗與體會,結(jié)合庫函數(shù),以實現(xiàn)其功能為主線,強(qiáng)調(diào)實例應(yīng)用和開發(fā)調(diào)試過程的特點進(jìn)行編寫。本書并沒有介紹每個寄存器的詳細(xì)功能和具體使用(這在STM32F的技術(shù)手冊中有詳細(xì)的描述),而是通過對具體實例的講解和剖析,結(jié)合廠家提供的固件庫,簡單輕松地實現(xiàn)所要達(dá)到的功能,讓每一個工程師都能使用STM32F系列芯片,并能把這系列芯片的功能發(fā)揮到極致。只要會C語言,通過這本書的學(xué)習(xí),讀者不必去弄懂底層硬件結(jié)構(gòu),就能使用ARM,就可以很好地使用STM32F系列進(jìn)行開發(fā)、調(diào)試工作。
本書主要內(nèi)容
本書在編寫過程中,強(qiáng)調(diào)實用、易用和有用。全書共分為三大部分,第1部分介紹開發(fā)平臺和實驗平臺,這是后面學(xué)習(xí)的基礎(chǔ);第2部分介紹STM32F芯片的各個功能模塊的特點、庫函數(shù),然后用具體的實例詳細(xì)介紹如何使用這些庫函數(shù)實現(xiàn)功能模塊的不同應(yīng)用;第3部分是基于STM32F常用系統(tǒng)設(shè)計的實例應(yīng)用。
第1部分是本書的基礎(chǔ),需要熟練掌握,只有這樣才可以有效提高開發(fā)效率,減少錯誤的發(fā)生。
第2部分是本書的重點,共有13章,分別介紹各個功能模塊,這13章采用了相同的講解模式,首先介紹該模塊的功能,隨即介紹能實現(xiàn)這些功能的庫函數(shù),最后用多個實例詳細(xì)講解如何使用這些庫函數(shù)實現(xiàn)模塊功能。該部分是本書最有特色的部分,也是讀者最感興趣的部分,其中講解了LED燈驅(qū)動實例、流水燈實例、按鍵實例,串口發(fā)送數(shù)據(jù)實例,中斷接收數(shù)據(jù)方式實例,串口隊列實例、嘀嗒實例、實用按鍵實例、外部中斷實例、中斷嵌套實例、萬年歷實例、后備域數(shù)據(jù)讀寫實例、I2C與24C02通信實例、單通道ADC采樣實例、溫度采樣實例、內(nèi)部Flash讀寫實例、定時器簡單定時實例、PWM輸出實例、獨立看門狗實例、窗口看門狗實例和CAN接口實例等二十多個實例。
第3部分是本書的提高部分,講解了常用系統(tǒng)設(shè)計實例。這些實例在實際應(yīng)用中經(jīng)常遇到,本書詳細(xì)講解了其思路和邏輯方法,這也是本書的特色部分,包括GPS數(shù)據(jù)解析、NOR Flash數(shù)據(jù)儲存方案和2.4G無線數(shù)據(jù)傳輸?shù)雀呒墤?yīng)用。
通過使用本固件函數(shù)庫,無須深入掌握細(xì)節(jié),用戶也可以輕松應(yīng)用每一個外設(shè)。因此,使用本固件函數(shù)庫可以大大減少用戶的程序編寫時間,進(jìn)而降低開發(fā)成本。
本書以具體的功能實例為基礎(chǔ),引導(dǎo)讀者分析實例并實現(xiàn)這些功能。在開發(fā)調(diào)試中,一步一步地解決問題、實現(xiàn)功能,并把一個復(fù)雜的問題劃分成一個一個好解決的小問題,一個一個地解決,最后實現(xiàn)整個功能。這也是本書作者著力介紹的一種解決問題的方法。
讀者定位
本書要求讀者有基本的C語言基礎(chǔ),不需要有硬件方面的知識。通過本書的學(xué)習(xí),可以讓一個初學(xué)者很快進(jìn)入到嵌入式開發(fā)的大門。
同時,本書可作為嵌入式應(yīng)用工程技術(shù)人員的學(xué)習(xí)和培訓(xùn)用書,也可作為企業(yè)內(nèi)部培訓(xùn)教材,當(dāng)然如果作為大學(xué)單片機(jī)教材,也會起到事半功倍的教學(xué)效果。
如果您是一個單片機(jī)的入門者,那么這本書可以說是為您量身打造的。您只需要按照本書的編排順序,一章一章地往后學(xué),一個實例一個實例地理解和編寫即可。本書后面的內(nèi)容是以前面的內(nèi)容為基礎(chǔ)的,像堆積木一樣,一點一點地把功能進(jìn)行堆積。等您學(xué)完這本書,您就可以成為一個嵌入式的熟手了。
如果您是單片機(jī)方面的高手,想通過本書學(xué)習(xí)使用STM32系列的芯片,您只需要熟悉開發(fā)平臺和實驗平臺,然后了解每個外設(shè)功能模塊是如何初始化的即可。本書第3部分內(nèi)容您也可以看看,或許能給您帶來意想不到的收獲。
本書配套資料
本書配套光盤中有書中各個實例的源代碼,這些源代碼都在實驗板上驗證通過。希望廣大讀者不要只是把源代碼一燒了之,而是應(yīng)該嘗試自己編寫這些軟件,因為只有經(jīng)過不斷的實踐,才能獲得真知。
為了幫助廣大讀者更快地進(jìn)入到嵌入式開發(fā)中,作者將提供與本書配套的實驗板。當(dāng)然讀者也可以根據(jù)本書提供的原理圖來自行搭建,或使用其他實驗板,依據(jù)其硬件更改相應(yīng)的實例代碼。作者在此提供一個經(jīng)過驗證的可靠的硬件平臺,是為了讓讀者能在開始時繞過硬件屏障,全心學(xué)習(xí)STM32F系列芯片功能外設(shè)。當(dāng)讀者掌握了這些技能后,依據(jù)本書中作者提供的板圖尺寸和需注意的細(xì)節(jié),完全可以設(shè)計出實現(xiàn)自己所需功能的、性能優(yōu)異的電路板。
整個開發(fā)系統(tǒng)的搭建只需要一臺PC、一個實驗板、一條串口延長線即可,不需要昂貴的仿真器或下載器。
在本書的編寫過程中,得到了家人的理解和大力支持,并得到了清華大學(xué)出版社鐘志芳老師的大力支持,師榮老師對全書進(jìn)行了辛苦的校對,在此一并表示感謝。
由于本書涉及的知識領(lǐng)域日新月異,加上作者水平有限及時間倉促,難免有差錯和不足之處,希望廣大讀者批評指正。有任何建議和意見,可以和我聯(lián)系,我的郵箱為tonda@126.com。
喻金錢
2011年1月
第1部分 基礎(chǔ)篇
第1章 開發(fā)板硬件結(jié)構(gòu)
1.1 電路原理圖
1.2 原理圖說明
1.2.1 電源電路
1.2.2 系統(tǒng)復(fù)位電路
1.2.3 時鐘電路
1.2.4 jtag接口電路
1.2.5 串口電路
1.2.6 鍵盤電路
1.2.7 led?電路
1.2.8 i2c接口電路
1.2.9 adc電路
1.2.10 usb電路
1.2.11 can電路
1.2.12 語音采集和播放電路
1.2.13 spi接口電路
1.2.14 電動機(jī)驅(qū)動板接口電路
1.3 開發(fā)板元器件布局圖
1.3.1 跳線器說明
1.3.2 硬件資源使用
第2章 編譯開發(fā)環(huán)境的建立
2.1 下載和安裝ewarm
2.2 ide界面簡介
2.3 生成一個新項目
2.3.1 建立項目文件目錄,復(fù)制公共文件
2.3.2 生成新的工作區(qū)
2.3.3 生成新項目
2.3.4 給項目添加文件
2.4 修改應(yīng)用文件
2.5 配置項目選項
2.5.1 通用選項設(shè)置
2.5.2 c/c++編譯器選項設(shè)置
2.5.3 assembler選項設(shè)置
2.5.4 output converter選項設(shè)置
2.5.5 linker選項設(shè)置
2.6 flash loader demo下載器介紹
2.7 力源stm32f的isp下載器
2.8 串口調(diào)試助手介紹
第2部分 應(yīng)用篇
第3章 通用和復(fù)用功能i/o口
3.1 概述
3.1.1 通用i/o
3.1.2 單獨的位設(shè)置或位清除
3.1.3 外部中斷/喚醒線
3.1.4 復(fù)用功能
3.1.5 軟件重新映射i/o復(fù)用功能
3.1.6 gpio鎖定機(jī)制
3.1.7 輸入配置
3.1.8 輸出配置
3.1.9 復(fù)用功能配置
3.1.10 模擬輸入配置
3.2 庫函數(shù)
3.2.1 函數(shù)gpio_init
3.2.2 函數(shù)gpio_setbits
3.2.3 函數(shù)gpio_resetbits
3.2.4 函數(shù)gpio_writebit
3.2.5 函數(shù)gpio_write
3.2.6 函數(shù)gpio_readoutputdatabit
3.2.7 函數(shù)gpio_readoutputdata
3.2.8 函數(shù)gpio_readinputdatabit
3.2.9 函數(shù)gpio_readinputdata
3.3 i/o端口的外設(shè)映射
3.3.1 將osc32_in/osc32_out作為pc14/pc15端口
3.3.2 將osc_in/osc_out引腳作為pd0/pd1端口
3.3.3 can復(fù)用功能重映射
3.3.4 jtag/swd復(fù)用功能重映射
3.3.5 adc復(fù)用功能重映射
3.3.6 定時器復(fù)用功能重映射
3.3.7 usart復(fù)用功能重映射
3.3.8 i2c1復(fù)用功能重映射
3.3.9 spi1復(fù)用功能重映射
3.4 位運算
3.4.1 移位運算
3.4.2 按位與運算
3.4.3 按位或運算
3.4.4 取反運算
3.4.5 異或運算
3.5 i/o口輸出實例1——控制led燈
3.5.1 實例要求
3.5.2 硬件基礎(chǔ)
3.5.3 軟件結(jié)構(gòu)
3.5.4 實例代碼
3.5.5 編譯下載和調(diào)試
3.6 i/o口輸出實例2——流水燈
3.6.1 實例要求
3.6.2 硬件基礎(chǔ)
3.6.3 軟件結(jié)構(gòu)
3.6.4 實例代碼
3.6.5 編譯下載和調(diào)試
3.7 i/o口輸入實例——按鍵輸入1
3.7.1 實例要求
3.7.2 硬件基礎(chǔ)
3.7.3 軟件結(jié)構(gòu)
3.7.4 實例代碼
3.7.5 編譯下載和調(diào)試
3.8 i/o口輸入實例——按鍵輸入2
……
第3部分 提高篇
附錄a iar工程轉(zhuǎn)mdk工程
附錄b arm處理器:選擇arm7還是cortex-m3