![]() ![]() |
STM32F103x微控制器與μC/OS-Ⅱ操作系統(tǒng) ![]()
本教材分為兩部分主要內(nèi)容。第一部分以嵌入式基本概念為平臺(tái)、每章由淺入深的介紹一個(gè)嵌入式微控制器各模塊的使用方法、例程、參考資料,從簡(jiǎn)單的單模塊知識(shí)到復(fù)雜的多模塊應(yīng)用實(shí)踐。第二部分主要講授μC/OS-Ⅱ操作系統(tǒng)的概念與應(yīng)用,培養(yǎng)學(xué)生多任務(wù)程序的設(shè)計(jì)能力。
桂珺,男,沈陽(yáng)工業(yè)大學(xué)教師,全國(guó)高等學(xué)校電子信息類(lèi)專業(yè)教學(xué)指導(dǎo)委員會(huì),協(xié)作委員。曾獲得2009年全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽遼寧省優(yōu)秀指導(dǎo)教師。
目 錄
第1章 嵌入式系統(tǒng)概述 (1) 1.1 嵌入式系統(tǒng)簡(jiǎn)介 (1) 1.1.1 嵌入式系統(tǒng)定義 (1) 1.1.2 嵌入式系統(tǒng)的特點(diǎn) (2) 1.1.3 嵌入式系統(tǒng)的應(yīng)用領(lǐng)域 (3) 1.2 嵌入式系統(tǒng)的組成 (4) 1.3 嵌入式處理器 (5) 1.3.1 嵌入式處理器的分類(lèi) (5) 1.3.2 嵌入式處理器的選型原則 (6) 1.4 嵌入式操作系統(tǒng) (7) 1.5 ARM處理器簡(jiǎn)介 (10) 1.5.1 ARM處理器的進(jìn)化過(guò)程 (10) 1.5.2 ARM處理器的開(kāi)發(fā)工具 (12) 1.6 嵌入式系統(tǒng)的設(shè)計(jì)方法 (13) 1.6.1 嵌入式系統(tǒng)的總體結(jié)構(gòu) (13) 1.6.2 嵌入式系統(tǒng)設(shè)計(jì)過(guò)程 (14) 1.6.3 嵌入式系統(tǒng)的硬/軟件協(xié)同設(shè)計(jì)技術(shù) (15) 思考與練習(xí) (16) 第2章 ARM Cortex-M3內(nèi)部結(jié)構(gòu) (17) 2.1 Cortex-M3簡(jiǎn)介 (17) 2.2 指令集 (20) 2.3 流水線 (21) 2.4 寄存器組 (22) 2.5 操作模式和特權(quán)等級(jí) (25) 2.6 異常、中斷和向量表 (26) 2.7 存儲(chǔ)器映射 (29) 2.8 調(diào)試支持 (30) 思考與練習(xí) (30) 第3章 STM32F1系列微控制器簡(jiǎn)介 (31) 3.1 基于Cortex-M3內(nèi)核的STM32F1微控制器概述 (31) 3.2 STM32F1微控制器的系統(tǒng)結(jié)構(gòu) (33) 3.3 STM32F1微控制器的存儲(chǔ)器結(jié)構(gòu)與映射 (34) 3.4 STM32F1微控制器的嵌入式閃存 (36) 3.5 STM32F1微控制器的啟動(dòng)配置 (37) 3.6 STM32F1微控制器的電源控制 (38) 3.7 STM32F1微控制器的復(fù)位 (39) 3.8 STM32F1微控制器的調(diào)試端口 (41) 思考與練習(xí) (41) 第4章 建立MDK-ARM5.0開(kāi)發(fā)平臺(tái) (42) 4.1 MDK-ARM簡(jiǎn)介 (42) 4.2 CMSIS標(biāo)準(zhǔn)簡(jiǎn)介 (44) 4.3 STM32標(biāo)準(zhǔn)外設(shè)庫(kù) (45) 4.4 安裝MDK-ARM5.0 (49) 4.5 創(chuàng)建工程模板 (52) 思考與練習(xí) (57) 第5章 復(fù)位與時(shí)鐘控制器 (58) 5.1 STM32F103x微控制器時(shí)鐘模塊簡(jiǎn)介 (58) 5.1.1 HSE時(shí)鐘 (60) 5.1.2 HSI時(shí)鐘 (60) 5.1.3 PLL (61) 5.1.4 LSE時(shí)鐘 (61) 5.1.5 LSI時(shí)鐘 (61) 5.1.6 系統(tǒng)時(shí)鐘的選擇 (62) 5.1.7 時(shí)鐘安全系統(tǒng) (62) 5.1.8 RTC時(shí)鐘 (62) 5.1.9 看門(mén)狗時(shí)鐘 (62) 5.1.10 時(shí)鐘輸出 (62) 5.1.11 片上外設(shè)時(shí)鐘 (63) 5.2 RCC庫(kù)函數(shù)說(shuō)明 (63) 5.2.1 庫(kù)函數(shù)RCC_DeInit (65) 5.2.2 庫(kù)函數(shù)RCC_HSEConfig (65) 5.2.3 庫(kù)函數(shù)RCC_WaitForHSEStartUp (65) 5.2.4 庫(kù)函數(shù)RCC_AdjustHSICalibrationValue (66) 5.2.5 庫(kù)函數(shù)RCC_HSICmd (66) 5.2.6 庫(kù)函數(shù)RCC_PLLConfig (66) 5.2.7 庫(kù)函數(shù)RCC_PLLCmd (67) 5.2.8 庫(kù)函數(shù)RCC_SYSCLKConfig (67) 5.2.9 庫(kù)函數(shù)RCC_GetSYSCLKSource (68) 5.2.10 庫(kù)函數(shù)RCC_HCLKConfig (68) 5.2.11 庫(kù)函數(shù)RCC_PCLK1Config (69) 5.2.12 庫(kù)函數(shù)RCC_PCLK2Config (69) 5.2.13 庫(kù)函數(shù)RCC_ITConfig (70) 5.2.14 庫(kù)函數(shù)RCC_USBCLKConfig (70) 5.2.15 庫(kù)函數(shù)RCC_ADCCLKConfig (70) 5.2.16 庫(kù)函數(shù)RCC_LSEConfig (71) 5.2.17 庫(kù)函數(shù)RCC_LSICmd (71) 5.2.18 庫(kù)函數(shù)RCC_RTCCLKConfig (72) 5.2.19 庫(kù)函數(shù)RCC_RTCCLKCmd (72) 5.2.20 庫(kù)函數(shù)RCC_GetClocksFreq (72) 5.2.21 庫(kù)函數(shù)RCC_AHBPeriphClockCmd (73) 5.2.22 庫(kù)函數(shù)RCC_APB2PeriphClockCmd (73) 5.2.23 庫(kù)函數(shù)RCC_APB1PeriphClockCmd (74) 5.2.24 庫(kù)函數(shù)RCC_APB2PeriphResetCmd (75) 5.2.25 庫(kù)函數(shù)RCC_APB1PeriphResetCmd (75) 5.2.26 庫(kù)函數(shù)RCC_BackupResetCmd (75) 5.2.27 庫(kù)函數(shù)RCC_ClockSecuritySystemCmd (76) 5.2.28 庫(kù)函數(shù)RCC_MCOConfig (76) 5.2.29 庫(kù)函數(shù)RCC_GetFlagStatus (76) 5.2.30 庫(kù)函數(shù)RCC_ClearFlag (77) 5.2.31 庫(kù)函數(shù)RCC_GetITStatus (77) 5.2.32 庫(kù)函數(shù)RCC_ClearITPendingBit (78) 5.3 使用RCC庫(kù)函數(shù)建立系統(tǒng)時(shí)鐘 (78) 5.3.1 建立系統(tǒng)時(shí)鐘的一般流程 (78) 5.3.2 實(shí)例 (79) 思考與練習(xí) (79) 第6章 I/O端口模塊 (81) 6.1 概述 (81) 6.2 GPIO庫(kù)函數(shù)說(shuō)明 (83) 6.2.1 庫(kù)函數(shù)GPIO_DeInit (84) 6.2.2 庫(kù)函數(shù)GPIO_AFIODeInit (84) 6.2.3 庫(kù)函數(shù)GPIO_Init (84) 6.2.4 庫(kù)函數(shù)GPIO_StructInit (86) 6.2.5 庫(kù)函數(shù)GPIO_ReadInputDataBit (86) 6.2.6 庫(kù)函數(shù)GPIO_ReadInputData (87) 6.2.7 庫(kù)函數(shù)GPIO_ReadOutputDataBit (87) 6.2.8 庫(kù)函數(shù)GPIO_ReadOutputData (87) 6.2.9 庫(kù)函數(shù)GPIO_SetBits (88) 6.2.10 庫(kù)函數(shù)GPIO_ResetBits (88) 6.2.11 庫(kù)函數(shù)GPIO_WriteBit (88) 6.2.12 庫(kù)函數(shù)GPIO_Write (88) 6.2.13 庫(kù)函數(shù)GPIO_PinLockConfig (89) 6.2.14 庫(kù)函數(shù)GPIO_EventOutputConfig (89) 6.2.15 庫(kù)函數(shù)GPIO_EventOutputCmd (90) 6.2.16 庫(kù)函數(shù)GPIO_PinRemapConfig (90) 6.2.17 庫(kù)函數(shù)GPIO_EXTILineConfig (91) 思考與練習(xí) (91) 第7章 中斷和事件 (92) 7.1 嵌套向量中斷控制器 (92) 7.2 外部中斷/事件控制器 (95) 7.3 NVIC庫(kù)函數(shù)說(shuō)明 (96) 7.3.1 庫(kù)函數(shù)NVIC_PriorityGroupConfig (97) 7.3.2 庫(kù)函數(shù)NVIC_Init (97) 7.3.3 庫(kù)函數(shù)NVIC_SetVectorTable (99) 7.3.4 庫(kù)函數(shù)NVIC_SystemLPConfig (100) 7.4 EXTI庫(kù)函數(shù)說(shuō)明 (100) 7.4.1 庫(kù)函數(shù)EXTI_DeInit (101) 7.4.2 庫(kù)函數(shù)EXTI_Init (101) 7.4.3 庫(kù)函數(shù)EXTI_StructInit (102) 7.4.4 庫(kù)函數(shù)EXTI_GenerateSWInterrupt (103) 7.4.5 庫(kù)函數(shù)EXTI_GetFlagStatus (103) 7.4.6 庫(kù)函數(shù)EXTI_ClearFlag (103) 7.4.7 庫(kù)函數(shù)EXTI_GetITStatus (103) 7.4.8 庫(kù)函數(shù)EXTI_ClearITPendingBit (104) 思考與練習(xí) (104) 第8章 系統(tǒng)時(shí)基定時(shí)器 (105) 8.1 概述 (105) 8.2 SysTick庫(kù)函數(shù)說(shuō)明 (106) 思考與練習(xí) (106) 第9章 實(shí)時(shí)時(shí)鐘和備份寄存器 (107) 9.1 實(shí)時(shí)時(shí)鐘簡(jiǎn)介 (107) 9.2 后備寄存器簡(jiǎn)介 (111) 9.3 RTC庫(kù)函數(shù)說(shuō)明 (112) 9.3.1 庫(kù)函數(shù)RTC_ITConfig (112) 9.3.2 庫(kù)函數(shù)RTC_EnterConfigMode (113) 9.3.3 庫(kù)函數(shù)RTC_ExitConfigMode (113) 9.3.4 庫(kù)函數(shù)RTC_GetCounter (113) 9.3.5 庫(kù)函數(shù)RTC_SetCounter (113) 9.3.6 庫(kù)函數(shù)RTC_SetPrescaler (114) 9.3.7 庫(kù)函數(shù)RTC_SetAlarm (114) 9.3.8 庫(kù)函數(shù)RTC_WaitForLastTask (114) 9.3.9 庫(kù)函數(shù)RTC_WaitForSynchro (114) 9.3.10 庫(kù)函數(shù)RTC_GetFlagStatus (115) 9.3.11 庫(kù)函數(shù)RTC_ClearFlag (115) 9.3.12 庫(kù)函數(shù)RTC_GetITStatus (115) 9.3.13 庫(kù)函數(shù)RTC_ClearITPendingBit (116) 9.4 BKP庫(kù)函數(shù)說(shuō)明 (116) 9.4.1 庫(kù)函數(shù)BKP_DeInit (116) 9.4.2 庫(kù)函數(shù)BKP_Init (117) 9.4.3 庫(kù)函數(shù)BKP_TamperPinCmd (117) 9.4.4 庫(kù)函數(shù)BKP_ITConfig (117) 9.4.5 庫(kù)函數(shù)BKP_RTCOutputConfig (117) 9.4.6 庫(kù)函數(shù)BKP_SetRTCCalibrationValue (118) 9.4.7 庫(kù)函數(shù)BKP_WriteBackupRegister (118) 9.4.8 庫(kù)函數(shù)BKP_ReadBackupRegister (119) 9.4.9 庫(kù)函數(shù)BKP_GetFlagStatus (119) 9.4.10 庫(kù)函數(shù)BKP_ClearFlag (119) 9.4.11 庫(kù)函數(shù)BKP_GetITStatus (119) 9.4.12 庫(kù)函數(shù)BKP_ClearITPendingBit (120) 思考與練習(xí) (120) 第10章 嵌入式閃存 (121) 10.1 嵌入式閃存簡(jiǎn)介 (121) 10.1.1 嵌入式閃存的組織方式 (121) 10.1.2 嵌入式閃存的讀操作 (122) 10.1.3 嵌入式編程和擦除控制器 (123) 10.2 FLASH庫(kù)函數(shù)說(shuō)明 (128) 10.2.1 庫(kù)函數(shù)FLASH_SetLatency (129) 10.2.2 庫(kù)函數(shù)FLASH_HalfCycleAccessCmd (129) 10.2.3 庫(kù)函數(shù)FLASH_PrefetchBufferCmd (130) 10.2.4 庫(kù)函數(shù)FLASH_Unlock (130) 10.2.5 庫(kù)函數(shù)FLASH_Lock (130) 10.2.6 庫(kù)函數(shù)FLASH_ErasePage (130) 10.2.7 庫(kù)函數(shù)FLASH_EraseAllPages (131) 10.2.8 庫(kù)函數(shù)FLASH_EraseOptionBytes (131) 10.2.9 庫(kù)函數(shù)FLASH_ProgramWord (131) 10.2.10 庫(kù)函數(shù)FLASH_ProgramHalfWord (131) 10.2.11 庫(kù)函數(shù)FLASH_ProgramOptionByteData (132) 10.2.12 庫(kù)函數(shù)FLASH_EnableWriteProtection (132) 10.2.13 庫(kù)函數(shù)FLASH_ReadOutProtection (133) 10.2.14 庫(kù)函數(shù)FLASH_UserOptionByteConfig (133) 10.2.15 庫(kù)函數(shù)FLASH_GetUserOptionByte (133) 10.2.16 庫(kù)函數(shù)FLASH_GetWriteProtectionOptionByte (134) 10.2.17 庫(kù)函數(shù)FLASH_GetReadOutProtectionStatus (134) 10.2.18 庫(kù)函數(shù)FLASH_GetPrefetchBufferStatus (134) 10.2.19 庫(kù)函數(shù)FLASH_ITConfig (134) 10.2.20 庫(kù)函數(shù)FLASH_GetFlagStatus (135) 10.2.21 庫(kù)函數(shù)FLASH_ClearFlag (135) 10.2.22 庫(kù)函數(shù)FLASH_GetStatus (135) 10.2.23 庫(kù)函數(shù)FLASH_WaitForLastOperation (136) 思考與練習(xí) (136) 第11章 USART串口模塊 (137) 11.1 USART串口簡(jiǎn)介 (137) 11.1.1 功能概述 (138) 11.1.2 發(fā)送器 (139) 11.1.3 接收器 (140) 11.1.4 產(chǎn)生分?jǐn)?shù)比特率 (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的中斷請(qǐng)求 (147) 11.2 USART庫(kù)函數(shù)說(shuō)明 (148) 11.2.1 庫(kù)函數(shù)USART_DeInit (149) 11.2.2 庫(kù)函數(shù)USART_Init (149) 11.2.3 庫(kù)函數(shù)USART_StructInit (151) 11.2.4 庫(kù)函數(shù)USART_Cmd (151) 11.2.5 庫(kù)函數(shù)USART_ITConfig (151) 11.2.6 庫(kù)函數(shù)USART_DMACmd (152) 11.2.7 庫(kù)函數(shù)USART_SetAddress (152) 11.2.8 庫(kù)函數(shù)USART_WakeUpConfig (152) 11.2.9 庫(kù)函數(shù)USART_ReceiverWakeUpCmd (153) 11.2.10 庫(kù)函數(shù)USART_LINBreakDetectiLengthConfig (153) 11.2.11 庫(kù)函數(shù)USART_LINCmd (153) 11.2.12 庫(kù)函數(shù)USART_SendData (154) 11.2.13 庫(kù)函數(shù)USART_ReceiveData (154) 11.2.14 庫(kù)函數(shù)USART_SendBreak (154) 11.2.15 庫(kù)函數(shù)USART_SetGuardTime (154) 11.2.16 庫(kù)函數(shù)USART_SetPrescaler (155) 11.2.17 庫(kù)函數(shù)USART_SmartCardCmd (155) 11.2.18 庫(kù)函數(shù)USART_SmartCardNackCmd (155) 11.2.19 庫(kù)函數(shù)USART_HalfDuplexCmd (155) 11.2.20 庫(kù)函數(shù)USART_IrDAConfig (156) 11.2.21 庫(kù)函數(shù)USART_IrDACmd (156) 11.2.22 庫(kù)函數(shù)USART_GetFlagStatus (156) 11.2.23 庫(kù)函數(shù)USART_ClearFlag (157) 11.2.24 庫(kù)函數(shù)USART_GetITStatus (157) 11.2.25 庫(kù)函數(shù)USART_ClearITPendingBit (158) 思考與練習(xí) (158) 第12章 SPI模塊 (159) 12.1 SPI簡(jiǎn)介 (159) 12.1.1 引腳概述 (160) 12.1.2 數(shù)據(jù)傳輸模式 (161) 12.1.3 SPI從模式 (162) 12.1.4 SPI主模式 (163) 12.1.5 狀態(tài)標(biāo)志 (163) 12.1.6 利用DMA的SPI通信 (164) 12.1.7 SPI中斷 (164) 12.2 SPI庫(kù)函數(shù)說(shuō)明 (164) 12.2.1 庫(kù)函數(shù)SPI_DeInit (165) 12.2.2 庫(kù)函數(shù)SPI_Init (165) 12.2.3 庫(kù)函數(shù)SPI_StructInit (167) 12.2.4 庫(kù)函數(shù)SPI_Cmd (167) 12.2.5 庫(kù)函數(shù)SPI_I2S_ITConfig (168) 12.2.6 庫(kù)函數(shù)SPI_I2S_DMACmd (168) 12.2.7 庫(kù)函數(shù)SPI_I2S_SendData (168) 12.2.8 庫(kù)函數(shù)SPI_I2S_ReceiveData (169) 12.2.9 庫(kù)函數(shù)SPI_NSSInternalSoftwareConfig (169) 12.2.10 庫(kù)函數(shù)SPI_SSOutputCmd (169) 12.2.11 庫(kù)函數(shù)SPI_DataSizeConfig (170) 12.2.12 庫(kù)函數(shù)SPI_TransmitCRC (170) 12.2.13 庫(kù)函數(shù)SPI_CalculateCRC (170) 12.2.14 庫(kù)函數(shù)SPI_GetCRC (170) 12.2.15 庫(kù)函數(shù)SPI_GetCRCPolynomial (171) 12.2.16 庫(kù)函數(shù)SPI_BiDirectionalLineConfig (171) 12.2.17 庫(kù)函數(shù)SPI_I2S_GetFlagStatus (171) 12.2.18 庫(kù)函數(shù)SPI_I2S_ClearFlag (172) 12.2.19 庫(kù)函數(shù)SPI_I2S_GetITStatus (172) 12.2.20 庫(kù)函數(shù)SPI_I2S_ClearITPendingBit (172) 思考與練習(xí) (173) 第13章 I2C模塊 (174) 13.1 I2C簡(jiǎn)介 (174) 13.1.1 功能描述 (175) 13.1.2 I2C從模式 (176) 13.1.3 I2C主模式 (177) 13.1.4 錯(cuò)誤條件 (179) 13.1.5 SDA/SCL線控制 (180) 13.1.6 DMA請(qǐng)求 (180) 13.1.7 I2C的中斷 (181) 13.2 I2C庫(kù)函數(shù)說(shuō)明 (182) 13.2.1 庫(kù)函數(shù)I2C_DeInit (183) 13.2.2 庫(kù)函數(shù)I2C_Init (183) 13.2.3 庫(kù)函數(shù)I2C_StructInit (184) 13.2.4 庫(kù)函數(shù)I2C_Cmd (185) 13.2.5 庫(kù)函數(shù)I2C_ITConfig (185) 13.2.6 庫(kù)函數(shù)I2C_DMACmd (186) 13.2.7 庫(kù)函數(shù)I2C_SendData (186) 13.2.8 庫(kù)函數(shù)I2C_ReceiveData (186) 13.2.9 庫(kù)函數(shù)I2C_DMALastTransferCmd (186) 13.2.10 庫(kù)函數(shù)I2C_GenerateSTART (187) 13.2.11 庫(kù)函數(shù)I2C_GenerateSTOP (187) 13.2.12 庫(kù)函數(shù)I2C_AcknowledgeConfig (187) 13.2.13 庫(kù)函數(shù)I2C_OwnAddress2Config (187) 13.2.14 庫(kù)函數(shù)I2C_DualAddressCmd (188) 13.2.15 庫(kù)函數(shù)I2C_GeneralCallCmd (188) 13.2.16 庫(kù)函數(shù)I2C_Send7bitAddress (188) 13.2.17 庫(kù)函數(shù)I2C_ReadRegister (189) 13.2.18 庫(kù)函數(shù)I2C_SoftwareResetCmd (189) 13.2.19 庫(kù)函數(shù)I2C_SMBusAlertConfig (189) 13.2.20 庫(kù)函數(shù)I2C_TransmitPEC (190) 13.2.21 庫(kù)函數(shù)I2C_PECPositionConfig (190) 13.2.22 庫(kù)函數(shù)I2C_CalculatePEC (190) 13.2.23 庫(kù)函數(shù)I2C_GetPEC (190) 13.2.24 庫(kù)函數(shù)I2C_ARPCmd (191) 13.2.25 庫(kù)函數(shù)I2C_StretchClockCmd (191) 13.2.26 庫(kù)函數(shù)I2C_FastModeDutyCycleConfig (191) 13.2.27 庫(kù)函數(shù)I2C_GetLastEvent (191) 13.2.28 庫(kù)函數(shù)I2C_CheckEvent (192) 13.2.29 庫(kù)函數(shù)I2C_GetFlagStatus (192) 13.2.30 庫(kù)函數(shù)I2C_ClearFlag (193) 13.2.31 庫(kù)函數(shù)I2C_GetITStatus (193) 13.2.32 庫(kù)函數(shù)I2C_ClearITPendingBit (194) 思考與練習(xí) (194) 第14章 DMA控制器 (195) 14.1 DMA簡(jiǎn)介 (195) 14.2 DMA庫(kù)函數(shù)說(shuō)明 (199) 14.2.1 庫(kù)函數(shù)DMA_DeInit (200) 14.2.2 庫(kù)函數(shù)DMA_Init (200) 14.2.3 庫(kù)函數(shù)DMA_StructInit (201) 14.2.4 庫(kù)函數(shù)DMA_Cmd (202) 14.2.5 庫(kù)函數(shù)DMA_ITConfig (202) 14.2.6 庫(kù)函數(shù)DMA_GetCurrDataCounte (203) 14.2.7 庫(kù)函數(shù)DMA_GetFlagStatus (203) 14.2.8 庫(kù)函數(shù)DMA_ClearFlag (203) 14.2.9 庫(kù)函數(shù)DMA_GetITStatus (203) 14.2.10 庫(kù)函數(shù)DMA_ClearITPendingBit (204) 思考與練習(xí) (204) 第15章 FSMC模塊 (205) 15.1 FSMC簡(jiǎn)介 (205) 15.2 與非總線復(fù)用模式的異步16位NOR閃存接口 (207) 15.2.1 FSMC的配置 (207) 15.2.2 時(shí)序計(jì)算 (209) 15.2.3 硬件連接 (210) 15.2.4 從外部NOR閃存存儲(chǔ)器執(zhí)行代碼 (211) 15.3 與非總線復(fù)用的16位SRAM接口 (211) 15.3.1 FSMC配置 (211) 15.3.2 時(shí)序計(jì)算 (212) 15.3.3 硬件連接 (213) 15.4 與8位的NAND閃存存儲(chǔ)器接口 (213) 15.4.1 FSMC配置 (213) 15.4.2 時(shí)序計(jì)算 (215) 15.4.3 硬件連接 (217) 15.4.4 錯(cuò)誤校驗(yàn)碼計(jì)算 (217) 15.5 FSMC庫(kù)函數(shù)說(shuō)明 (218) 思考與練習(xí) (219) 第16章 模數(shù)轉(zhuǎn)換器模塊 (220) 16.1 ADC簡(jiǎn)介 (220) 16.1.1 功能描述 (221) 16.1.2 自校準(zhǔn) (223) 16.1.3 可編程的采樣時(shí)間 (224) 16.1.4 外部觸發(fā)轉(zhuǎn)換 (224) 16.1.5 雙ADC模式 (225) 16.1.6 溫度傳感器 (226) 16.1.7 ADC的中斷事件 (227) 16.2 ADC庫(kù)函數(shù)說(shuō)明 (227) 16.2.1 庫(kù)函數(shù)ADC_DeInit (228) 16.2.2 庫(kù)函數(shù)ADC_Init (228) 16.2.3 庫(kù)函數(shù)ADC_StructInit (230) 16.2.4 庫(kù)函數(shù)ADC_Cmd (231) 16.2.5 庫(kù)函數(shù)ADC_ITConfig (231) 16.2.6 庫(kù)函數(shù)ADC_DMACmd (231) 16.2.7 庫(kù)函數(shù)ADC_ResetCalibration (232) 16.2.8 庫(kù)函數(shù)ADC_GetResetCalibrationStatus (232) 16.2.9 庫(kù)函數(shù)ADC_StartCalibration (232) 16.2.10 庫(kù)函數(shù)ADC_GetCalibrationStatus (233) 16.2.11 庫(kù)函數(shù)ADC_SoftwareStartConvCmd (233) 16.2.12 庫(kù)函數(shù)ADC_GetSoftwareStartConvStatus (233) 16.2.13 庫(kù)函數(shù)ADC_DiscModeChannelCountConfig (233) 16.2.14 庫(kù)函數(shù)ADC_DiscModeCmd (234) 16.2.15 庫(kù)函數(shù)ADC_RegularChannelConfig (234) 16.2.16 庫(kù)函數(shù)ADC_ExternalTrigConvConfig (235) 16.2.17 庫(kù)函數(shù)ADC_GetConversionValue (235) 16.2.18 庫(kù)函數(shù)ADC_GetDuelModeConversionValue (235) 16.2.19 庫(kù)函數(shù)ADC_AutoInjectedConvCmd (236) 16.2.20 庫(kù)函數(shù)ADC_InjectedDiscModeCmd (236) 16.2.21 庫(kù)函數(shù)ADC_ExternalTrigInjectedConvConfig (236) 16.2.22 庫(kù)函數(shù)ADC_ExternalTrigInjectedConvCmd (237) 16.2.23 庫(kù)函數(shù)ADC_SoftwareStartinjectedConvCmd (237) 16.2.24 庫(kù)函數(shù)ADC_GetsoftwareStartinjectedConvStatus (237) 16.2.25 庫(kù)函數(shù)ADC_InjectedChannleConfig (238) 16.2.26 庫(kù)函數(shù)ADC_InjectedSequencerLengthConfig (238) 16.2.27 庫(kù)函數(shù)ADC_SetInjectedOffset (238) 16.2.28 庫(kù)函數(shù)ADC_GetInjectedConversionValue (239) 16.2.29 庫(kù)函數(shù)ADC_AnalogWatchdogCmd (239) 16.2.30 庫(kù)函數(shù)ADC_AnalogWatchdongThresholdsConfig (239) 16.2.31 庫(kù)函數(shù)ADC_AnalogWatchdongSingleChannelConfig (240) 16.2.32 庫(kù)函數(shù)ADC_TampSensorVrefintCmd (240) 16.2.33 庫(kù)函數(shù)ADC_GetFlagStatus (240) 16.2.34 庫(kù)函數(shù)ADC_ClearFlag (241) 16.2.35 庫(kù)函數(shù)ADC_GetITStatus (241) 16.2.36 庫(kù)函數(shù)ADC_ClearITPendingBit (241) 思考與練習(xí) (241) 第17章 定時(shí)器模塊 (243) 17.1 TIM簡(jiǎn)介 (243) 17.1.1 計(jì)數(shù)功能 (244) 17.1.2 時(shí)鐘選擇 (248) 17.1.3 捕獲/比較通道 (250) 17.1.4 定時(shí)器同步 (261) 17.2 TIM庫(kù)函數(shù)說(shuō)明 (265) 17.2.1 庫(kù)函數(shù)TIM_DeInit (268) 17.2.2 庫(kù)函數(shù)TIM_TimeBaseInit (268) 17.2.3 庫(kù)函數(shù)TIM_OC1Init (269) 17.2.4 庫(kù)函數(shù)TIM_ICInit (270) 17.2.5 庫(kù)函數(shù)TIM_BDTRConfig (271) 17.2.6 庫(kù)函數(shù)TIM_TimeBaseStructInit (272) 17.2.7 庫(kù)函數(shù)TIM_OCStructInit (273) 17.2.8 庫(kù)函數(shù)TIM_ICStructInit (273) 17.2.9 庫(kù)函數(shù)TIM_BDTRStructInit (274) 17.2.10 庫(kù)函數(shù)TIM_Cmd (274) 17.2.11 庫(kù)函數(shù)TIM_ITConfig (274) 17.2.12 庫(kù)函數(shù)TIM_GenerateEvent (275) 17.2.13 庫(kù)函數(shù)TIM_DMAConfig (275) 17.2.14 庫(kù)函數(shù)TIM_DMACmd (276) 17.2.15 庫(kù)函數(shù)TIM_InternalClockConfig (277) 17.2.16 庫(kù)函數(shù)TIM_ITRxExternalClockConfig (277) 17.2.17 庫(kù)函數(shù)TIM_TIxExternalClockConfig (278) 17.2.18 庫(kù)函數(shù)TIM_ETRClockMode1Config (278) 17.2.19 庫(kù)函數(shù)TIM_ETRClockMode2Config (279) 17.2.20 庫(kù)函數(shù)TIM_ETRConfig (279) 17.2.21 庫(kù)函數(shù)TIM_SelectInputTrigger (279) 17.2.22 庫(kù)函數(shù)TIM_PrescalerConfig (280) 17.2.23 庫(kù)函數(shù)TIM_CounterModeConfig (280) 17.2.24 庫(kù)函數(shù)TIM_ForcedOC1Config (281) 17.2.25 庫(kù)函數(shù)TIM_ARRPreloadConfig (281) 17.2.26 庫(kù)函數(shù)TIM_SelectCOM (281) 17.2.27 庫(kù)函數(shù)TIM_SelectCCDMA (281) 17.2.28 庫(kù)函數(shù)TIM_CCPreloadControl (282) 17.2.29 庫(kù)函數(shù)TIM_OC1PreloadConfig (282) 17.2.30 庫(kù)函數(shù)TIM_OC1FastConfig (282) 17.2.31 庫(kù)函數(shù)TIM_ClearOC1Ref (283) 17.2.32 庫(kù)函數(shù)TIM_UpdateDisableConfig (283) 17.2.33 庫(kù)函數(shù)TIM_EncoderInterfaceConfig (283) 17.2.34 庫(kù)函數(shù)TIM_OC1PolarityConfig (284) 17.2.35 庫(kù)函數(shù)TIM_OC1NPolarityConfig (284) 17.2.36 庫(kù)函數(shù)TIM_CCxCmd (284) 17.2.37 庫(kù)函數(shù)TIM_CCxNCmd (285) 17.2.38 庫(kù)函數(shù)TIM_SelectOCxM (285) 17.2.39 庫(kù)函數(shù)TIM_UpdateRequestConfig (285) 17.2.40 庫(kù)函數(shù)TIM_SelectHallSensor (286) 17.2.41 庫(kù)函數(shù)TIM_SelectOnePulseMode (286) 17.2.42 庫(kù)函數(shù)TIM_SelectOutputTrigger (286) 17.2.43 庫(kù)函數(shù)TIM_SelectSlaveMode (287) 17.2.44 庫(kù)函數(shù)TIM_SelectMasterSlaveMode (288) 17.2.45 庫(kù)函數(shù)TIM_SetAutoreload (288) 17.2.46 庫(kù)函數(shù)TIM_SetCompare1 (288) 17.2.47 庫(kù)函數(shù)TIM_SetIC1Prescaler (288) 17.2.48 庫(kù)函數(shù)TIM_SetClockDivision (289) 17.2.49 庫(kù)函數(shù)TIM_GetCapture1 (289) 17.2.50 庫(kù)函數(shù)TIM_GetCounter (289) 17.2.51 庫(kù)函數(shù)TIM_GetPrescaler (289) 17.2.52 庫(kù)函數(shù)TIM_GetFlagStatus (290) 17.2.53 庫(kù)函數(shù)TIM_ClearFlag (290) 17.2.54 庫(kù)函數(shù)TIM_GetITStatus (291) 17.2.55 庫(kù)函數(shù)TIM_ClearITPendingBit (291) 思考與練習(xí) (291) 第18章 看門(mén)狗模塊 (292) 18.1 獨(dú)立看門(mén)狗簡(jiǎn)介 (292) 18.2 窗口看門(mén)狗簡(jiǎn)介 (293) 18.3 IWDG庫(kù)函數(shù)說(shuō)明 (295) 18.3.1 庫(kù)函數(shù)IWDG_WriteAccessCmd (295) 18.3.2 庫(kù)函數(shù)IWDG_SetPrescaler (296) 18.3.3 庫(kù)函數(shù)IWDG_SetReload (296) 18.3.4 庫(kù)函數(shù)IWDG_ReloadCounter (296) 18.3.5 庫(kù)函數(shù)IWDG_Enable (296) 18.3.6 庫(kù)函數(shù)IWDG_GetFlagStatus (297) 18.4 WWDG庫(kù)函數(shù)說(shuō)明 (297) 18.4.1 庫(kù)函數(shù)WWDG_DeInit (297) 18.4.2 庫(kù)函數(shù)WWDG_SetPrescaler (297) 18.4.3 庫(kù)函數(shù)WWDG_SetWindowValue (298) 18.4.4 庫(kù)函數(shù)WWDG_EnableIT (298) 18.4.5 庫(kù)函數(shù)WWDG_SetCounter (298) 18.4.6 庫(kù)函數(shù)WWDG_Enable (298) 思考與練習(xí) (299) 第19章 μC/OS-Ⅱ操作系統(tǒng)概述 (300) 19.1 μC/OS-Ⅱ簡(jiǎn)介 (300) 19.2 實(shí)時(shí)系統(tǒng)概念 (300) 19.2.1 前后臺(tái)系統(tǒng) (301) 19.2.2 代碼的臨界段 (301) 19.2.3 任務(wù) (301) 19.2.4 內(nèi)核 (302) 19.2.5 調(diào)度 (303) 19.2.6 可重入型 (303) 19.2.7 不可剝奪型內(nèi)核 (303) 19.2.8 可剝奪型內(nèi)核 (303) 19.2.9 時(shí)間片輪番調(diào)度法 (304) 19.2.10 任務(wù)優(yōu)先級(jí) (304) 19.2.11 死鎖 (304) 19.2.12 同步 (304) 19.2.13 任務(wù)間的通信 (305) 19.2.14 時(shí)鐘節(jié)拍 (305) 19.2.15 臨界段 (306) 19.3 內(nèi)核結(jié)構(gòu) (306) 19.3.1 任務(wù)控制塊 (306) 19.3.2 任務(wù)調(diào)度 (307) 19.3.3 給調(diào)度器上鎖和開(kāi)鎖 (307) 19.3.4 空閑任務(wù) (308) 19.3.5 統(tǒng)計(jì)任務(wù) (308) 19.3.6 ?C/OS中的中斷處理 (308) 19.3.7 時(shí)鐘節(jié)拍 (309) 19.3.8 ?C/OS-Ⅱ初始化與啟動(dòng) (309) 思考與練習(xí) (309) 第20章 任務(wù)管理與通信 (310) 20.1 任務(wù)管理 (310) 20.1.1 建立任務(wù) (311) 20.1.2 任務(wù)堆棧 (311) 20.1.3 刪除任務(wù) (311) 20.1.4 請(qǐng)求刪除任務(wù) (312) 20.1.5 改變?nèi)蝿?wù)的優(yōu)先級(jí) (312) 20.1.6 掛起任務(wù) (313) 20.1.7 恢復(fù)任務(wù) (313) 20.2 任務(wù)之間的通信 (313) 20.2.1 事件控制塊 (313) 20.2.2 信號(hào)量 (315) 20.2.3 郵箱 (316) 20.2.4 消息隊(duì)列 (318) 思考與練習(xí) (320) 第21章 時(shí)間管理和內(nèi)存管理 (321) 21.1 時(shí)間管理 (321) 21.1.1 任務(wù)延時(shí)函數(shù) (321) 21.1.2 按時(shí)分秒延時(shí)函數(shù) (322) 21.1.3 讓處在延時(shí)期的任務(wù)結(jié)束延時(shí) (322) 21.1.4 系統(tǒng)時(shí)間 (322) 21.2 內(nèi)存管理 (323) 21.2.1 內(nèi)存控制塊 (323) 21.2.2 建立一個(gè)內(nèi)存分區(qū) (323) 21.2.3 分配一個(gè)內(nèi)存塊 (324) 21.2.4 釋放一個(gè)內(nèi)存塊 (324) 21.2.5 查詢一個(gè)內(nèi)存分區(qū)的狀態(tài) (324) 21.2.6 等待一個(gè)內(nèi)存塊 (325) 思考與練習(xí) (325) 參考文獻(xiàn) (326)
你還可能感興趣
我要評(píng)論
|