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