《STM32F系列ARMCortex-M3核微控制器开发与应用》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:喻金钱,喻斌编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:9787302244424
  • 页数:496 页
图书介绍:本书从实际应用需求和开发过程中所遇到的问题出发,介绍了STM32F系列ARM芯片内外设和各个功能模块的应用。

第1部分 基础篇 2

第1章 开发板硬件结构 2

1.1电路原理图 2

1.2原理图说明 5

1.2.1 电源电路 5

1.2.2 系统复位电路 5

1.2.3 时钟电路 6

1.2.4 JTAG接口电路 6

1.2.5 串口电路 6

1.2.6 键盘电路 7

1.2.7 LED灯电路 8

1.2.8 12C接口电路 8

1.2.9 ADC电路 9

1.2.10 USB电路 10

1.2.11 CAN电路 10

1.2.12 语音采集和播放电路 10

1.2.13 SPI接口电路 11

1.2.14 电动机驱动板接口电路 13

1.3开发板元器件布局图 14

1.3.1跳线器说明 14

1.3.2硬件资源使用 19

第2章 编译开发环境的建立 21

2.1下载和安装EWARM 21

2.2IDE界面简介 24

2.3生成一个新项目 25

2.3.1建立项目文件目录,复制公共文件 25

2.3.2生成新的工作区 25

2.3.3生成新项目 26

2.3.4给项目添加文件 27

2.4修改应用文件 28

2.5配置项目选项 29

2.5.1通用选项设置 30

2.5.2 C/C﹢﹢编译器选项设置 30

2.5.3 Assembler选项设置 31

2.5.4 Output Converter选项设置 31

2.5.5 Linker选项设置 32

2.6 Flash Loader Demo下载器介绍 33

2.7力源STM32F的ISP下载器 36

2.8串口调试助手介绍 37

第2部分 应用篇 40

第3章 通用和复用功能I/O口 40

3.1概述 40

3.1.1通用I/O 40

3.1.2单独的位设置或位清除 41

3.1.3外部中断/唤醒线 41

3.1.4复用功能 41

3.1.5软件重新映射I/O复用功能 41

3.1.6 GPIO锁定机制 41

3.1.7输入配置 42

3.1.8输出配置 42

3.1.9复用功能配置 42

3.1.10模拟输入配置 43

3.2库函数 43

3.2.1函数GPIO-Init 43

3.2.2函数GPIO-SetBits 45

3.2.3函数GPIO-ResetBits 45

3.2.4函数GPIO-WriteBit 46

3.2.5函数GPIO-Write 46

3.2.6函数GPIO-ReadOutputDataBit 47

3.2.7函数GPIO-ReadOutputData 47

3.2.8函数GPIO-RcadInputDataBit 48

3.2.9函数GPIO-RcadInputData 48

3.3 I/O端口的外设映射 49

3.3.1将OSC32-IN/OSC32-OUT作为PC14/PC15端口 49

3.3.2将OSC-IN/OSC-OUT引脚作为PD0/PD1端口 49

3.3.3 CAN复用功能重映射 50

3.3.4 JTAG/SWD复用功能重映射 50

3.3.5 ADC复用功能重映射 51

3.3.6 定时器复用功能重映射 51

3.3.7 USART复用功能重映射 53

3.3.8 12C1复用功能重映射 53

3.3.9 SP11复用功能重映射 53

3.4位运算 54

3.4.1移位运算 54

3.4.2按位与运算 57

3.4.3按位或运算 57

3.4.4取反运算 58

3.4.5异或运算 58

3.5I/O口输出实例1——控制LED灯 59

3.5.1实例要求 59

3.5.2硬件基础 59

3.5.3软件结构 59

3.5.4实例代码 60

3.5.5编译下载和调试 68

3.6I/O口输出实例2——流水灯 68

3.6.1实例要求 68

3.6.2硬件基础 68

3.6.3软件结构 69

3.6.4实例代码 70

3.6.5编译下载和调试 71

