圖書目錄
第1章ARMCortexM3嵌入式系統
1.1嵌入式系統概述
1.1.1什麼是嵌入式系統
1.1.2嵌入式系統和通用計算機系統比較
1.1.3嵌入式系統的特點
1.1.4嵌入式系統的套用領域
1.1.5嵌入式系統範例
1.2ARMCortexM3處理器
1.2.1ARM公司
1.2.2ARM處理器
1.3STM32微控制器
1.3.1從CortexM3核心到基於CortexM3的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.1KeilMDKARM軟體簡介
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.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 CortexM3核心的STM32F103微控制器嵌入式系統硬體設計方法和軟體開發技術。全書共有15章,劃分為3部分: 第1部分(第1~3章)為系統平台模組,講述嵌入式系統定義、開發板硬體平台和工程模板創建;
第2部分(第4~9章)為基本外設模組,分別對STM32嵌入式系統最常用外設模組進行介紹,包括GPIO、中斷、定時器、PWM和嵌入式系統接口技術; 第3部分(第10~15章)為擴展外設模組,分別對STM32嵌入式系統高級外設模組進行介紹,包括USART、SPI、OLED、ADC、IIC、EEPROM和RTC等。