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