3.7I/O口输入实例——按键输入1 72

3.7.1实例要求 72

3.7.2硬件基础 72

3.7.3软件结构 72

3.7.4实例代码 73

3.7.5编译下载和调试 75

3.81/O口输入实例——按键输入2 76

第4章USART串口的一般应用 79

4.1 USART介绍 79

4.1.1 USART主要特性 79

4.1.2 USART功能概述 80

4.1.3发送器 80

4.1.4接收器 82

4.1.5分数比特率的产生 83

4.1.6多处理器通信 84

4.1.7 LIN模式 84

4.1.8 USART同步模式 85

4.1.9单线半双工通信 87

4.1.10智能卡 87

4.1.11 IrDA SIR ENDEC功能块 89

4.1.12 USART中断请求 90

4.1.13 USART模式配置 91

4.2 USART串口库函数介绍 91

4.2.1函数USART-Init 91

4.2.2函数USART-Cmd 94

4.2.3函数USART-ITConfig 94

4.2.4函数USART-SendData 95

4.2.5函数USART-ReceiveData 95

4.2.6函数USART-GetFlagStatus 96

4.2.7函数USART-C1earFlag 97

4.2.8函数USART-GetITStatus 97

4.3不同型号芯片的USART串口复用重映射 98

4.3.1引脚为36的系列芯片和引脚为48和64,容量为32KB的芯片 98

4.3.2引脚为48的中容量芯片 99

4.3.3引脚为64的中容量芯片 99

4.3.4引脚为100的中容量芯片 100

4.3.5引脚为64的大容量芯片 101

4.3.6引脚为144的系列芯片和引脚为100的高容量芯片 102

4.4 USART通信实例1——串口发送数据 102

4.4.1实例要求 102

4.4.2硬件基础 103

4.4.3软件结构 103

4.4.4实例代码 106

4.4.5编译下载和调试 108

4.5 USART通信实例2——中断接收数据方式 109

4.5.1实例要求 109

4.5.2硬件基础 109

4.5.3软件结构 109

4.5.4实例代码 110

4.5.5编译下载和调试 112

4.6使用队列收发数据实例 112

第5章 系统时基定时器 115

5.1概述 115

5.2库函数介绍 115

5.2.1函数SysTick-CLKSourceConfig 115

5.2.2函数SysTick-SetReload 116

5.2.3函数SysTick-CounterCmd 116

5.2.4函数SysTick-ITConfig 117

5.2.5函数SysTick-GetCounter 117

5.3系统时基定时器实例1——嘀嗒实例 118

5.3.1实例要求 118

5.3.2软件结构 118

5.3.3实例代码 119

5.3.4编译下载和调试 120

5.4系统时基定时器实例2——有实际应用意义的键盘实例 120

5.4.1实例要求 120

5.4.2软件结构 120

5.4.3实例代码 121

5.4.4编译下载和调试 124

第6章 外部中断和中断控制器 127

6.1嵌套向量中断控制器 127

6.1.1概述 127

6.1.2中断和异常向量 127

6.1.3中断优先级介绍 129

6.2外部中断/事件控制器 131

6.2.1EXTI控制器的主要特征 131

6.2.2唤醒事件管理 131

6.2.3功能说明 132

6.2.4外部中断/事件线路映射 132

6.3 NVIC库函数介绍 133

6.3.1函数NVIC-DeInit 133

6.3.2函数NVIC-PriotyGroupConfig 134

6.3.3函数NVIC-Init 135

6.3.4函数NVIC-SetVectorTable 138

6.4外部中断控制器库函数介绍 138

6.4.1函数EXTI-DeInit 138

6.4.2函数EXTI-Init 139

6.4.3函数EXTI-GenerateSWInterrupt 141

6.4.4函数EXTI-GetFlagStatus 141

6.4.5函数EXTI-ClearFlag 141

6.4.6函数EXTI-GetITStatus 142

6.5外部中断实例 142

