3dwoo大學簡體電腦書店
ARM Cortex-M3嵌入式原理及應用——基于STM32F103微控制器
( 簡體 字)
作者:黃克亞類別:1. -> 電腦組織與體系結構 -> 單晶片 -> STM32
出版社:清華大學出版社ARM Cortex-M3嵌入式原理及應用——基于STM32F103微控制器 3dWoo書號: 52268
詢問書籍請說出此書號!
有庫存
NT售價: 345
出版日:1/1/2020
頁數:350
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302538615 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章ARMCortexM3嵌入式系統
1.1嵌入式系統概述
1.1.1什么是嵌入式系統
1.1.2嵌入式系統和通用計算機系統比較
1.1.3嵌入式系統的特點
1.1.4嵌入式系統的應用領域
1.1.5嵌入式系統范例
1.2ARMCortexM3處理器
1.2.1ARM公司
1.2.2ARM處理器
1.3STM32微控制器
1.3.1從CortexM3內核到基于CortexM3的MCU
1.3.2STM32微控制器產品線
1.3.3STM32微控制器命名規則
1.4嵌入式系統的軟件
1.4.1無操作系統的嵌入式軟件
1.4.2帶操作系統的嵌入式軟件
1.4.3典型嵌入式操作系統
1.4.4軟件架構選擇建議
本章小結
思考與擴展
第2章STM32開發板硬件系統
2.1開發板總體概況
2.1.1開發板設計背景
2.1.2開發板總體介紹
2.2電源模塊
2.2.1電源模塊原理圖
2.2.2電源模塊工作原理
2.3核心板電路
2.3.1CPU模塊
2.3.2串口通信模塊
2.3.3外接晶振模塊
2.3.4備用電源模塊
2.3.5ADC模塊電源
2.3.6CPU濾波電路
2.3.7復位電路
2.3.8啟動設置電路
2.4I/O模塊電路
2.4.1LED指示燈模塊
2.4.2按鍵模塊


