注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡操作系統(tǒng)Linux21天學通Linux嵌入式開發(fā)

21天學通Linux嵌入式開發(fā)

21天學通Linux嵌入式開發(fā)

定 價:¥49.80

作 者: 薛園園 等編著
出版社: 電子工業(yè)出版社
叢編項: 21天學通系列
標 簽: LINUX

購買這本書可以去


ISBN: 9787121106217 出版時間: 2010-05-01 包裝: 平裝
開本: 16開 頁數(shù): 416 字數(shù):  

內容簡介

  《21天學通Linux嵌入式開發(fā)》系統(tǒng)地介紹了ARM嵌入式系統(tǒng)的基本結構、開發(fā)和ARM處理器的編程,并結合流行的嵌入式系統(tǒng)介紹了如何移植。《21天學通Linux嵌入式開發(fā)》言簡意賅、通俗易懂,知識點覆蓋全面,詳細講述了最新的ARM Cortex-M3內核及STM32處理器編程,使讀者能夠更好地掌握ARM處理器及相應的嵌入式系統(tǒng)設計?!?1天學通Linux嵌入式開發(fā)》分為四篇,共23章,全面詳細地講述了ARM處理器的原理、程序設計方法、ARM處理器編程指南及嵌入式系統(tǒng)移植。首先介紹了ARM處理器的構架及如何搭建一個ARM嵌入式開發(fā)平臺,接著介紹了ARM Cortex-M3的指令集,基于Cortex-M3的STM32系列芯片及一些典型的嵌入式操作系統(tǒng)。然后結合STM32的各個功能部件詳細講解了ARM處理器的硬件編程方法。最后《21天學通Linux嵌入式開發(fā)》還介紹了基于ARM Cortex-M3的STM32芯片如何移植流行的嵌入式操作系統(tǒng)。《21天學通Linux嵌入式開發(fā)》知識點覆蓋全面、結構安排緊湊、講解詳細、實例豐富。ARM嵌入式系統(tǒng)的初學者通過《21天學通Linux嵌入式開發(fā)》可以快速掌握程序設計方法?!?1天學通Linux嵌入式開發(fā)》對具有一定開發(fā)經驗的設計人員,也有很高的參考價值?!?1天學通Linux嵌入式開發(fā)》附贈DVD光盤1張,內容包括超大容量手把手教學視頻、電子教案(PPT)、編程參考寶典電子書、源代碼及各章習題答案。

作者簡介

暫缺《21天學通Linux嵌入式開發(fā)》作者簡介

圖書目錄