6.5.1实例目的 142

6.5.2实例要求 142

6.5.3硬件基础 143

6.5.4软件结构 143

6.5.5实例代码 144

6.5.6编译下载和调试 146

6.6中断嵌套实例 146

6.6.1实例目的 146

6.6.2实例要求 146

6.6.3硬件基础 146

6.6.4软件结构 146

6.6.5实例代码 148

6.6.6编译下载和调试 149

第7章 复位和系统时钟 151

7.1复位 151

7.1.1系统复位 151

7.1.2电源复位 152

7.1.3备份区域复位 152

7.2时钟 152

7.2.1 HSE时钟 153

7.2.2 HSI时钟 154

7.2.3 PLL 154

7.2.4 LSE时钟 155

7.2.5 LSI时钟 155

7.2.6系统时钟选择 156

7.2.7时钟安全系统 156

7.2.8 RTC时钟 156

7.2.9看门狗时钟 157

7.2.10时钟输出 157

7.3外设时钟 157

7.4 RCC库函数 158

7.4.1函数RCC-DeInit 158

7.4.2函数RCC-HSEConfig 158

7.4.3函数RCC-WaitForHSEStartUp 159

7.4.4函数RCC-PLLConfig 159

7.4.5函数RCC-PLLCmd 161

7.4.6函数RCC-SYSCLKConfig 161

7.4.7函数RCC-GetSYSCLKSource 162

7.4.8函数RCC-HCLKConfig 162

7.4.9函数RCC-PCLK1Config 163

7.4.10函数RCC-PCLK2Config 164

7.4.11函数RCC-USBCLKConfg 164

7.4.12函数RCC-ADCCLKConfig 165

7.4.13函数RCC-LSEConfig 165

7.4.14函数RCC-RTCCLKConfig 166

7.4.15函数RCC-RTCCLKCmd 167

7.4.16函数RCC-AHBPeriphClockCmd 167

7.4.17函数RCC-APB1PcriphClockCmd 168

7.4.18函数RCC-APB2PeriphClockCmd 169

7.4.19函数RCC-GetFlagStatus 170

7.5系统时钟的建立 171

7.5.1如何建立时钟 171

7.5.2实例代码 171

第8章 实时时钟和备份寄存器 173

8.1 RTC简介 173

8.1.1主要特性 173

8.1.2复位过程 173

8.1.3概述 173

8.1.4基本操作 174

8.1.5后备域和RTC供电 175

8.1.6低功耗模式下的自动唤醒 176

8.2 BKP简介 176

8.2.1 13KP特性 176

8.2.2 侵入检测 177

8.3 RTC实时时钟库函数介绍 177

8.3.1函数RTC-ITConfig 177

8.3.2函数RTC-EnterConfigMode 178

8.3.3函数RTC-ExitConfigMode 178

8.3.4函数RTC-GetCounter 179

8.3.5函数RTC-SetCountcr 179

8.3.6函数RTC-SetPrescaler 180

8.3.7函数RTC-SetAlarm 180

8.3.8函数RTC-WaitForLastTask 181

8.3.9函数RTC-WaitForSynchro 181

8.3.10函数RTC-GetFlagStatus 182

8.3.11函数RTC-ClearFlag 182

8.3.12函数RTC-GetITStatus 183

8.4 BKP后备域库函数介绍 183

8.4.1函数BKP-DeInit 183

8.4.2函数BKP-TamperPinLcvelConfig 184

8.4.3函数BKP-TamperPinCmd 184

8.4.4函数BKP-WriteBackupRegister 185

8.4.5函数BKP-ReadBackupRegister 186

8.4.6函数BKP-ClearlTPendingBit 186

8.5实时时钟实例——万年历 186

8.5.1实例目的 186

8.5.2实例要求 187

8.5.3硬件基础 187

8.5.4软件结构 187

8.5.5实例代码 188

8.5.6编译下载和调试 191

8.6在后备域中保存数据 192

8.6.1实例要求 192