2.4.3數碼管模塊
2.4.4蜂鳴器模塊
2.4.5OLED顯示屏電路
2.5擴展模塊電路
2.5.1溫度傳感器
2.5.2紅外傳感器
2.5.3AD采樣模塊
2.5.4EEPROM存儲器
2.5.5I/O引腳外接模塊
本章小結
思考與擴展
第3章MDK軟件與工程模板創建
3.1STM32固件庫認知
3.1.1STM32固件庫概述
3.1.2STM32固件庫下載
3.1.3STM32固件庫目錄結構
3.2工程模板創建
3.2.1KeilMDKARM軟件簡介
3.2.2工程模板的創建
3.3軟件模擬仿真
本章小結
思考與擴展
第4章通用目的輸入輸出口
4.1GPIO概述及引腳命名
4.2GPIO內部結構
4.2.1輸入驅動器
4.2.2輸出驅動器
4.3GPIO工作模式
4.3.1輸入浮空
4.3.2輸入上拉
4.3.3輸入下拉
4.3.4模擬輸入
4.3.5開漏輸出
4.3.6開漏復用輸出
4.3.7推挽式輸出
4.3.8推挽式復用輸出
4.3.9工作模式選擇
4.4GPIO輸出速度
4.5復用功能重映射
4.6GPIO控制寄存器
4.7GPIO寄存器配置實例
4.8寄存器版LED燈閃爍工程
4.8.1創建寄存器版工程模板
4.8.2LED燈閃爍程序設計
4.8.3基于寄存器開發方式特點
本章小結
思考與擴展
第5章LED流水燈與SysTick定時器
5.1庫函數開發方法
5.2GPIO輸出庫函數
5.2.1函數RCC_APB2PeriphClockCmd
5.2.2函數GPIO_Init
5.2.3函數GPIO_Write
5.2.4函數GPIO_SetBits
5.2.5函數GPIO_ResetBits
5.2.6函數GPIO_WriteBit
5.3LED流水燈控制
5.4SysTick定時器
5.4.1SysTick定時器概述
5.4.2SysTick定時器寄存器
5.4.3SysTick定時器應用
本章小結
思考與擴展
第6章按鍵輸入與蜂鳴器
6.1GPIO輸入庫函數
6.1.1函數GPIO_ReadInputDataBit
6.1.2函數GPIO_ReadInputData
6.1.3函數GPIO_ReadOutputDataBit
6.1.4函數GPIO_ReadOutputData
6.2項目分析
6.3項目實施
本章小結
思考與擴展
第7章數碼管動態顯示
7.1數碼管顯示接口
7.1.1數碼管工作原理
7.1.2數碼管編碼方式
7.1.3數碼管顯示方式
7.2項目分析
7.3項目實施
7.4項目拓展
本章小結
思考與擴展
第8章中斷系統與基本應用
8.1中斷的基本概念
8.1.1中斷的定義
8.1.2中斷的應用
8.1.3中斷源與中斷屏蔽
8.1.4中斷處理過程
8.1.5中斷優先級與中斷嵌套
8.2STM32F103中斷系統
8.2.1嵌套向量中斷控制器NVIC
8.2.2STM32F103中斷優先級
8.2.3STM32F103中斷向量表
8.2.4STM32F103中斷服務函數
8.3STM32F103外部中斷/事件控制器EXTI
8.3.1EXTI內部結構
8.3.2EXTI工作原理
8.3.3EXTI主要特性
8.4STM32中斷相關庫函數
8.4.1STM32F10x的NVIC相關庫函數
8.4.2STM32F10x的EXTI相關庫函數
8.4.3EXTI中斷線GPIO引腳映射庫函數
8.5EXTI項目實例
8.5.1項目分析
8.5.2項目實施
本章小結
思考與擴展
第9章定時器與脈沖寬度調制
9.1STM32F103定時器概述
9.2基本定時器
9.2.1基本定時器簡介
9.2.2基本定時器的主要特性
9.2.3基本定時器的功能
9.2.4基本定時器寄存器
9.3通用定時器
9.3.1通用定時器簡介
9.3.2通用定時器主要功能
9.3.3通用定時器功能描述
9.3.4通用定時器工作模式
9.3.5通用定時器寄存器
9.4高級定時器
9.4.1高級定時器簡介
9.4.2高級定時器特性
9.4.3高級定時器結構
9.5定時器相關庫函數
9.5.1函數TIM_DeInit
9.5.2函數TIM_TimeBaseInit
9.5.3函數TIM_OC1Init
9.5.4函數TIM_OC2Init
9.5.5函數TIM_OC3Init
9.5.6函數TIM_OC4Init
9.5.7函數TIM_Cmd
9.5.8函數TIM_ITConfig
9.5.9函數TIM_OC1PreloadConfig
9.5.10函數TIM_OC2PreloadConfig
9.5.11函數TIM_OC3PreloadConfig
9.5.12函數TIM_OC4PreloadConfig
9.5.13函數TIM_GetFlagStatus
9.5.14函數TIM_ClearFlag
9.5.15函數TIM_GetITStatus
9.5.16函數TIM_ClearITPendingBit
9.5.17函數TIM_SetCompare1
9.5.18函數TIM_SetCompare2
9.5.19函數TIM_SetCompare3
9.5.20函數TIM_SetCompare4
9.6項目實例
9.6.1定時器項目
9.6.2PWM項目
本章小結
思考與擴展
第10章串行通信接口USART
10.1數據通信基本概念
10.1.1并行通信與串行通信
10.1.2異步通信與同步通信
10.1.3串行通信的制式
10.1.4串行通信的校驗
10.1.5串行通信的波特率
10.2SM32F103的USART工作原理
10.2.1USART介紹
10.2.2USART主要特性
10.2.3USART功能概述
10.2.4USART通信時序
10.2.5USART中斷
10.2.6USART相關寄存器
10.3USART相關庫函數
10.3.1函數USART_DeInit
10.3.2函數USART_Init
10.3.3函數USART_Cmd
10.3.4函數USART_SendData
10.3.5函數USART_ReceiveData
10.3.6函數USART_GetFlagStatus
10.3.7函數USART_ClearFlag
10.3.8函數USART_ITConfig
10.3.9函數USART_GetITStatus
10.3.10函數USART_ClearITPendingBit
10.3.11函數USART_DMACmd
10.4項目實例
10.4.1項目分析
10.4.2項目實施
本章小結
思考與擴展
第11章SPI與OLED顯示屏
11.1SPI通信原理
11.1.1SPI介紹
11.1.2SPI互連
11.2STM32F103的SPI工作原理
11.2.1SPI主要特征
11.2.2SPI內部結構
11.2.3時鐘信號的相位和極性
11.2.4數據幀格式
11.2.5配置SPI為主模式
11.2.6配置SPI為從模式
11.3OLED顯示屏
11.3.1OLED簡介
11.3.2開發板OLED顯示屏
11.3.3OLED顯示屏接口
11.4SPI庫函數
11.4.1函數SPI_I2S_DeInit
11.4.2函數SPI_Init
11.4.3函數SPI_Cmd
11.4.4函數SPI_I2S_SendData
11.4.5函數SPI_I2S_ReceiveData
11.4.6函數SPI_I2S_ITConfig
11.4.7函數SPI_I2S_GetITStatus
11.4.8函數SPI_I2S_ClearFlag
11.5項目實例
11.5.1項目分析
11.5.2項目實施
本章小結
思考與擴展
第12章模擬數字轉換器
12.1ADC概述
12.1.1ADC基本原理
12.1.2ADC性能參數
12.1.3ADC主要類型
12.2STM32F103的ADC工作原理
12.2.1主要特征
12.2.2內部結構
12.2.3通道及分組
12.2.4時序圖
12.2.5數據對齊
12.2.6校準
12.2.7轉換時間
12.2.8轉換模式
12.2.9外部觸發轉換
12.2.10中斷和DMA請求
12.3ADC相關庫函數
12.3.1函數ADC_DeInit
12.3.2函數ADC_Init
12.3.3函數ADC_RegularChannelConfig
12.3.4函數ADC_InjectedChannleConfig
12.3.5函數ADC_Cmd
12.3.6函數ADC_ResetCalibration
12.3.7函數ADC_GetResetCalibrationStatus
12.3.8函數ADC_StartCalibration
12.3.9函數ADC_GetCalibrationStatus
12.3.10函數ADC_SoftwareStartConvCmd
12.3.11函數ADC_GetConversionValue
12.3.12函數ADC_GetFlagStatus
12.3.13函數ADC_DMACmd
12.4項目實例
12.4.1項目分析
12.4.2項目實施
本章小結
思考與擴展
第13章直接存儲器訪問
13.1DMA的基本概念
13.1.1DMA由來
13.1.2DMA定義
13.1.3DMA傳輸過程
13.1.4DMA優點
13.2STM32F103的DMA工作原理
13.2.1STM32F103的DMA主要特性
13.2.2STM32F103的DMA內部結構
13.2.3STM32F103的DMA通道
13.2.4STM32F103的DMA優先級
13.2.5STM32F103的DMA傳輸模式
13.2.6STM32F103的DMA中斷
13.3DMA相關庫函數
13.3.1函數DMA_DeInit
13.3.2函數DMA_Init
13.3.3函數DMA_GetCurrDataCounte
13.3.4函數DMA_Cmd
13.3.5函數DMA_GetFlagStatus
13.3.6函數DMA_ClearFlag
13.3.7函數DMA_ITConfig
13.3.8函數DMA_GetITStatus
13.4項目實例
13.4.1項目分析
13.4.2項目實施
本章小結
思考與擴展
第14章I2C接口與EEPROM存儲器
14.1I2C通信原理
14.1.1I2C串行總線概述
14.1.2I2C總線的數據傳送
14.2STM32F103的I2C接口
14.2.1STM32F103的I2C主要特性
14.2.2STM32F103的I2C內部結構
14.2.3STM32F103的模式選擇
14.3STM32F103的I2C相關庫函數
14.3.1函數I2C_DeInit
14.3.2函數I2C_Init
14.3.3函數I2C_Cmd
14.3.4函數I2C_GenerateSTART
14.3.5函數I2C_GenerateSTOP
14.3.6函數I2C_Send7bitAddress
14.3.7函數I2C_SendData
14.3.8函數I2C_ReceiveData
14.4項目實例
14.4.1模擬I2C時序要求
14.4.2模擬I2C函數
14.4.3EEPROM芯片24C02
14.4.4模擬I2C訪問24C02項目分析
14.4.5模擬I2C訪問24C02項目實施
本章小結
思考與擴展

