內容簡介
本書以引導讀者快速全麵掌握STM32F103x係列嵌入式微控製器為目的,由淺入深地帶領讀者走進嵌入式世界。本書共分為兩部分:第一部分以嵌入式基本概念為平颱,介紹嵌入式微控製器各模塊的使用方法、庫函數,從簡單的單模塊知識到復雜的多模塊應用,涵蓋Cortex-M3體係結構、開發平颱、復位和時鍾控製器、NVIC和EXTI模塊、GPIO模塊、FSMC模塊、模數轉換器模塊、通用定時器模塊、通信模塊等常用功能模塊。第二部分主要介紹μC/OS-Ⅱ操作係統的概念與應用,講解μC/OS-Ⅱ操作係統的內核、常用的係統服務等知識。本書注重理論知識和實踐能力的結閤,推薦初學者使用庫函數設計嵌入式程序以避免復雜的寄存器操作。
作者簡介
桂珺,男,瀋陽工業大學教師,全國高等學校電子信息類專業教學指導委員會,協作委員。曾獲得2009年全國大學生電子設計競賽遼寜省優秀指導教師。
目錄
目 錄
第1章 嵌入式係統概述 (1)
1.1 嵌入式係統簡介 (1)
1.1.1 嵌入式係統定義 (1)
1.1.2 嵌入式係統的特點 (2)
1.1.3 嵌入式係統的應用領域 (3)
1.2 嵌入式係統的組成 (4)
1.3 嵌入式處理器 (5)
1.3.1 嵌入式處理器的分類 (5)
1.3.2 嵌入式處理器的選型原則 (6)
1.4 嵌入式操作係統 (7)
1.5 ARM處理器簡介 (10)
1.5.1 ARM處理器的進化過程 (10)
1.5.2 ARM處理器的開發工具 (12)
1.6 嵌入式係統的設計方法 (13)
1.6.1 嵌入式係統的總體結構 (13)
1.6.2 嵌入式係統設計過程 (14)
1.6.3 嵌入式係統的硬/軟件協同設計技術 (15)
思考與練習 (16)
第2章 ARM Cortex-M3內部結構 (17)
2.1 Cortex-M3簡介 (17)
2.2 指令集 (20)
2.3 流水綫 (21)
2.4 寄存器組 (22)
2.5 操作模式和特權等級 (25)
2.6 異常、中斷和嚮量錶 (26)
2.7 存儲器映射 (29)
2.8 調試支持 (30)
思考與練習 (30)
第3章 STM32F1係列微控製器簡介 (31)
3.1 基於Cortex-M3內核的STM32F1微控製器概述 (31)
3.2 STM32F1微控製器的係統結構 (33)
3.3 STM32F1微控製器的存儲器結構與映射 (34)
3.4 STM32F1微控製器的嵌入式閃存 (36)
3.5 STM32F1微控製器的啓動配置 (37)
3.6 STM32F1微控製器的電源控製 (38)
3.7 STM32F1微控製器的復位 (39)
3.8 STM32F1微控製器的調試端口 (41)
思考與練習 (41)
第4章 建立MDK-ARM5.0開發平颱 (42)
4.1 MDK-ARM簡介 (42)
4.2 CMSIS標準簡介 (44)
4.3 STM32標準外設庫 (45)
4.4 安裝MDK-ARM5.0 (49)
4.5 創建工程模闆 (52)
思考與練習 (57)
第5章 復位與時鍾控製器 (58)
5.1 STM32F103x微控製器時鍾模塊簡介 (58)
5.1.1 HSE時鍾 (60)
5.1.2 HSI時鍾 (60)
5.1.3 PLL (61)
5.1.4 LSE時鍾 (61)
5.1.5 LSI時鍾 (61)
5.1.6 係統時鍾的選擇 (62)
5.1.7 時鍾安全係統 (62)
5.1.8 RTC時鍾 (62)
5.1.9 看門狗時鍾 (62)
5.1.10 時鍾輸齣 (62)
5.1.11 片上外設時鍾 (63)
5.2 RCC庫函數說明 (63)
5.2.1 庫函數RCC_DeInit (65)
5.2.2 庫函數RCC_HSEConfig (65)
5.2.3 庫函數RCC_WaitForHSEStartUp (65)
5.2.4 庫函數RCC_AdjustHSICalibrationValue (66)
5.2.5 庫函數RCC_HSICmd (66)
5.2.6 庫函數RCC_PLLConfig (66)
5.2.7 庫函數RCC_PLLCmd (67)
5.2.8 庫函數RCC_SYSCLKConfig (67)
5.2.9 庫函數RCC_GetSYSCLKSource (68)
5.2.10 庫函數RCC_HCLKConfig (68)
5.2.11 庫函數RCC_PCLK1Config (69)
5.2.12 庫函數RCC_PCLK2Config (69)
5.2.13 庫函數RCC_ITConfig (70)
5.2.14 庫函數RCC_USBCLKConfig (70)
5.2.15 庫函數RCC_ADCCLKConfig (70)
5.2.16 庫函數RCC_LSEConfig (71)
5.2.17 庫函數RCC_LSICmd (71)
5.2.18 庫函數RCC_RTCCLKConfig (72)
5.2.19 庫函數RCC_RTCCLKCmd (72)
5.2.20 庫函數RCC_GetClocksFreq (72)
5.2.21 庫函數RCC_AHBPeriphClockCmd (73)
5.2.22 庫函數RCC_APB2PeriphClockCmd (73)
5.2.23 庫函數RCC_APB1PeriphClockCmd (74)
5.2.24 庫函數RCC_APB2PeriphResetCmd (75)
5.2.25 庫函數RCC_APB1PeriphResetCmd (75)
5.2.26 庫函數RCC_BackupResetCmd (75)
5.2.27 庫函數RCC_ClockSecuritySystemCmd (76)
5.2.28 庫函數RCC_MCOConfig (76)
5.2.29 庫函數RCC_GetFlagStatus (76)
5.2.30 庫函數RCC_ClearFlag (77)
5.2.31 庫函數RCC_GetITStatus (77)
5.2.32 庫函數RCC_ClearITPendingBit (78)
5.3 使用RCC庫函數建立係統時鍾 (78)
5.3.1 建立係統時鍾的一般流程 (78)
5.3.2 實例 (79)
思考與練習 (79)
第6章 I/O端口模塊 (81)
6.1 概述 (81)
6.2 GPIO庫函數說明 (83)
6.2.1 庫函數GPIO_DeInit (84)
6.2.2 庫函數GPIO_AFIODeInit (84)
6.2.3 庫函數GPIO_Init (84)
6.2.4 庫函數GPIO_StructInit (86)
6.2.5 庫函數GPIO_ReadInputDataBit (86)
6.2.6 庫函數GPIO_ReadInputData (87)
6.2.7 庫函數GPIO_ReadOutputDataBit (87)
6.2.8 庫函數GPIO_ReadOutputData (87)
6.2.9 庫函數GPIO_SetBits (88)
6.2.10 庫函數GPIO_ResetBits (88)
6.2.11 庫函數GPIO_WriteBit (88)
6.2.12 庫函數GPIO_Write (88)
6.2.13 庫函數GPIO_PinLockConfig (89)
6.2.14 庫函數GPIO_EventOutputConfig (89)
6.2.15 庫函數GPIO_EventOutputCmd (90)
6.2.16 庫函數GPIO_PinRemapConfig (90)
6.2.17 庫函數GPIO_EXTILineConfig (91)
思考與練習 (91)
第7章 中斷和事件 (92)
7.1 嵌套嚮量中斷控製器 (92)
7.2 外部中斷/事件控製器 (95)
7.3 NVIC庫函數說明 (96)
7.3.1 庫函數NVIC_PriorityGroupConfig (97)
7.3.2 庫函數NVIC_Init (97)
7.3.3 庫函數NVIC_SetVectorTable (99)
7.3.4 庫函數NVIC_SystemLPConfig (100)
7.4 EXTI庫函數說明 (100)
7.4.1 庫函數EXTI_DeInit (101)
7.4.2 庫函數EXTI_Init (101)
7.4.3 庫函數EXTI_StructInit (102)
7.4.4 庫函數EXTI_GenerateSWInterrupt (103)
7.4.5 庫函數EXTI_GetFlagStatus (103)
7.4.6 庫函數EXTI_ClearFlag (103)
7.4.7 庫函數EXTI_GetITStatus (103)
7.4.8 庫函數EXTI_ClearITPendingBit (104)
思考與練習 (104)
第8章 係統時基定時器 (105)
8.1 概述 (105)
8.2 SysTick庫函數說明 (106)
思考與練習 (106)
第9章 實時時鍾和備份寄存器 (107)
9.1 實時時鍾簡介 (107)
9.2 後備寄存器簡介 (111)
9.3 RTC庫函數說明 (112)
9.3.1 庫函數RTC_ITConfig (112)
9.3.2 庫函數RTC_EnterConfigMode (113)
9.3.3 庫函數RTC_ExitConfigMode (113)
9.3.4 庫函數RTC_GetCounter (113)
9.3.5 庫函數RTC_SetCounter (113)
9.3.6 庫函數RTC_SetPrescaler (114)
9.3.7 庫函數RTC_SetAlarm (114)
9.3.8 庫函數RTC_WaitForLastTask (114)
9.3.9 庫函數RTC_WaitForSynchro (114)
9.3.10 庫函數RTC_GetFlagStatus (115)
9.3.11 庫函數RTC_ClearFlag (115)
9.3.12 庫函數RTC_GetITStatus (115)
9.3.13 庫函數RTC_ClearITPendingBit (116)
9.4 BKP庫函數說明 (116)
9.4.1 庫函數BKP_DeInit (116)
9.4.2 庫函數BKP_Init (117)
9.4.3 庫函數BKP_TamperPinCmd (117)
9.4.4 庫函數BKP_ITConfig (117)
9.4.5 庫函數BKP_RTCOutputConfig (117)
9.4.6 庫函數BKP_SetRTCCalibrationValue (118)
9.4.7 庫函數BKP_WriteBackupRegister (118)
9.4.8 庫函數BKP_ReadBackupRegister (119)
9.4.9 庫函數BKP_GetFlagStatus (119)
9.4.10 庫函數BKP_ClearFlag (119)
9.4.11 庫函數BKP_GetITStatus (119)
9.4.12 庫函數BKP_ClearITPendingBit (120)
思考與練習 (120)
第10章 嵌入式閃存 (121)
10.1 嵌入式閃存簡介 (121)
10.1.1 嵌入式閃存的組織方式 (121)
10.1.2 嵌入式閃存的讀操作 (122)
10.1.3 嵌入式編程和擦除控製器 (123)
10.2 FLASH庫函數說明 (128)
10.2.1 庫函數FLASH_SetLatency (129)
10.2.2 庫函數FLASH_HalfCycleAccessCmd (129)
10.2.3 庫函數FLASH_PrefetchBufferCmd (130)
10.2.4 庫函數FLASH_Unlock (130)
10.2.5 庫函數FLASH_Lock (130)
10.2.6 庫函數FLASH_ErasePage (130)
10.2.7 庫函數FLASH_EraseAllPages (131)
10.2.8 庫函數FLASH_EraseOptionBytes (131)
10.2.9 庫函數FLASH_ProgramWord (131)
10.2.10 庫函數FLASH_ProgramHalfWord (131)
10.2.11 庫函數FLASH_ProgramOptionByteData (132)
10.2.12 庫函數FLASH_EnableWriteProtection (132)
10.2.13 庫函數FLASH_ReadOutProtection (133)
10.2.14 庫函數FLASH_UserOptionByteConfig (133)
10.2.15 庫函數FLASH_GetUserOptionByte (133)
10.2.16 庫函數FLASH_GetWriteProtectionOptionByte (134)
10.2.17 庫函數FLASH_GetReadOutProtectionStatus (134)
10.2.18 庫函數FLASH_GetPrefetchBufferStatus (134)
10.2.19 庫函數FLASH_ITConfig (134)
10.2.20 庫函數FLASH_GetFlagStatus (135)
10.2.21 庫函數FLASH_ClearFlag (135)
10.2.22 庫函數FLASH_GetStatus (135)
10.2.23 庫函數FLASH_WaitForLastOperation (136)
思考與練習 (136)
第11章 USART串口模塊 (137)
11.1 USART串口簡介 (137)
11.1.1 功能概述 (138)
11.1.2 發送器 (139)
11.1.3 接收器 (140)
11.1.4 産生分數比特率 (141)
11.1.5 多處理器通信 (142)
11.1.6 LIN模式 (143)
11.1.7 USART同步模式 (143)
11.1.8 單綫半雙工 (144)
11.1.9 智能卡模式 (145)
11.1.10 紅外模式 (146)
11.1.11 USART的中斷請求 (147)
11.2 USART庫函數說明 (148)
11.2.1 庫函數USART_DeInit (149)
11.2.2 庫函數USART_Init (149)
11.2.3 庫函數USART_StructInit (151)
11.2.4 庫函數USART_Cmd (151)
11.2.5 庫函數USART_ITConfig (151)
11.2.6 庫函數USART_DMACmd (152)
11.2.7 庫函數USART_SetAddress (152)
11.2.8 庫函數USART_WakeUpConfig (152)
11.2.9 庫函數USART_ReceiverWakeUpCmd (153)
11.2.10 庫函數USART_LINBreakDetectiLengthConfig (153)
11.2.11 庫函數USART_LINCmd (153)
11.2.12 庫函數USART_SendData (154)
11.2.13 庫函數USART_ReceiveData (154)
11.2.14 庫函數USART_SendBreak (154)
11.2.15 庫函數USART_SetGuardTime (154)
11.2.16 庫函數USART_SetPrescaler (155)
11.2.17 庫函數USART_SmartCardCmd (155)
11.2.18 庫函數USART_SmartCardNackCmd (155)
11.2.19 庫函數USART_HalfDuplexCmd (155)
11.2.20 庫函數USART_IrDAConfig (156)
11.2.21 庫函數USART_IrDACmd (156)
11.2.22 庫函數USART_GetFlagStatus (156)
11.2.23 庫函數USART_ClearFlag (157)
11.2.24 庫函數USART_GetITStatus (157)
11.2.25 庫函數USART_ClearITPendingBit (158)
思考與練習 (158)
第12章 SPI模塊 (159)
12.1 SPI簡介 (159)
12.1.1 引腳概述 (160)
12.1.2 數據傳輸模式 (161)
12.1.3 SPI從模式 (162)
12.1.4 SPI主模式 (163)
12.1.5 狀態標誌 (163)
12.1.6 利用DMA的SPI通信 (164)
12.1.7 SPI中斷 (164)
12.2 SPI庫函數說明 (164)
12.2.1 庫函數SPI_DeInit (165)
12.2.2 庫函數SPI_Init (165)
12.2.3 庫函數SPI_StructInit (167)
12.2.4 庫函數SPI_Cmd (167)
12.2.5 庫函數SPI_I2S_ITConfig (168)
12.2.6 庫函數SPI_I2S_DMACmd (168)
12.2.7 庫函數SPI_I2S_SendData (168)
12.2.8 庫函數SPI_I2S_ReceiveData (169)
12.2.9 庫函數SPI_NSSInternalSoftwareConfig (169)
12.2.10 庫函數SPI_SSOutputCmd (169)
12.2.11 庫函數SPI_DataSizeConfig (170)
12.2.12 庫函數SPI_TransmitCRC (170)
12.2.13 庫函數SPI_CalculateCRC (170)
12.2.14 庫函數SPI_GetCRC (170)
12.2.15 庫函數SPI_GetCRCPolynomial (171)
12.
STM32F103x微控製器與μC/OS-Ⅱ操作係統 下載 mobi epub pdf txt 電子書