8.6.2硬件基础 192

8.6.3软件结构 192

8.6.4实例代码 193

8.6.5编译下载和调试 194

第9章 通用SPI的一般应用 195

9.1SPI简介 195

9.1.1 SPI特征 195

9.1.2 SPI引脚描述 196

9.1.3 数据传输模式 197

9.1.4 SPI从模式 198

9.1.5SPI主模式 198

9.1.6状态标志 199

9.1.7利用DMA的SPI通信 200

9.1.8SPI中断 200

9.2 SPI库函数介绍 200

9.2.1函数SPI-DeInit 200

9.2.2函数SPI-Init 201

9.2.3函数SPI-Cmd 203

9.2.4函数SPI-ITConfig 204

9.2.5函数SPI-DMACmd 205

9.2.6函数SPI-ScndData 205

9.2.7函数SPI-ReceiveData 206

9.2.8函数SPI-GetFlagStatus 206

9.2.9函数SPI-CIearFlag 207

9.2.10函数SPI-GetITStatus 207

9.2.11函数SPI-ClearITPendingBit 208

9.3 SPI使用 208

9.3.1 SPI初始化 208

9.3.2 SPI主机发送/接收数据 210

9.3.3完整的初始化和收发数据代码 211

第10章12C接口的一般应用 213

10.1 I2C简介 213

10.2 12C功能描述 213

10.2.1模式选择 214

10.2.2通信流 214

10.2.3 12C从模式 214

10.2.4 12C主模式 216

10.2.5 错误条件 219

10.2.6 SDA/SCL线控制 219

10.2.7 SMBus 220

10.2.8 DMA请求 222

10.2.9 I2C中断请求 223

10.3 12C库函数介绍 225

10.3.1函数12C-DeInit 225

10.3.2函数12C-Init 225

10.3.3函数12C-Cmd 227

10.3.4函数12C-GenerateSTART 227

10.3.5函数12C-GenerateSTOP 228

10.3.6函数12C-AcknowledgeConfig 228

10.3.7函数12C-OwnAddress2Config 228

10.3.8函数12C-DualAddressCmd 229

10.3.9函数12C-GeneralCallCmd 229

10.3.10函数12C-ITConfig 230

10.3.11函数12C-SendData 230

10.3.12函数I2C-ReceiveData 231

10.3.13函数12C-Send7bitAddress 231

10.3.14函数12C-ReadRegister 232

10.3.15函数12C-SoftwarcResctCmd 233

10.3.16函数12C-GetLastEvent 233

10.3.17函数12C-CheckEvent 234

10.4 12C读写24C02 235

10.4.1实例要求 235

10.4.2硬件基础 235

10.4.324C02器件介绍 235

10.4.4软件结构 237

10.4.5实例代码 238

10.4.6编译下载和调试 241

第11章ADC的一般应用 243

11.1 ADC介绍 243

11.1.1 ADC主要特征 243

11.1.2 ADC功能描述 243

11.1.3校准 246

11.1.4数据对齐 247

11.1.5可编程的通道采样时间 247

11.1.6外部触发转换 247

11.1.7DMA请求 249

11.1.8双ADC模式 249

11.1.9温度传感器 250

11.1.10ADC中断 251

11.2实现ADC最佳精度 251

11.2.1ADC模块自身相关的误 251

11.2.2与环境相关的ADC误差 254

11.2.3如何减小与外部环境相关的ADC误差 257

11.3ADC库函数介绍 265

11.3.1函数ADC-Delnit 265

11.3.2函数ADC-Init 265

11.3.3函数ADC-Cmd 267

11.3.4函数ADC-DMACmd 267

11.3.5函数ADC-ITConfig 268

11.3.6函数ADC-ResetCalibration 268

11.3.7函数ADC-GetReset CalibrationStatus 269

11.3.8函数ADC-StartC alibration 269

11.3.9函数ADC-GetCalibrationStatus 270

11.3.10函数ADC-SoftwareStart ConvCmd 270