第一篇 走進嵌入式系統(tǒng)開發(fā)
第1章 嵌入式系統(tǒng)開發(fā)概述(教學視頻:44分鐘) 29
1.1 何為嵌入式系統(tǒng) 29
1.1.1 嵌入式系統(tǒng)的概念 29
1.1.2 嵌入式系統(tǒng)的基本結構 30
1.1.3 嵌入式處理器 30
1.2 嵌入式系統(tǒng)的特點及發(fā)展趨勢 32
1.3 嵌入式系統(tǒng)的開發(fā)過程 32
1.3.1 芯片選擇 32
1.3.2 配置硬件平臺 33
1.3.3 BootLoader移植 33
1.3.4 操作系統(tǒng)裁減 33
1.3.5 系統(tǒng)移植 33
1.3.6 應用程序開發(fā) 33
1.4 如何成為嵌入式開發(fā)人員 33
1.5 小結 34
1.6 習題 34
第2章 嵌入式操作系統(tǒng)簡介(教學視頻:37分鐘) 35
2.1 嵌入式操作系統(tǒng)概述 35
2.1.1 嵌入式操作系統(tǒng)的發(fā)展歷史 35
2.1.2 嵌入式操作系統(tǒng)的分類 35
2.1.3 嵌入式操作系統(tǒng)的特點 36
2.2 主流嵌入式操作系統(tǒng)簡介 36
2.2.1 VxWorks 36
2.2.2 pSOS 37
2.2.3 Palm OS 37
2.2.4 QNX 38
2.2.5 OS-9 38
2.2.6 LynxOS 38
2.2.7 Windows CE 39
2.2.8 μC/OS-II 39
2.2.9 嵌入式Linux 40
2.2.10 FreeRTOS 40
2.3 小結 40
2.4 習題 40
第3章 ARM處理器構架(教學視頻:53分鐘) 42
3.1 ARM體系結構概述 42
3.1.1 ARM簡介 42
3.1.2 CISC的體系結構 42
3.1.3 RISC的體系結構 43
3.1.4 ARM微處理器的應用領域 43
3.1.5 ARM體系結構的特點 44
3.2 ARM處理器系列 44
3.2.1 ARM7微處理器 44
3.2.2 ARM9微處理器 45
3.2.3 ARM9E微處理器 45
3.2.4 ARM10E微處理器 45
3.2.5 ARM11微處理器 46
3.2.6 SecurCore微處理器 46
3.2.7 StrongARM微處理器 46
3.2.8 Xscale微處理器 47
3.2.9 Cortex-M3微處理器 47
3.2.10 基于ARM核的芯片選擇 47
3.3 ARM處理器結構 48
3.3.1 ARM的系統(tǒng)構架 48
3.3.2 ARM的流水線結構 49
3.3.3 ARM的存儲器結構 49
3.4 ARM編程模型 50
3.4.1 工作模式和工作狀態(tài) 50
3.4.2 特權訪問和用戶訪問 50
3.4.3 數(shù)據(jù)類型 50
3.4.4 存儲器格式 50
3.5 ARM開發(fā)調試工具綜述 51
3.6 小結 51
3.7 習題 51
第4章 搭建嵌入式開發(fā)平臺(教學視頻:39分鐘) 53
4.1 基于ARM的RealView MDK開發(fā)環(huán)境 53
4.1.1 RealView MDK簡介 53
4.1.2 RealView MDK系統(tǒng)安裝需求 54
4.1.3 RealView MDK的安裝 54
4.1.4 RealView MDK集成開發(fā)環(huán)境總覽 55
4.1.5 RealView MDK的菜單欄 56
4.1.6 RealView MDK的工具欄 59
4.1.7 RealView MDK的快捷鍵 62
4.2 基于ARM Cortex-M3的STM32選型表 63
4.3 基于ARM Cortex-M3的STM32最小開發(fā)系統(tǒng) 63
4.4 程序下載方式 64
4.5 小結 65
4.6 習題 65
第二篇 ARM嵌入式系統(tǒng)開發(fā)基礎
第5章 ARM Cortex-M3指令集(教學視頻:30分鐘) 66
5.1 數(shù)據(jù)傳送指令 66
5.1.1 寄存器間數(shù)據(jù)傳送指令 66
5.1.2 存儲器數(shù)據(jù)傳送指令 66
5.1.3 索引數(shù)據(jù)傳送指令 67
5.2 數(shù)據(jù)處理指令 68
5.2.1 算術四則運算指令 68
5.2.2 邏輯及移位操作指令 69
5.2.3 數(shù)據(jù)序轉及位操作指令 70
5.3 子程序呼叫及轉移指令 70
5.4 隔離指令 71
5.5 不支持的指令 71
5.6 小結 72
5.7 習題 72
第6章 基于ARM Cortex-M3的STM32在應用編程(教學視頻:31分鐘) 74
6.1 在應用編程簡介 74
6.2 STM32的啟動配置 74
6.3 STM32的在應用編程 75
6.3.1 電路原理圖 75
6.3.2 BootLoader固件下載步驟 76
6.4 小結 78
6.5 習題 79
第7章 嵌入式實時操作系統(tǒng)FreeRTOS(教學視頻:42分鐘) 80
7.1 嵌入式實時操作系統(tǒng)FreeRTOS簡介 80
7.2 嵌入式操作系統(tǒng)基本概念 80
7.2.1 多任務 81
7.2.2 調度 81
7.2.3 上下文切換 82
7.2.4 實時應用和調度 82
7.3 FreeRTOS的API模塊 82
7.3.1 定制 82
7.3.2 任務創(chuàng)建和刪除 84
7.3.3 任務控制 85
7.3.4 內核控制 86
7.4 小結 87
7.5 習題 87
第8章 嵌入式系統(tǒng)UC/OS-Ⅱ(教學視頻:39分鐘) 88
8.1 UC/OS-Ⅱ嵌入式系統(tǒng)簡介 88
8.2 UC/OS-Ⅱ任務管理 88
8.2.1 建立任務OSTaskCreate 89
8.2.2 建立任務OSTaskCreate Ext 89
8.2.3 任務堆棧 91
8.2.4 堆棧檢驗OSTaskStkChk 91
8.2.5 刪除任務OSTaskDel 92
8.2.6 請求刪除任務OSTaskDelReq 93
8.2.7 改變任務的優(yōu)先級OSTaskChangePrio 94
8.2.8 掛起任務OSTaskSuspend 95
8.2.9 恢復任務OSTaskResume 96
8.2.10 獲得有關任務的信息OSTaskQuery 97
8.3 任務之間的通信與同步 98
8.3.1 信號量 98
8.3.2 郵箱 98
8.3.3 消息隊列 98
8.4 小結 99
8.5 習題 99
第三篇 深入ARM嵌入式控制器
第9章 通用I/O接口(教學視頻:48分鐘) 100
9.1 通用I/O接口的結構 100
9.1.1 GPIO的基本結構 100
9.1.2 GPIO的功能 101
9.1.3 GPIO的功能配置 102
9.1.4 復用功能與重映射 103
9.2 通用I/O接口的編程方法 106
9.2.1 GPIO寄存器結構 107
9.2.2 GPIO寄存器復位函數(shù)GPIO_DeInit 107
9.2.3 復用功能寄存器復位函數(shù)GPIO_AFIODeInit 108
9.2.4 參數(shù)初始化函數(shù)GPIO_Init 108
9.2.5 復位GPIO_InitStruct函數(shù)GPIO_StructInit 110
9.2.6 讀輸入引腳函數(shù)GPIO_ReadInputDataBit 110
9.2.7 讀輸入端口函數(shù)GPIO_ReadInputData 111
9.2.8 讀輸出引腳函數(shù)GPIO_ReadOutputDataBit 111
9.2.9 讀輸出端口函數(shù)GPIO_ReadOutputData 111
9.2.10 置位引腳函數(shù)GPIO_SetBits 111
9.2.11 清除引腳位函數(shù)GPIO_ResetBits 112
9.2.12 置位或清除引腳函數(shù)GPIO_WriteBit 112
9.2.13 寫端口函數(shù)GPIO_Write 112
9.2.14 引腳配置鎖定函數(shù)GPIO_PinLockConfig 113
9.2.15 選擇事件輸出引腳函數(shù)GPIO_EventOutputConfig 113
9.2.16 使能事件輸出函數(shù)GPIO_EventOutputCmd 113
9.2.17 改變引腳映射函數(shù)GPIO_PinRemapConfig 114
9.2.18 選擇EXTI線函數(shù)GPIO_EXTILineConfig 115
9.3 綜合練習 115
9.4 小結 116
9.5 習題 116
第10章 Flash(教學視頻:24分鐘) 118
10.1 Flash閃存的結構 118
10.2 Flash閃存的基本特性 119
10.2.1 Flash閃存讀取 119
10.2.2 Flash閃存編程和擦除 119
10.3 Flash的編程方法 119
10.3.1 Flash寄存器結構 120
10.3.2 設置代碼延時值函數(shù)Flash_SetLatency 121
10.3.3 使能或禁用半周期訪問函數(shù)Flash_HalfCycleAccessCmd 121
10.3.4 使能或禁用預取緩沖區(qū)函數(shù)Flash_PrefetchBufferCmd 121
10.3.5 解鎖擦除控制器函數(shù)Flash_Unlock 122
10.3.6 鎖定擦除控制器函數(shù)Flash_Lock 122
10.3.7 擦除頁函數(shù)Flash_ErasePage 122
10.3.8 擦除全部頁函數(shù)Flash_EraseAllPages 122
10.3.9 擦除選項字節(jié)函數(shù)Flash_EraseOptionBytes 123
10.3.10 字寫入函數(shù)Flash_ProgramWord 123
10.3.11 半字寫入函數(shù)Flash_ProgramHalfWord 124
10.3.12 寫選項字節(jié)函數(shù)Flash_ProgramOptionByteData 124
10.3.13 頁寫保護函數(shù)Flash_EnableWriteProtection 125
10.3.14 使能或禁用讀保護函數(shù)Flash_ReadOutProtection 126
10.3.15 寫選項字節(jié)函數(shù)Flash_UserOptionByteConfig 127
10.3.16 獲取選項字節(jié)函數(shù)Flash_GetUserOptionByte 128
10.3.17 獲取寫保護選項字節(jié)函數(shù)Flash_GetWriteProtection OptionByte 128
10.3.18 獲取讀保護狀態(tài)函數(shù)Flash_GetReadOutProtectionStatus 128
10.3.19 獲取預取緩沖區(qū)狀態(tài)函數(shù)Flash_GetPrefectchBufferStatus 128
10.3.20 使能或禁用中斷函數(shù)Flash_ITConfig 129
10.3.21 獲取標志位狀態(tài)函數(shù)Flash_GetFlagStatus 129
10.3.22 清除掛起標志函數(shù)Flash_ClearFlag 130
10.3.23 獲取Flash狀態(tài)函數(shù)Flash_GetStatus 130
10.3.24 等待操作結束函數(shù)Flash_WaitForLastOperation 131
10.4 綜合練習 131
10.5 小結 133
10.6 習題 133
第11章 ADC系統(tǒng)(教學視頻:52分鐘) 134
11.1 ADC系統(tǒng)概述 134
11.2 ADC系統(tǒng)功能特性 135
11.2.1 ADC開關控制 135
11.2.2 ADC時鐘 135
11.2.3 ADC通道選擇 135
11.2.4 ADC的轉換模式 135
11.2.5 中斷 136
11.2.6 模擬看門狗 136
11.2.7 ADC的掃描模式 136
11.2.8 ADC的注入通道管理 137
11.2.9 間斷模式 137
11.2.10 ADC的校準模式 137
11.2.11 ADC的數(shù)據(jù)對齊 138
11.2.12 可編程的通道采樣時間 138
11.2.13 外部觸發(fā)轉換 138
11.2.14 DMA請求 139
11.2.15 雙ADC模式 139
11.2.16 溫度傳感器 141
11.3 ADC系統(tǒng)的編程方法 141
11.3.1 ADC寄存器結構 142
11.3.2 ADC寄存器復位函數(shù)ADC_DeInit 143
11.3.3 參數(shù)初始化函數(shù)ADC_Init 143
11.3.4 復位ADC_InitStruct函數(shù)ADC_StructInit 145
11.3.5 使能或禁用ADC模塊函數(shù)ADC_Cmd 145
11.3.6 使能或禁用DMA請求函數(shù)ADC_DMACmd 146
11.3.7 使能或禁用ADC中斷函數(shù)ADC_ITConfig 146
11.3.8 復位ADC校準寄存器函數(shù)ADC_ResetCalibration 146
11.3.9 獲取復位校準寄存器狀態(tài)函數(shù)ADC_GetResetCalibrationStatus 147
11.3.10 開始ADC校準函數(shù)ADC_StartCalibration 147
11.3.11 獲取ADC校準狀態(tài)ADC_GetCalibrationStatus 147
11.3.12 使能或禁用軟件轉換函數(shù)ADC_SoftwareStartConvCmd 147
11.3.13 獲取軟件開始轉換狀態(tài)函數(shù)ADC_GetSoftwareStartConvStatus 148
11.3.14 配置常規(guī)組非連續(xù)模式函數(shù) ADC_DiscModeChannelCountConfig 148
11.3.15 使能或禁用常規(guī)組非連續(xù)模式函數(shù)ADC_DiscModeCmd 149
11.3.16 配置ADC常規(guī)信道函數(shù)ADC_RegularChannelConfig 149
11.3.17 使能或禁用外部觸發(fā)函數(shù)ADC_ExternalTrigConvCmd 150
11.3.18 獲取轉換結果函數(shù)ADC_GetConversionValue 151
11.3.19 獲取雙重轉換結果函數(shù)ADC_GetDualModeConversionValue 151
11.3.20 使能或禁用自動注入組轉換函數(shù)ADC_AutoInjectedConvCmd 151
11.3.21 使能或禁用非連續(xù)模式函數(shù)ADC_InjectedDiscModeCmd 151
11.3.22 配置外部觸發(fā)器函數(shù)ADC_ExternalTrigInjectedConvConfig 152
11.3.23 使能或禁用注入信道轉換函數(shù)ADC_ExternalTrigInjectedConvCmd 152
11.3.24 使能或禁用開始注入信道轉換函數(shù) ADC_SoftwareStartInjectedConvCmd 153
11.3.25 獲取啟動轉換注入狀態(tài)函數(shù)ADC_GetSoftwareStartInjectedConvStatus 153
11.3.26 配置ADC注入信道函數(shù)ADC_InjectedChannelConfig 153
11.3.27 配置注入信道音序器長度函數(shù)ADC_InjectedSequencerLengthConfig 155
11.3.28 設置注入信道轉換值位移函數(shù)ADC_SetInjectedOffset 155
11.3.29 獲取注入信道轉換結果函數(shù)ADC_GetInjectedConversionValue 155
11.3.30 使能或禁用模擬看門狗函數(shù)ADC_AnalogWatchdogCmd 156
11.3.31 配置模擬看門狗域值函數(shù)ADC_AnalogWatchdogThresholdsConfig 156
11.3.32 配置模擬看門狗保護函數(shù)ADC_AnalogWatchdogSingleChannelConfig 156
11.3.33 使能或禁用溫度傳感函數(shù)ADC_TempSensorVrefintCmd 157
11.3.34 獲取ADC標志函數(shù)ADC_GetFlagStatus 157
11.3.35 清除掛起標志函數(shù)ADC_ClearFlag 158
11.3.36 獲取中斷函數(shù)ADC_GetITStatus 158
11.3.37 清除中斷掛起位函數(shù)ADC_ClearITPendingBit 158
11.4 綜合練習 159
11.5 小結 160
11.6 習題 160
第12章 中斷系統(tǒng)(教學視頻:32分鐘) 161
12.1 嵌套向量中斷控制器(NVIC) 161
12.2 NVIC的編程方法 163
12.2.1 NVIC寄存器結構 164
12.2.2 復位NVIC外設函數(shù)NVIC_DeInit 165
12.2.3 復位SCB外設函數(shù)NVIC_SCBDeInit 165
12.2.4 配置優(yōu)先級組函數(shù)NVIC_PriorityGroupConfig 166
12.2.5 初始化NVIC外設函數(shù)NVIC_Init 166
12.2.6 復位NVIC_InitStruct函數(shù)NVIC_StructInit 167
12.2.7 使能PRIMASK優(yōu)先級函數(shù)NVIC_SETPRIMASK 167
12.2.8 用PRIASK優(yōu)先級函數(shù)NVIC_RESETPRIMASK 167
12.2.9 使能FAULTMASK優(yōu)先級函數(shù)NVIC_SETFAULTMASK 167
12.2.10 禁用FAULTMASK優(yōu)先級函數(shù)NVIC_RESETFAULTMASK 167
12.2.11 配置執(zhí)行優(yōu)先級函數(shù)NVIC_BASEPRICONFIG 168
12.2.12 獲取BASEPRI掩碼值函數(shù)NVIC_GetBASEPRI 168
12.2.13 獲取掛起服務的IRQ通道標識符函數(shù)NVIC_GetCurrentPendingIRQChannel 168
12.2.14 獲取IRQ通道掛起位函數(shù) NVIC_GetIRQChannelPendingBitStatus 168
12.2.15 設置中斷掛起位函數(shù)NVIC_GetIRQChannelPendingBit 169
12.2.16 清除中斷掛起位函數(shù)NVIC_ClearIRQChannelPendingBit 169
12.2.17 返回活動句柄函數(shù)NVIC_GetCurrentActiveHandle 169
12.2.18 獲取IRQ通道活動位函數(shù) NVIC_GetIRQChannelActiveBitStatus 169
12.2.19 獲取ID號函數(shù)NVIC_GetCPUID 170
12.2.20 設置向量表和偏移量函數(shù)NVIC_SetVectorTable 170
12.2.21 系統(tǒng)復位函數(shù)NVIC_GenerateSystemReset 170
12.2.22 核復位函數(shù)NVIC_GenerateCoreReset 170
12.2.23 低功耗模式條件函數(shù)NVIC_SystemLPConfig 170
12.2.24 使能或禁用系統(tǒng)句柄函數(shù)NVIC_SystemHandlerConfig 171
12.2.25 配置系統(tǒng)句柄優(yōu)先級函數(shù)NVIC_SystemHandlerPriorityConfig 171
12.2.26 獲取系統(tǒng)句柄掛起位函數(shù)NVIC_GetSystemHandlerPendingBitStatus 172
12.2.27 設置系統(tǒng)句柄掛起位函數(shù)NVIC_SetSystemHandlerPendingBit 173
12.2.28 清除系統(tǒng)句柄掛起位函數(shù)NVIC_ClearSystemHandlerPendingBit 173
12.2.29 獲取系統(tǒng)句柄活動位函數(shù)NVIC_GetSystemHandlerActiveBitStatus 173
12.2.30 獲取系統(tǒng)故障句柄源函數(shù)NVIC_GetFaultHandlerSources 174
12.2.31 獲取故障句柄位置函數(shù)NVIC_GetFaultAddress 175
12.3 外部中斷/事件控制器(EXTI) 175
12.3.1 EXTI主要特性 175
12.3.2 EXTI功能說明 176
12.4 EXTI的編程方法 176
12.4.1 EXTI寄存器結構 177
12.4.2 復位EXTI外設函數(shù)EXTI_DeInit 177
12.4.3 初始化EXTI外設函數(shù)EXTI_Init 177
12.4.4 復位EXTI_InitStruct函數(shù)EXTI_StructInit 178
12.4.5 軟中斷函數(shù)EXTI_GenerateSWInterrupt 178
12.4.6 獲取標志狀態(tài)函數(shù)EXTI_GetFlagStatus 179
12.4.7 清除掛起標志函數(shù)EXTI_ClearFlag 179
12.4.8 獲取EXTI置位函數(shù)EXTI_GetITStatus 179
12.4.9 清除掛起位函數(shù)EXTI_ClearITPendingBit 179
12.5 綜合練習 180
12.6 小結 184
12.7 習題 184
第13章 異步串行通信接口(教學視頻:59分鐘) 185
13.1 USART結構 185
13.1.1 USART特征描述 185
13.1.2 USART發(fā)送器 185
13.1.3 USART接收器 186
13.1.4 LIN模式 186
13.1.5 USART同步模式 187
13.1.6 USART單線半雙工通信 187
13.1.7 USART的智能卡功能 187
13.1.8 USART的IrDA模式 188
13.1.9 USART的DMA通信 188
13.1.10 USART的硬件流控制 189
13.1.11 USART的中斷請求 189
13.2 USART編程方法 190
13.2.1 USART寄存器結構 191
13.2.2 USART寄存器復位函數(shù)USART_DeInit 191
13.2.3 參數(shù)初始化函數(shù)USART_Init 191
13.2.4 復位USART_InitStruct函數(shù)USART_StrucInit 193
13.2.5 使能或禁用USART函數(shù)USART_Cmd 194
13.2.6 使能或禁用中斷函數(shù)USART_ITConfig 194
13.2.7 使能或禁用DMA函數(shù)USART_DMACmd 195
13.2.8 設置節(jié)點地址函數(shù)USART_SetAddress 195
13.2.9 選擇喚醒方式函數(shù)USART_WakeUpConfig 196
13.2.10 USART模式函數(shù)USART_ReceiverWakeUpCmd 196
13.2.11 LIN間隔檢波長度函數(shù)USART_LINBreakDetectionConfig 196
13.2.12 使能或者禁用LIN模式函數(shù)USART_LINCmd 196
13.2.13 發(fā)送數(shù)據(jù)函數(shù)USART_SendData 197
13.2.14 接收數(shù)據(jù)函數(shù)USART_ReceiveData 197
13.2.15 傳輸間斷字符函數(shù)USART_SendBreak 197
13.2.16 設置預警時間函數(shù)USART_SetGuardTime 197
13.2.17 設置時鐘預分頻器函數(shù)USART_SetPrescaler 198
13.2.18 使能或者禁用智能卡模式函數(shù)USART_SmartCardCmd 198
13.2.19 使能或禁用NACK函數(shù)USART_SmartCardNackCmd 198
13.2.20 使能或者禁用半雙工模式函數(shù)USART_HalfDuplexCmd 199
13.2.21 配置IrDA模式函數(shù)USART_IrDAConfig 199
13.2.22 使能或者禁用IrDA模式函數(shù)USART_IrDACmd 199
13.2.23 獲取標志是否置位函數(shù)USART_GetFlagStatus 200
13.2.24 清除未決標志函數(shù)USART_ClearFlag 200
13.2.25 獲取中斷狀態(tài)函數(shù)USART_GetITStatus 200
13.2.26 清除中斷未決位函數(shù)USART_ClearITPendingBit 201
13.3 CAN結構 202
13.3.1 初始化模式 202
13.3.2 正常模式 203
13.3.3 睡眠模式 203
13.3.4 測試模式 203
13.3.5 靜默模式 203
13.3.6 環(huán)回模式 204
13.3.7 環(huán)回靜默模式 204
13.4 CAN編程方法 204
13.4.1 CAN寄存器結構 205
13.4.2 CAN寄存器復位函數(shù)CAN_DeInit 206
13.4.3 參數(shù)初始化函數(shù)CAN_Init 206
13.4.4 過濾參數(shù)初始化函數(shù)CAN_FilterInit 208
13.4.5 復位CAN_InitStruct函數(shù)CAN_StructInit 210
13.4.6 使能或禁用CAN中斷函數(shù)CAN_ITConfig 210
13.4.7 初始化報文發(fā)送函數(shù)CAN_Transmit 211
13.4.8 檢查報文發(fā)送函數(shù)CAN_TransmitStatus 212
13.4.9 取消發(fā)送函數(shù)CAN_CancelTransmit 213
13.4.10 釋放FIFO函數(shù)CAN_FIFORelease 213
13.4.11 獲取掛起報文數(shù)量函數(shù)CAN_MessagePending 214
13.4.12 報文接收函數(shù)CAN_Receive 214
13.4.13 低功耗模式函數(shù)CAN_Sleep 215
13.4.14 喚醒CAN模塊函數(shù)CAN_WakeUp 215
13.4.15 獲取CAN標志函數(shù)CAN_GetFlagStatus 216
13.4.16 清除掛起標志CAN_ClearFlag 216
13.4.17 獲取中斷狀態(tài)函數(shù)CAN_GetITStatus 216
13.4.18 清除中斷掛起位函數(shù)CAN_ClearITPendingBit 217
13.5 綜合練習 218
13.6 小結 220
13.7 習題 220
第14章 同步串行通信接口(教學視頻:52分鐘) 222
14.1 SPI結構 222
14.1.1 SPI從模式工作原理 223
14.1.2 SPI主模式工作原理 223
14.1.3 SPI通信的CRC 224
14.1.4 SPI的DMA通信 224
14.1.5 SPI的中斷請求 224
14.2 SPI編程方法 225
14.2.1 SPI寄存器結構 225
14.2.2 復位SPI外設寄存器函數(shù)SPI_DeInit 226
14.2.3 初始化外設SPIx寄存器函數(shù)SPI_Init 226
14.2.4 設置SPI_InitStruct結構成員函數(shù)SPI_StructInit 227
14.2.5 使能或者禁用SPI外設函數(shù)SPI_Cmd 227
14.2.6 使能或者禁用SPI中斷函數(shù)SPI_ITConfig 227
14.2.7 使能或者禁用SPI的DMA請求函數(shù)SPI_DMACmd 228
14.2.8 發(fā)送數(shù)據(jù)函數(shù)SPI_SendData 228
14.2.9 接收數(shù)據(jù)函數(shù)SPI_ReceiveData 228
14.2.10 配置NSS引腳函數(shù)SPI_NSSInternalSoftwareConfig 228
14.2.11 使能或者禁用SPI SS輸出函數(shù)SPI_SSOutputCmd 229
14.2.12 設置SPI數(shù)據(jù)大小函數(shù)SPI_DataSizeConfig 229
14.2.13 發(fā)送CRC值函數(shù)SPI_TransmitCRC 229
14.2.14 使能或者禁用CRC值計算函數(shù)SPI_CalculateCRC 230
14.2.15 獲取CRC寄存器值函數(shù)SPI_GetCRC 230
14.2.16 獲取CRC多項式寄存器值函數(shù)SPI_GetCRCPolynomial 230
14.2.17 雙向模式下數(shù)據(jù)方向函數(shù)SPI_BiDirectionalLineConfig 231
14.2.18 獲取SPI標志位函數(shù)SPI_GetFlagStatus 231
14.2.19 清除掛起標志位函數(shù)SPI_ClearFlag 231
14.2.20 獲取SPI中斷函數(shù)SPI_GetITStatus 232
14.2.21 清除中斷掛起位函數(shù)SPI_ClearITPendingBit 232
14.3 I2C結構 233
14.3.1 I2C從模式工作原理 233
14.3.2 I2C主模式工作原理 234
14.3.3 SMBus功能 234
14.3.4 I2C的DMA功能 235
14.3.5 I2C的中斷請求 236
14.4 I2C編程方法 236
14.4.1 I2C寄存器結構 237
14.4.2 復位I2C外設寄存器函數(shù)I2C_DeInit 238
14.4.3 初始化I2C外設函數(shù)I2C_Init 238
14.4.4 復位I2C_InitStruct結構函數(shù)I2C_StructInit 239
14.4.5 使能或者禁用I2C外設函數(shù)I2C_Cmd 239
14.4.6 使能或者禁用DMA請求函數(shù)I2C_DMACmd 240
14.4.7 標示最后DMA傳輸函數(shù)I2C_DMALastTransferCmd 240
14.4.8 產生起始信號函數(shù)I2C_GenerateSTART 240
14.4.9 產生停止信號函數(shù)I2C_GenerateSTOP 241
14.4.10 使能或者禁用應答函數(shù)I2C_AcknowledgeConfig 241
14.4.11 配置I2C首地址2函數(shù)I2C_OwnAddress2Config 242
14.4.12 使能或者禁用雙重地址模式函數(shù)I2C_DualAddressCmd 242
14.4.13 使能或者禁用通用調用特性函數(shù)I2C_GeneralCallCmd 242
14.4.14 使能或者禁用I2C中斷函數(shù)I2C_ITConfig 243
14.4.15 發(fā)送數(shù)據(jù)函數(shù)I2C_SendData 243
14.4.16 接收數(shù)據(jù)函數(shù)I2C_ReceiveData 243
14.4.17 發(fā)送地址字節(jié)函數(shù)I2C_Send7bitAddress 243
14.4.18 讀取I2C寄存器函數(shù)I2C_ReadRegister 244
14.4.19 使能或禁用軟件復位函數(shù)I2C_SoftwareResetCmd 244
14.4.20 配置驅動SMBAlert引腳函數(shù)I2C_SMBusAlertConfig 244
14.4.21 使能或者禁用PEC傳輸函數(shù)I2C_TransmitPEC 245
14.4.22 選擇PEC位置函數(shù)I2C_PECPositionConfig 245
14.4.23 使能或禁用PEC計算值函數(shù)I2C_CalculatePEC 245
14.4.24 獲取PEC值函數(shù)I2C_GetPEC 246
14.4.25 使能或者禁用I2C ARP函數(shù)I2C_ARPCmd 246
14.4.26 使能或禁用I2C時鐘伸展函數(shù)I2C_StretchClockCmd 246
14.4.27 配置占空比函數(shù)I2C_FastModeDutyCycleConfig 246
14.4.28 獲取最近的I2C事件函數(shù)I2C_GetLastEvent 247
14.4.29 檢查I2C事件函數(shù)I2C_CheckEvent 247
14.4.30 獲取I2C標志位函數(shù)I2C_GetFlagStatus 248
14.4.31 清除掛起標志函數(shù)I2C_ClearFlag 248
14.4.32 獲取I2C中斷函數(shù)I2C_GetITStatus 249
14.4.33 清除中斷掛起位函數(shù)I2C_ClearITPendingBit 249
14.5 綜合練習 250
14.6 小結 252
14.7 習題 252
第15章 通用定時器系統(tǒng)(教學視頻:39分鐘) 254
15.1 系統(tǒng)計時器(SysTick)及其編程方法 254
15.1.1 SysTick寄存器結構 254
15.1.2 配置SysTick時鐘源函數(shù)SysTick_CLKSourceConfig 254
15.1.3 設置SysTick重載值函數(shù)SysTick_Setreload 255
15.1.4 使能或禁用SysTick計數(shù)器函數(shù)SysTick_CounterCmd 255
15.1.5 使能或者取消SysTick中斷函數(shù)SysTick_ITConfig 255
15.1.6 獲取SysTick計數(shù)器值函數(shù)SysTick_GetCounter 256
15.1.7 獲取SysTick標志位函數(shù)SysTick_GetFlagStatus 256
15.2 通用定時器(TIM)結構 256
15.2.1 時基單元 257
15.2.2 計數(shù)器的模式 257
15.2.3 通用定時器的特殊工作模式 258
15.3 通用定時器(TIM)的編程方法 259
15.3.1 TIM寄存器結構 261
15.3.2 復位TIM外設寄存器函數(shù)TIM_DeInit 262
15.3.3 初始化TIMx時間基單元函數(shù)TIM_TimeBaseInit 262
15.3.4 初始化TIMx外設函數(shù)TIM_OCInit函數(shù) 263
15.3.5 初始化TIMx外設函數(shù)TIM_ICInit 264
15.3.6 初始化TIM_TimeBaseInitStruct結構函數(shù) TIM_TimeBaseStructInit 265
15.3.7 初始化TIM_OCInitStruct結構函數(shù)TIM_OCStructInit 265
15.3.8 初始化TIM_ICInitStruct結構函數(shù)TIM_ICStructInit 265
15.3.9 使能或者禁用TIM外設函數(shù)TIM_Cmd 265
15.3.10 使能或者禁用TIM中斷函數(shù)TIM_ITConfig 266
15.3.11 配置DMA接口函數(shù)TIM_DMAConfig 266
15.3.12 使能或者禁用DMA請求函數(shù)TIM_DMACmd 266
15.3.13 配置TIMx內部時鐘函數(shù)TIM_InternalClockConfig 267
15.3.14 配置TIMx內部觸發(fā)器為外部時鐘函數(shù) TIM_ITRxExternalClockConfig 267
15.3.15 配置TIMx觸發(fā)器為外部時鐘函數(shù)TIM_TIxExternalConfig 267
15.3.16 配置TIMx外部時鐘模型1函數(shù)TIM_ETRClockMode1Config 268
15.3.17 配置TIMx外部時鐘模型2函數(shù) TIM_ETRClockMode2Config 268
15.3.18 配置TIMx外部觸發(fā)函數(shù)TIM_ETRConfig 268
15.3.19 選擇TIMx輸入觸發(fā)源函數(shù)TIM_SelectInputTrigger 269
15.3.20 設置TIMx預分頻函數(shù)TIM_PrescalerConfig 269
15.3.21 設置TIMx計數(shù)器模式函數(shù)TIM_CounterModeConfig 269
15.3.22 設置TIMx輸出1函數(shù)TIM_ForcedOC1Config 270
15.3.23 設置TIMx輸出2函數(shù)TIM_ForcedOC2Config 270
15.3.24 設置TIMx輸出3函數(shù)TIM_ForcedOC3Config 270
15.3.25 設置TIMx輸出4函數(shù)TIM_ForcedOC4Config 271
15.3.26 使能或禁用ARR上的預裝載寄存器函數(shù) TIM_ARRPreloadConfig 271
15.3.27 選擇外設捕獲比較DMA源函數(shù)TIM_SelectCCDMA 271
15.3.28 使能或禁用CCR1上的預裝載寄存器函數(shù) TIM_OC1PreloadConfig 272
15.3.29 使能或禁用CCR2上的預裝載寄存器函數(shù) TIM_OC2PreloadConfig 272
15.3.30 使能或禁用CCR3上的預裝載寄存器函數(shù) TIM_OC3PreloadConfig 272
15.3.31 使能或禁用CCR4上的預裝載寄存器函數(shù) TIM_OC4PreloadConfig 273
15.3.32 設置捕獲比較1快速特征函數(shù)TIM_OC1FastConfig 273
15.3.33 設置捕獲比較2快速特征函數(shù)TIM_OC2FastConfig 273
15.3.34 設置捕獲比較3快速特征函數(shù)TIM_OC3FastConfig 274
15.3.35 設置捕獲比較4快速特征函數(shù)TIM_OC4FastConfig 274
15.3.36 清除或者保持OCREF1信號函數(shù)TIM_ClearOC1Ref 274
15.3.37 清除或者保持OCREF2信號函數(shù)TIM_ClearOC2Ref 275
15.3.38 清除或者保持OCREF3信號函數(shù)TIM_ClearOC3Ref 275
15.3.39 清除或者保持OCREF4信號函數(shù)TIM_ClearOC4Ref 275
15.3.40 使能或禁用更新事件函數(shù)TIM_UpdateDisableConfig 275
15.3.41 設置TIMx編碼界面函數(shù)TIM_EncoderInterfaceConfig 276
15.3.42 設置事件由軟件產生函數(shù)TIM_GenerateEvent 276
15.3.43 設置TIMx通道1極性函數(shù)TIM_OC1PolarityConfig 277
15.3.44 設置TIMx通道2極性函數(shù)TIM_OC2PolarityConfig 277
15.3.45 設置TIMx通道3極性函數(shù)TIM_OC3PolarityConfig 277
15.3.46 設置TIMx通道4極性函數(shù)TIM_OC4PolarityConfig 277
15.3.47 設置TIMx更新請求源函數(shù)TIM_UpdateRequestConfig 278
15.3.48 使能或禁用霍爾傳感器接口函數(shù)TIM_SelectHallSensor 278
15.3.49 設置TIM單脈沖模式函數(shù)TIM_SelectOnePulseMode 279
15.3.50 選擇觸發(fā)輸出模式函數(shù)TIM_SelectOutputTrigger 279
15.3.51 選擇TIMx從模式函數(shù)TIM_SelectSlaveMode 279
15.3.52 設置或者重主/從模式函數(shù)TIM_SelectMasterSlaveMode 279
15.3.53 設置TIM計數(shù)器寄存器值函數(shù)TIM_SetCounter 280
15.3.54 設置TIM自動重裝載寄存器值函數(shù)TIM_SetAutoreload 280
15.3.55 設置捕獲比較1寄存器值函數(shù)TIM_SetCompare1 280
15.3.56 設置捕獲比較2寄存器值函數(shù)TIM_SetCompare2 280
15.3.57 設置捕獲比較3寄存器值函數(shù)TIM_SetCompare3 281
15.3.58 設置捕獲比較4寄存器值函數(shù)TIM_SetCompare4 281
15.3.59 設置TIMx輸入捕獲1預分頻函數(shù)TIM_SetIC1Prescaler 281
15.3.60 設置TIMx輸入捕獲2預分頻函數(shù)TIM_SetIC2Prescaler 281
15.3.61 設置TIMx輸入捕獲3預分頻函數(shù)TIM_SetIC3Prescaler 282
15.3.62 設置TIMx輸入捕獲4預分頻函數(shù)TIM_SetIC4Prescaler 282
15.3.63 設置TIMx時鐘分割值函數(shù)TIM_SetClockDivision 282
15.3.64 獲取TIMx輸入捕獲1值函數(shù)TIM_GetCapture1 282
15.3.65 獲取TIMx輸入捕獲2值函數(shù)TIM_GetCapture2 283
15.3.66 獲取TIMx輸入捕獲3值函數(shù)TIM_GetCapture3 283
15.3.67 獲取TIMx輸入捕獲4值函數(shù)TIM_GetCapture4 283
15.3.68 獲取TIMx計數(shù)器值函數(shù)TIM_GetCounter 283
15.3.69 獲取TIMx預分頻值函數(shù)TIM_GetPrescaler 283
15.3.70 獲取TIM標志位函數(shù)TIM_GetFlagStatus 284
15.3.71 清除掛起標志位函數(shù)TIM_ClearFlag 284
15.3.72 獲取TIM中斷函數(shù)TIM_GetITStatus 284
15.3.73 清除中斷掛起標志位函數(shù)TIM_ClearITPendingBit 285
15.4 綜合練習 285
15.5 小結 287
15.6 習題 287
第16章 高級控制定時器系統(tǒng)(教學視頻:46分鐘) 289
16.1 高級控制定時器(TIM1)結構 289
16.1.1 時基單元 289
16.1.2 計數(shù)器模式 290
16.1.3 重復向下計數(shù)器 291
16.1.4 高級控制定時器的特殊工作模式 291
16.1.5 與霍爾元件的接口 292
16.2 高級控制定時器(TIM1)的編程方法 292
16.2.1 TIM1寄存器結構 295
16.2.2 復位TIM1外設函數(shù)TIM1_DeInit 296
16.2.3 初始化TIM1時間基數(shù)單位函數(shù)TIM1_TIM1BaseInit 296
16.2.4 初始化TIM1通道1函數(shù)TIM1_OC1Init 296
16.2.5 初始化TIM1通道2函數(shù)TIM1_OC2Init 297
16.2.6 初始化TIM1通道3函數(shù)TIM1_OC3Init 297
16.2.7 初始化TIM1通道4函數(shù)TIM1_OC4Init 298
16.2.8 設置剎車特性函數(shù)TIM1_BDTRConfig 298
16.2.9 初始化外設TIM1函數(shù)TIM1_ICInit 299
16.2.10 設置PWM輸入模式函數(shù)TIM1_PWMIConfig 299
16.2.11 復位TIM1_TIM1BaseInitStruct結構成員函數(shù) TIM1_TIM1BaseStructInit 300
16.2.12 復位TIM1_OCInitStruct結構成員函數(shù)TIM1_OCStructInit 301
16.2.13 復位TIM1_ICInitStruct結構成員函數(shù)TIM1_ICStructInit 301
16.2.14 復位TIM1_BDTRInitStruct結構成員函數(shù) TIM1_BDTRStructInit 301
16.2.15 使能或者禁用TIM1外設函數(shù)TIM1_Cmd 302
16.2.16 使能或禁用TIM1主輸出函數(shù)TIM1_CtrlPWMOutputs 302
16.2.17 使能或禁用TIM1中斷TIM1_ITConfig函數(shù) 302
16.2.18 設置DMA接口函數(shù)TIM1_DMAConfig 302
16.2.19 使能或禁用DMA請求函數(shù)TIM1_DMACmd 303
16.2.20 設置DMA內部時鐘函數(shù)TIM1_InternalClockConfig 303
16.2.21 配置外部時鐘模式1函數(shù)TIM1_ETRClockMode1Config 303
16.2.22 配置外部時鐘模式2函數(shù)TIM1_ETRClockMode2Config 304
16.2.23 配置TIM1外部觸發(fā)函數(shù)TIM1_ETRConfig 304
16.2.24 設置內部觸發(fā)為外部時鐘模式函數(shù) TIM1_ITRxExternalClockConfig 304
16.2.25 設置TIM1觸發(fā)為外部時鐘函數(shù)TIM1_TIxExternalClockConfig 304
16.2.26 選擇TIM1輸入觸發(fā)源函數(shù)TIM1_SelectInputTrigger 305
16.2.27 使能或禁用更新事件函數(shù)TIM1_UpdateDisableConfig 305
16.2.28 設置更新請求源函數(shù)TIM1_UpdateRequestConfig 305
16.2.29 使能或禁用霍爾傳感器接口函數(shù)TIM1_SelectHallSensor 306
16.2.30 設置TIM1單脈沖模式函數(shù)TIM1_SelectOnePulseMode 306
16.2.31 選擇觸發(fā)輸出模式函數(shù)TIM1_SelectOutputTrigger 306
16.2.32 選擇TIM1從模式函數(shù)TIM1_SelectSlaveMode 306
16.2.33 選擇TIM1主/從模式函數(shù)TIM1_SelectMasterSlaveMode 307
16.2.34 設置TIM1編碼界面函數(shù)TIM1_EncoderInterfaceConfig 307
16.2.35 設置TIM1預分頻器函數(shù)TIM1_PrescalerConfig 307
16.2.36 設置TIM1計數(shù)器模式函數(shù)TIM1_CounterModeConfig 307
16.2.37 設置TIM1輸出1電平函數(shù)TIM1_ForcedOC1Config 308
16.2.38 設置TIM1輸出2電平函數(shù)TIM1_ForcedOC2Config 308
16.2.39 設置TIM1輸出3電平函數(shù)TIM1_ForcedOC3Config 308
16.2.40 設置TIM1輸出4電平函數(shù)TIM1_ForcedOC4Config 309
16.2.41 使能或禁用預裝載寄存器TIM1_ARRPreloadConfig函數(shù) 309
16.2.42 選擇TIM1外設的通信事件函數(shù)TIM1_SelectCOM 309
16.2.43 選擇捕獲比較DMA源函數(shù)TIM1_SelectCCDMA 309
16.2.44 設置或重置捕獲比較控制位函數(shù)TIM1_CCPreloadControl 310
16.2.45 使能或禁用CCR1上的預裝載寄存器函數(shù) TIM1_OC1PreloadConfig 310
16.2.46 使能或禁用CCR2上的預裝載寄存器函數(shù) TIM1_OC2PreloadConfig 310
16.2.47 使能或禁用CCR3上的預裝載寄存器函數(shù) TIM1_OC3PreloadConfig 310
16.2.48 使能或禁用CCR4上的預裝載寄存器函數(shù) TIM1_OC4PreloadConfig 311
16.2.49 設置捕獲比較1快速特征函數(shù)TIM1_OC1FastConfig 311
16.2.50 設置捕獲比較2快速特征函數(shù)TIM1_OC2FastConfig 311
16.2.51 設置捕獲比較3快速特征函數(shù)TIM1_OC3FastConfig 311
16.2.52 設置捕獲比較4快速特征函數(shù)TIM1_OC4FastConfig 311
16.2.53 清除或保持OCREF1信號函數(shù)TIM1_ClearOC1Ref 312
16.2.54 清除或保持OCREF2信號函數(shù)TIM1_ClearOC2Ref 312
16.2.55 清除或保持OCREF3信號函數(shù)TIM1_ClearOC3Ref 312
16.2.56 清除或保持OCREF4信號函數(shù)TIM1_ClearOC4Ref 312
16.2.57 設置事件由軟件產生函數(shù)TIM1_GenerateEvent 312
16.2.58 設置通道1極性函數(shù)TIM1_OC1PolarityConfig 313
16.2.59 設置通道1N極性函數(shù)TIM1_OC1NPolarityConfig 313
16.2.60 設置通道2極性函數(shù)TIM1_OC2PolarityConfig 313
16.2.61 設置通道2N極性函數(shù)TIM1_OC2NPolarityConfig 313
16.2.62 設置通道3極性函數(shù)TIM1_OC3PolarityConfig 314
16.2.63 設置通道3N極性函數(shù)TIM1_OC3NPolarityConfig 314
16.2.64 設置通道4極性函數(shù)TIM1_OC4PolarityConfig 314
16.2.65 設置計數(shù)器寄存器值函數(shù)TIM1_SetCounter 314
16.2.66 使能或禁用捕獲比較通道x函數(shù)TIM1_CCxCmd 314
16.2.67 使能或禁用捕獲比較通道xN函數(shù)TIM1_CCxNCmd 315
16.2.68 選擇TIM1輸出比較模式函數(shù)TIM1_SelectOCxM 315
16.2.69 設置自動重裝載寄存器值函數(shù)TIM1_SetAutoreload 316
16.2.70 設置捕獲比較1寄存器值函數(shù)TIM1_SetCompare1 316
16.2.71 設置捕獲比較2寄存器值函數(shù)TIM1_SetCompare2 316
16.2.72 設置捕獲比較3寄存器值函數(shù)TIM1_SetCompare3 316
16.2.73 設置捕獲比較4寄存器值函數(shù)TIM1_SetCompare4 317
16.2.74 設置輸入捕獲1預分頻值函數(shù)TIM1_SetIC1Prescaler 317
16.2.75 設置輸入捕獲2預分頻值函數(shù)TIM1_SetIC2Prescaler 317
16.2.76 設置輸入捕獲3預分頻值函數(shù)TIM1_SetIC3Prescaler 317
16.2.77 設置輸入捕獲4預分頻值函數(shù)TIM1_SetIC4Prescaler 318
16.2.78 設置時鐘分割值函數(shù)TIM1_SetClockDivision 318
16.2.79 獲取輸入捕獲1的值函數(shù)TIM1_GetCapture1 318
16.2.80 獲取輸入捕獲2的值函數(shù)TIM1_GetCapture2 318
16.2.81 獲取輸入捕獲3的值函數(shù)TIM1_GetCapture3 318
16.2.82 獲取輸入捕獲4的值函數(shù)TIM1_GetCapture4 319
16.2.83 獲取TIM1計數(shù)器的值函數(shù)TIM1_GetCounter 319
16.2.84 獲取TIM1預分頻值函數(shù)TIM1_GetPrescaler 319
16.2.85 獲取TIM1標志位函數(shù)TIM1_GetFlagStatus 319
16.2.86 清除TIM1掛起標志位函數(shù)TIM1_ClearFlag 319
16.2.87 獲取TIM1中斷函數(shù)TIM1_GetITStatus 320
16.2.88 清除TIM1中斷掛起標志位函數(shù)TIM1_ClearITPendingBit 320
16.3 綜合練習 320
16.4 小結 322
16.5 習題 322
第17章 時鐘控制系統(tǒng)(教學視頻:43分鐘) 324
17.1 復位和時鐘控制(RCC) 324
17.1.1 復位的類型 324
17.1.2 時鐘的類型 325
17.2 復位和時鐘控制(RCC)的編程方法 327
17.2.1 RCC寄存器結構 328
17.2.2 RCC外圍設備復位函數(shù)RCC_DeInit 328
17.2.3 配置高速振蕩器HSE函數(shù)RCC_HSEConfig 329
17.2.4 等待HSE完成啟動函數(shù)RCC_WaitForHSEStartUp 329
17.2.5 校正HIS函數(shù)RCC_AdjustHSICalibrationValue 330
17.2.6 使能或禁用HIS函數(shù)RCC_HSICmd 330
17.2.7 配置PLL函數(shù)RCC_PLLConfig 330
17.2.8 使能或者禁用PLL函數(shù)RCC_PLLCmd 331
17.2.9 配置系統(tǒng)時鐘函數(shù)RCC_SYSCLKConfig 331
17.2.10 獲取系統(tǒng)時鐘源函數(shù)RCC_GetSYSCLKSource 331
17.2.11 配置AHB時鐘函數(shù)RCC_HCLKConfig 331
17.2.12 配置低速APB時鐘函數(shù)RCC_PCLK1Config 332
17.2.13 配置高速APB時鐘函數(shù)RCC_PCLK2Config 332
17.2.14 使能或者禁用RCC中斷函數(shù)RCC_ITConfig 333
17.2.15 配置USB時鐘函數(shù)RCC_USBCLKConfig 333
17.2.16 配置ADC時鐘函數(shù)RCC_ADCCLKConfig 333
17.2.17 配置LSE函數(shù)RCC_LSEConfig 334
17.2.18 使能或者禁用LSI函數(shù)RCC_LSICmd 334
17.2.19 配置RTC時鐘函數(shù)RCC_RTCCLKConfig 334
17.2.20 使能或者禁用RTC時鐘函數(shù)RCC_RTCCLKCmd 335
17.2.21 獲取時鐘頻率函數(shù)RCC_GetClocksFreq 335
17.2.22 使能或禁用AHB外圍設備時鐘函數(shù)RCC_AHBPeriphClockCmd 336
17.2.23 使能或者禁用高速APB2外圍設備時鐘函數(shù)RCC_APB2PeriphClockCmd 336
17.2.24 使能或者禁用低速APB1外圍設備時鐘函數(shù)RCC_APB1PeriphClockCmd 337
17.2.25 高速APB2外圍設備復位函數(shù)RCC_APB2PeriphResetCmd 337
17.2.26 低速APB1外圍設備復位函數(shù)RCC_APB1PeriphResetCmd 337
17.2.27 備份域復位函數(shù)RCC_BackupResetCmd 338
17.2.28 使能或者禁用時鐘安全系統(tǒng)函數(shù) 17.2.24 RCC_ClockSecuritySystemCmd 338
17.2.29 選擇輸出時鐘源函數(shù)RCC_MCOConfig 338
17.2.30 獲取RCC標志函數(shù)RCC_GetFlagStatus 338
17.2.31 清除RCC復位標志函數(shù)RCC_ClearFlag 339
17.2.32 獲取RCC中斷函數(shù)RCC_GetITStatus 340
17.2.33 清除RCC中斷掛起位函數(shù)RCC_ClearITPendingBit 340
17.3 實時時鐘(RTC) 340
17.3.1 RTC的復位 341
17.3.2 讀RTC寄存器 341
17.3.3 配置RTC寄存器 341
17.3.4 RTC標志的設置 341
17.4 實時時鐘(RTC)的編程方法 342
17.4.1 RTC寄存器結構 342
17.4.2 使能或者禁用RTC中斷函數(shù)RTC_ITConfig 343
17.4.3 進入RTC配置模式函數(shù)RTC_EnterConfigMode 343
17.4.4 跳出RTC配置模式函數(shù)RTC_ExitConfigMode 343
17.4.5 獲取RTC計數(shù)值函數(shù)RTC_GetCounter 343
17.4.6 設置RTC計數(shù)值函數(shù)RTC_SetCounter 344
17.4.7 獲取RTC預分頻數(shù)值函數(shù)TC_GetPrescaler 344
17.4.8 設置RTC預分頻數(shù)值函數(shù)RTC_SetPrescaler 344
17.4.9 設置RTC警報值函數(shù)RTC_SetAlarm 344
17.4.10 獲取RTC分割值函數(shù)RTC_GetDivider 344
17.4.11 等待RTC寄存器寫完成函數(shù)RTC_WaitForLastTask 345
17.4.12 等待同步函數(shù)RTC_WaitForSynchro 345
17.4.13 獲取RTC標志位函數(shù)RTC_GetFlagStatus 345
17.4.14 清除RTC掛起標志位函數(shù)RTC_ClearFlag 346
17.4.15 獲取RTC中斷函數(shù)RTC_GetITStatus 346
17.4.16 清除RTC中斷掛起位函數(shù)RTC_ClearITPendingBit 346
17.5 綜合練習 346
17.6 小結 350
17.7 習題 351
第18章 看門狗系統(tǒng)(教學視頻:22分鐘) 352
18.1 獨立看門狗(IWDG)簡介 352
18.2 獨立看門狗(IWDG)的編程方法 353
18.2.1 IWDG寄存器結構 353
18.2.2 使能或禁用寫寄存器函數(shù)IWDG_WriteAccessCmd 353
18.2.3 設置IWDG預分頻因子函數(shù)IWDG_SetPrescaler 354
18.2.4 設置IWDG重載寄存器函數(shù)IWDG_SetReload 354
18.2.5 重載IWDG計數(shù)器函數(shù)IWDG_ReloadCounter 354
18.2.6 使能獨立看門狗函數(shù)IWDG_Enable 354
18.2.7 獲取IWDG標志函數(shù)IWDG_GetFlagStatus 355
18.3 窗口看門狗(WWDG)簡介 355
18.3.1 窗口看門狗(WWDG)的基本功能 356
18.3.2 編寫窗口看門狗(WWDG)超時程序 356
18.4 窗口看門狗(WWDG)的編程方法 356
18.4.1 WWDG寄存器結構 357
18.4.2 復位WWDG外圍設備寄存器復位函數(shù)WWDG_DeInit 357
18.4.3 設置WWDG預分頻因子函數(shù)WWDG_SetPrescaler 357
18.4.4 設置窗口值函數(shù)WWDG_SetWindowValue 358
18.4.5 使能EWI函數(shù)WWDG_EnableIT 358
18.4.6 設置WWDG計數(shù)器函數(shù)WWDG_SetCounter 358
18.4.7 使能WWDG函數(shù)WWDG_Enable 358
18.4.8 獲取中斷標志位函數(shù)WWDG_GetFlagStatus 358
18.4.9 清除中斷標志位函數(shù)WWDG_ClearFlag 359
18.5 綜合練習 359
18.6 小結 363
18.7 習題 363
第19章 備份寄存器(BKP)(教學視頻:18分鐘) 364
19.1 備份寄存器(BKP)簡介 364
19.1.1 侵入檢測 364
19.1.2 RTC校準 364
19.2 備份寄存器(BKP)的編程方法 365
19.2.1 BKP寄存器結構 365
19.2.2 BKP寄存器復位函數(shù)BKP_DeInit 366
19.2.3 配置侵入檢測引腳有效電平函數(shù)BKP_TamperPinLevelConfig 366
19.2.4 使能或禁用侵入檢測引腳函數(shù)BKP_TamperPinCmd 366
19.2.5 使能或禁用侵入檢測引腳中斷函數(shù)BKP_ITConfig 366
19.2.6 使能或禁用校準時鐘輸出函數(shù)BKP_RTCCalibrationClockOutputCmd 367
19.2.7 設置RTC時鐘校準值函數(shù)BKP_SetRTCCalibrationValue 367
19.2.8 寫備份寄存器函數(shù)BKP_WriteBackupRegister 367
19.2.9 讀備份寄存器函數(shù)BKP_ReadBackupRegister 367
19.2.10 獲取侵入檢測引腳事件標志函數(shù)BKP_GetFlagStatus 368
19.2.11 清除事件掛起標志函數(shù)BKP_ClearFlag 368
19.2.12 獲取中斷狀態(tài)函數(shù)BKP_GetITStatus 368
19.2.13 清除中斷掛起位函數(shù)BKP_ClearITPendingBit 368
19.3 綜合練習 368
19.4 小結 370
19.5 習題 371
第20章 DMA控制器(教學視頻:26分鐘) 372
20.1 DMA控制器簡介 372
20.1.1 DMA寄存器的基本特性 372
20.1.2 DMA寄存器的基本功能 373
20.2 DMA控制器的編程方法 375
20.2.1 DMA寄存器結構 375
20.2.2 DMA通道寄存器復位函數(shù)DMA_DeInit 376
20.2.3 參數(shù)初始化函數(shù)DMA_Init 376
20.2.4 復位DMA_InitStruct函數(shù)DMA_StructInit 378
20.2.5 使能或禁用DMA通道函數(shù)DMA_Cmd 378
20.2.6 使能或禁用DMA通道中斷函數(shù)DMA_ITConfig 378
20.2.7 獲取剩余數(shù)據(jù)單元函數(shù)DMA_GetCurrDataCounter 379
20.2.8 獲取DMA通道標志函數(shù)DMA_GetFlagStatus 379
20.2.9 清除掛起標志函數(shù)DMA_ClearFlag 380
20.2.10 獲取中斷狀態(tài)函數(shù)DMA_GetITStatus 380
20.2.11 清除掛起位函數(shù)DMA_ClearITPendingBit 381
20.3 綜合練習 381
20.4 小結 383
20.5 習題 383
第21章 電源控制(PWR)(教學視頻:34分鐘) 385
21.1 電源控制的結構 385
21.2 電源管理器 386
21.2.1 上電復位(POR)和掉電復位(PDR) 386
21.2.2 可編程電壓監(jiān)測器(PVD) 386
21.3 低功耗模式 387
21.3.1 降低系統(tǒng)時鐘 387
21.3.2 外部時鐘的控制 387
21.3.3 睡眠模式 388
21.3.4 停止模式 389
21.3.5 待機模式 389
21.3.6 低功耗模式下的自動喚醒(AWU) 390
21.4 電源控制(PWR)的編程方法 390
21.4.1 GPIO寄存器結構 391
21.4.2 PWR外圍寄存器復位函數(shù)PWR_DeInit 391
21.4.3 使能或禁用備份寄存器函數(shù)PWR_BackupAccessCmd 391
21.4.4 使能或禁用電源電壓探測器函數(shù)PWR_PVDCmd 391
21.4.5 配置電壓門限值函數(shù)PWR_PVDLevelConfig 392
21.4.6 使能或禁用喚醒引腳函數(shù)PWR_WakeUpPinCmd 392
21.4.7 進入STOP模式函數(shù)PWR_EnterSTOPMode 392
21.4.8 進入STANDBY模式函數(shù)PWR_EnterSTANDBYMode 393
21.4.9 獲取PWR標志位狀態(tài)函數(shù)PWR_GetFlagStatus 393
21.4.10 清除PWR掛起標志位函數(shù)PWR_ClearFlag 393
21.5 綜合練習 394
21.6 小結 397
21.7 習題 397
第四篇 嵌入式系統(tǒng)實戰(zhàn)
第22章 嵌入式實時操作系統(tǒng)FreeRTOS的移植(教學視頻:22分鐘) 399
22.1 獲取FreeRTOS內核 399
22.2 在STM32上移植FreeRTOS 399
22.2.1 宏定義部分 400
22.2.2 C接口部分 400
22.2.3 匯編處理部分 402
22.2.4 創(chuàng)建測試任務 404
22.3 小結 405
22.4 習題 405
第23章 嵌入式系統(tǒng)UC/OS-Ⅱ的移植(教學視頻:23分鐘) 407
23.1 獲取UC/OS-Ⅱ嵌入式系統(tǒng)內核 407
23.2 在STM32上移植UC/OS-Ⅱ 407
23.2.1 移植要求 407
23.2.2 頭文件OS_CPU.H 408
23.2.3 C文件OS_CPU_C.C 409
23.2.4 匯編文件OS_CPU_A.ASM 411
23.2.5 測試任務 413
23.3 小結 416
23.4 習題 416

本目錄推薦

掃描二維碼
Copyright ? 讀書網 m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號