第15章RTC時鐘與BKP寄存器
15.1RTC時鐘
15.1.1RTC簡介
15.1.2RTC主要特性
15.1.3RTC內部結構
15.1.4RTC復位過程
15.2備份寄存器(BKP)
15.2.1BKP簡介
15.2.2BKP特性
15.2.3BKP侵入檢測
15.3RTC時鐘的操作
15.3.1RTC的初始化
15.3.2RTC時間寫入初始化
15.4RTC與BKP相關庫函數
15.4.1函數PWR_BackupAccessCmd
15.4.2函數BKP_DeInit()
15.4.3函數RCC_LSEConfig
15.4.4函數RCC_GetFlagStatus
15.4.5函數RCC_RTCCLKConfig
15.4.6函數RCC_RTCCLKCmd
15.4.7函數RTC_WaitForSynchro
15.4.8函數RTC_WaitForLastTask
15.4.9函數RTC_ITConfig
15.4.10函數RTC_SetPrescaler
15.4.11函數RTC_SetCounter
15.4.12函數RTC_GetCounter()
15.4.13函數BKP_ReadBackupRegister
15.4.14函數BKP_WriteBackupRegister
15.4.15函數RCC_ClearFlag
15.5項目實例
15.5.1項目分析
15.5.2項目實施
15.5.3項目調試
本章小結
思考與擴展
附錄AASCII碼表
附錄BSTM32F103微控器小容量產品系列引腳定義表
附錄CSTM32F103微控器中等容量產品系列引腳定義表
附錄DSTM32F103微控器大容量產品系列引腳定義表
參考文獻
本書旨在傳承51經典,發揚ARM長處,助推MCU升級; 以學生認知過程為導向組織教材內容,采取項目引領,全案例講解的方式,著重培養學生實踐應用能力。本書詳細闡述了基于ARM CortexM3內核的STM32F103微控制器嵌入式系統硬件設計方法和軟件開發技術。
全書共有15章,劃分為3部分: 第1部分(第1~3章)為系統平臺模塊,講述嵌入式系統定義、開發板硬件平臺和工程模板創建; 第2部分(第4~9章)為基本外設模塊,分別對STM32嵌入式系統最常用外設模塊進行介紹,包括GPIO、中斷、定時器、PWM和嵌入式系統接口技術; 第3部分(第10~15章)為擴展外設模塊,分別對STM32嵌入式系統高級外設模塊進行介紹,包括USART、SPI、OLED、ADC、IIC、EEPROM和RTC等。
本書適合作為高等院校計算機、自動化、電子信息、機電一體化、物聯網等專業高年級本科生或研究生嵌入式相關課程的教材,同時可供從事嵌入式開發的技術和研究人員參考。
“青山遮不住,畢竟東流去”,雖然我們對經典的8位單片機(如MCS51)、16位單片機(如MSP430)積累了大量的技術資料,用起來得心應手。但是單片機復雜的指令、較低的主頻、有限的存儲空間、極少的片上外設,使其在面對復雜應用時,捉襟見肘,難以勝任。雖然8位、16位單片機的應用不會就此結束,但可以肯定的是32位處理器時代已經到來,32位處理器性能得到了顯著提升,片上資源更加豐富,功能也越來越復雜和完善。
選題背景
在這個大環境下,ARM CortexM3處理器誕生了!由于采用了最新的設計技術,它的內核邏輯門數更低,性能卻更強。許多曾經只能求助于高級32位處理器或DSP的軟件設計,都能在CortexM3上運行得更快。
基于ARM的嵌入式系統因為功能復雜、芯片系列多、開發模式各異,使其不僅難教而且難學。但是由于各行各業對控制器能力的要求“得寸進尺”,而32位嵌入式系統性價比不斷提高,促使筆者下定決心轉型,經過幾年的努力,筆者成功轉型ARM嵌入式開發。
回想學習和教學過程,有幾點經驗要和大家分享: 一是要選擇一個合適的內核,ARM嵌入式處理器無疑是主流產品,市場占有率相當高; 二是要選擇合適的基于ARM內核微控制器,目前意法半導體公司(ST Microelectronics)推出的32位CortexM內核的MCU產品市場占有率很高,技術資料全面,官方固件庫易學易用(基于上述兩點,本書主要講述的是目前被廣泛使用的基于CortexM3內核的STM32F103微控制器); 三是要選擇一本合適的教材,筆者認為一本好的嵌入式教材應該具有由淺入深,循序漸進,理論夠用,注重實踐,共性和個性兼顧等特點,既能較為系統地介紹嵌入式系統的基本概念和原理,又能指導初學者在實際軟硬件環境中進行開發實踐。
主要內容
針對上述情況,筆者根據多年的嵌入式系統教學和開發經驗,試圖做到內容循序漸進,理論與實踐并重,共性與個性兼顧,將嵌入式系統的理論知識和基于ARM CortexM3內核的STM32F103微控制器的實際開發相結合,編寫了本書。
全書共有15章,劃分為3部分。
第1部分(第1~3章)為系統平臺模塊。第1章介紹了嵌入式系統定義、ARM內核,以及基于ARM CortexM3內核的STM32微控制器。第2章對STM32嵌入式開發板硬件平臺各模塊進行詳細介紹。第3章介紹Keil MDK軟件并進行工程模板創建。
第2部分(第4~9章)為基本外設模塊,分別對STM32嵌入式系統最常用外設模塊進行介紹。第4章講解通用目的輸入輸出口。第5章講解LED流水燈與SysTick定時器。第6章講解按鍵輸入與蜂鳴器。第7章講解數碼管動態顯示。第8章講解中斷系統與基本應用。第9章講解定時器與脈沖寬度調制。
第3部分(第10~15章)為擴展外設模塊,分別對STM32嵌入式系統高級外設模塊進行介紹。第10章講解串行通信接口USART。第11章講解SPI與OLED顯示屏。第12章講解模擬數字轉換器。第13章講解直接存儲器訪問。第14章講解I2C接口與EEPROM存儲器。第15章講解RTC時鐘與BKP寄存器。
無論是基本外設模塊,還是擴展外設模塊,從第4章開始到第15章結束,每一章都先對模塊所涉及的理論知識進行講解,然后引入項目實例,給出項目實施的具體步驟,項目可以在課堂上完成。整個教學理論與實踐一體,學中做,做中學。
本書的特色和價值
(1) 以學生認知過程為導向設計教材邏輯結構、組織教材章節內容。全書先硬件后軟件,由淺入深; 遵循理論夠用、重在實踐、容易上手的原則,培養學習興趣,激發學習動力。
(2) 采取項目引領,任務驅動的方式,強調教、學、做一體,注重學生工程實踐能力的培養。對每一個典型外設模塊,在簡明扼要闡述原理的基礎上,圍繞其應用,均以完整案例的形式討論其設計精髓,并給出完整的工程案例。
(3) 傳承51經典,發揚ARM長處,助推MCU升級。ARM嵌入式系統實際上是8位單片機的升級擴展,但是其高性能必然帶來系統復雜度的大幅提高,如果能借助8位單片機理念、方法和案例的共性,有助于提升讀者學習興趣,使其輕松入門嵌入式開發。
本書配套學習資源,為便于提高學習效率,筆者精心制作了程序代碼、學習素材、教材課件和教學大綱,掃碼即可獲取。


程序代碼

學習素材

教材課件

教學大綱

致謝
在本書的撰寫過程中參閱了許多資料,在此對所參考資料的作者表示誠摯的感謝。在編寫過程中還引用了互聯網上最新資訊及報道,在此向原作者和刊發機構表示真摯的謝意,并對不能一一注明來源的作者深表歉意。對于收集到的共享資料沒有標明出處或找不到出處的,以及對有些資料進行加工、修改后納入本書的,在此鄭重聲明,本書內容僅用于教學,其著作權屬于原作者,并向他們表示致敬和感謝。
在本書的編寫過程中得到了家人的理解和幫助,并且一直得到清華大學出版社梁穎、盛東亮、鐘志芳等各位老師的關心和大力支持,清華大學出版社的工作人員也付出了辛勤的勞動,在此謹向支持和關心本書編寫的家人、同仁和朋友一并致謝。
由于嵌入式技術的發展日新月異,加之筆者水平有限及時間倉促,書中難免有疏漏和不足之處,懇請廣大讀者批評指正。
作者

2019年10月
pagetop