11.3.11函数ADC-DiscModeChannel CountConfig 270

11.3.12函数ADC-DiscModeCmd 271

11.3.13函数ADC-RegularChannel Config 271

11.3.14函数ADC-ExtemalTrig ConvConfig 273

11.3.15函数ADC-GetConversionValue 273

11.3.16函数ADC-GetDuelMode ConversionValuc 273

11.3.17函数ADC-AutoInjccted ConvCmd 274

11.3.18函数ADC-InjectedDisc ModeCmd 274

11.3.19函数ADC-ExtcmalTrigInjected ConvConfig 275

11.3.20函数ADC-ExtemalTrigInjected ConvCmd 276

11.3.21函数ADC-SoftwareStartInjected ConvCmd 276

11.3.22函数ADC-GetSoftwareStartInjected ConvStatus 276

11.3.23函数ADC-InjectedChannle Config 277

11.3.24函数ADC-InjectedSequencer LengthConfig 277

11.3.25函数ADC-SetInjectedOffset 278

11.3.26函数ADC-GetInjected ConvcrsionValue 279

11.3.27函数ADC-TampSensor VrefintCmd 279

11.3.28函数ADC-GetFIagStatus 279

11.3.29函数ADC-ClearFlag 280

11.4ADC数据采集实例1——单通道数据采集 281

11.4.1实例要求 281

11.4.2硬件基础 281

11.4.3软件结构 281

11.4.4实例代码 283

11.4.5编译下载和调试 287

11.5 ADC数据采集实例2——芯片温度采集 288

11.5.1实例要求 288

11.5.2硬件基础 288

11.5.3软件结构 288

11.5.4实例代码 288

11.5.5编译下载和调试 292

第12章 嵌入式闪存的基本操作 293

12.1嵌入式闪存介绍 293

12.1.1特性 293

12.1.2闪存模块组织 293

12.1.3读操作 294

12.1.4闪存编程和擦除控制器 295

12.2 FLASH固件库函数介绍 300

12.2.1函数FLASH-SetLatency 300

12.2.2函数FLASH-HalfCycle AccessCmd 301

12.2.3函数FLASH-PrefetchBuffeCmd 302

12.2.4函数FLASH-Unlock 302

12.2.5函数FLASH-Lock 303

12.2.6函数FLASH-ErasePage 303

12.2.7函数FLASH-EraseAllPages 303

12.2.8函数FLASH-EraseOptionBytes 304

12.2.9函数FLASH-PrograrnWord 304

12.2.10函数FLASH-ProgramHalfWord 305

12.2.11函数FLASH-ProgramOption ByteData 305

12.2.12函数FLASH-EnableWrite Protection 306

12.2.13函数FLASH-ReadOut Protection 307

12.2.14函数FLASH-UserOption ByteConfig 308

12.2.15函数FLASH-GetUser OptionByte 309

12.2.16函数FLASH-GetWriteProtection OptionByte 309

12.2.17函数FLASH-GetReadOut ProtectionStatus 310

12.2.18函数FLASH-GetPrefetch BufferStatus 310

12.2.19函数FLASH-ITConfig 311

12.2.20函数FLASH-GetFlagStatus 311

12.2.21函数FLASH-ClearFlag 312

12.2.22函数FLASH-GetStatus 313

12.2.23函数FLASH-WaitFor LastOperation 313

12.3 FLASH读写实例 314

12.3.1实例要求 314

12.3.2硬件基础 314

12.3.3软件结构 314

12.3.4实例代码 314

12.3.5编译下载和调试 316

第13章 定时器的一般应用 317

13.1定时器功能简介 317

13.1.1 TIMx主要功能 317

13.1.2 TIMx功能描述 318

13.2定时器固件库函数介绍 333

13.2.1函数TIM-DeInit 333

13.2.2函数TIM-TimeBaseInit 334

13.2.3函数TIM-OC1Init 335

13.2.4函数TIM-OC21nit 337

13.2.5函数TIM-OC31nit 338

13.2.6函数TIM-OC41nit 339

13.2.7函数TIM-ICInit 339

13.2.8函数TIM-BDTRConfig 341

13.2.9函数TIM-Cmd 343

13.2.10函数TIM-CtrPWMOutputs 343

13.2.11函数TIM-ITConfig 344

13.2.12函数TIM-SelectInputTrigger 345

13.2.13函数TIM-EncodcrInterface Config 345

13.2.14函数TIM-ARRPreloadConfig 346

13.2.15函数TIM-CCPreloadControl 347

13.2.16函数TIM-OCIPreloadConfig 347

13.2.17函数TIM-OC2PreloadConfig 348

13.2.18函数TIM-OC3PreloadConfig 348

13.2.19函数TIM-OC4PreloadConfig 349

13.2.20函数TIM-SelectOutputTrigger 349

13.2.21函数TIM-SelectSlaveMode 350

13.2.22函数TIM-SelectMaster SlaveMode 350

13.2.23函数TIM-SetCounter 351

13.2.24函数TIM-SetAutoreload 351

13.2.25函数TIM-GetCounter 352

13.2.26函数TIM-GetPrescaler 352

13.2.27函数TIM-GetFlagStatus 353

13.2.28函数TIM-ClearFlag 354

13.2.29函数TIM-GetITStatus 354

13.2.30函数TIM-ClearITPendingBit 354

13.3 TIME应用实例1——简单定时器应用 355

13.3.1实例要求 355

13.3.2硬件基础 355

13.3.3软件结构 355

13.3.4实例代码 360

13.3.5编译下载和调试 363

13.4 TIME应用实例2——使用一个定时器产生4路不同占空比的PWM 363

13.4.1实例目的 363

13.4.2实例要求 363

13.4.3硬件基础 363

13.4.4软件结构 363

13.4.5实例代码 366

13.4.6编译下载和调试 368

13.5 TIME应用实例3——使用定时器产生4路不同占空比和频率的PWM 368

13.5.1实例目的 368

13.5.2实例要求 368

13.5.3硬件基础 369

13.5.4软件结构 369

13.5.5实例代码 373

13.5.6编译下载和调试 375

13.6 TIME应用实例4——定时器同步 375

13.6.1实例目的 375

13.6.2实例要求 375

13.6.3软件结构 376

13.6.4实例代码 378

13.6.5编译下载和调试 381

第14章 独立看门狗和窗口看门狗定时器 382

14.1独立看门狗一般特性介绍 382

14.1.1 IWDG主要特性 382

14.1.2 IWDG功能描述 383

14.1.3硬件看门狗 383

14.1.4寄存器访问保护 383

14.2窗口看门狗一般特性介绍 383

14.2.1 WWDG主要特性 384

14.2.2 WWDG功能描述 384

14.3独立看门狗库函数介绍 385

14.3.1函数IWDG-WriteAccessCmd 386

14.3.2函数IWDG-SetPrescaler 386

14.3.3函数IWDG-SetRcload 387

14.3.4函数IWDG-RcloadCounter 387

14.3.5函数IWDG-Enable 388

14.4窗口看门狗库函数介绍 388

14.4.1函数WWDG-Delnit 388

14.4.2函数WWDG-SetPrescaler 388

14.4.3函数WWDG-SetWindow Value 389

14.4.4函数WWDG-EnableIT 390

14.4.5函数WWDG-SetCounter 390

14.4.6函数WWDG-Enable 390

14.4.7函数WWDG-GetFlagStatus 391

14.4.8函数WWDG-ClearFlag 391

14.5独立看门狗实例 392

14.5.1实例目的 392

14.5.2实例要求 392

14.5.3硬件基础 392

14.5.4软件结构 392

14.5.5实例代码 393

14.5.6编译下载和调试 394

14.6窗口看门狗实例 395

14.6.1实例目的 395

14.6.2实例要求 395

14.6.3硬件基础 395

14.6.4软件结构 395

14.6.5实例代码 396

14.6.6编译下载和调试 398

第15章 控制器局域网CAN的一般应用 400

15.1 CAN介绍 400

15.1.1 bxCAN主要特点 400

15.1.2总体描述 401

15.1.3 bxCAN工作模式 401

15.1.4 bxCAN发送处理 403

15.1.5时间触发通信模式 404

15.1.6接收管理 404

15.1.7标识符过滤 405

15.1.8报文存储 407

15.1.9出错管理 407

15.1.10位时间特性 408

15.1.11 bxCAN中断 408

15.2 bxCAN库函数介绍 409

15.2.1函数CAN-DcInit 409

15.2.2函数CAN-Init 409

15.2.3函数CAN-Filterlnit 411

15.2.4函数CAN-StructInit 413

15.2.5函数CAN-ITConfig 414

15.2.6函数CAN-Transmit 415

15.2.7函数CAN-TransmitStatus 416

15.2.8函数CAN-CancelTransmit 416

15.2.9函数CAN-FIFORelease 417

15.2.10函数CAN-MessagePending 417

15.2.11函数CAN-Receive 418

15.2.12函数CAN-Sleep 419

15.2.13函数CAN-WakeUp 419

15.2.14函数CAN-GetFlagStatus 420

15.2.15函数CAN-ClearFlag 420

15.2.16函数CAN-GetITStatus 421

15.2.17函数CAN-ClearITPendingBit 421

15.3 CAN收发数据实例 422

15.3.1实例目的 422

15.3.3硬件基础 422

15.3.4软件结构 423

15.3.5实例代码 424

15.3.6编译下载和调试 427

第3部分 提高篇 430

第16章GPS数据解析 430

16.1GPS数据协议解析 430

16.1.1 GPS概述 430

16.1.2 GPS介绍 430

16.1.3 GPS数据结构介绍 431

16.2 GPS数据解析实例 434

16.2.1实例要求 434

16.2.2硬件基础 434

16.2.3软件结构 434

16.2.4实例代码 435

第17章 串行Flash数据储存方案 450

17.1串行Flash概述 450

17.1.1 SST25VF016B概述 450

17.1.2 SST25VF016B引脚说明 451

17.1.3 SST25VF016B接口电路 451

17.2 API软件包 452

17.2.1 软件包结构 452

17.2.2 SPI初始化 452

17.2.3 读数据API 455

17.2.4 写数据API 456

17.2.5 Flash擦除API 457

17.2.6 读ID 459

17.3 Flash数据读写实例 459

17.3.1实例目的 460

17.3.2实例要求 460

17.3.3硬件基础 460

17.3.4实例代码 460

17.3.5编译下载和调试 463

第18章2.4G微功耗短距离无线模块应用 464

18.1微功耗短距离无线通信 464

18.1.1微功耗短距离无线通信概述 464

18.1.2短距离微功耗无线应用 464

18.2 2.4G无线模块介绍 465

18.2.1芯片的架构 465

18.2.2芯片主要特点 465

18.2.3功能概述 466

18.2.4寄存器介绍 470

18.3无线模块相关API函数集 471

18.3.1无线芯片的SPI接口 471

18.3.2复位 473

18.3.3无线模块功能API软件函数集 474

18.4数据发送/接收的时序 477

18.4.1数据发送/接收时序 477

18.4.2无线发送/接收数据API函数 478

18.5读无线芯片寄存器实例 479

18.5.1实例目的 479

18.5.2实例要求 479

18.5.3硬件基础 479

18.5.4软件结构 480

18.5.5实例代码 480

18.6双向无线数据收发实例 484

18.6.1实例目的 484

18.6.2实例要求 484

18.6.3硬件基础 485

18.6.4实例代码 485

18.6.5编译下载和调试 489

附录A IAR工程转MDK工程 490

附录B ARM处理器:选择ARM7还是Cortex-M3 492