图书介绍

STM32F0系列ARM Cortex-M0核微控制器开发与应用PDF|Epub|txt|kindle电子书版本网盘下载

STM32F0系列ARM Cortex-M0核微控制器开发与应用
  • 喻金钱,喻斌,袁芳编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302374312
  • 出版时间:2015
  • 标注页数:412页
  • 文件大小:62MB
  • 文件页数:427页
  • 主题词:微控制器

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

STM32F0系列ARM Cortex-M0核微控制器开发与应用PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 STM32F051xx系列芯片简介1

1.1 STM32F051xx系列芯片功能简介1

1.2 功能概述3

1.2.1 内核3

1.2.2 存储器3

1.2.3 循环冗余校验计算单元(CRC)3

1.2.4 直接存储器访问控制器(DMA)3

1.2.5 向量嵌套中断控制器(NVIC)4

1.2.6 扩展中断/事件控制器(EXTI)4

1.2.7 时钟和启动4

1.2.8 引导模式4

1.2.9 电源管理5

1.2.10 低功耗模式5

1.2.11 实时时钟(RTC)和后备寄存器6

1.2.12 定时器6

1.2.13 看门狗8

1.2.14 SysTick定时器8

1.2.15 两线串行接口I2C8

1.2.16 通用同步/异步收发器(USART)9

1.2.17 高清晰度多媒体接口(HDMI)——消费电子控制(CEC)9

1.2.18 通用输入/输出端口(GPIO)9

1.2.19 触摸传感控制器(TSC)9

1.2.20 模数转换器(ADC)9

1.2.21 数模转换器(DAC)10

1.2.22 快速比较器10

1.2.23 两线串行调试端口(SW-DP)10

第2章 开发板硬件结构11

2.1 电路原理图11

2.2 原理图说明13

2.2.1 电源电路13

2.2.2 系统复位电路14

2.2.3 时钟电路14

2.2.4 JTAG接口电路15

2.2.5 串口电路15

2.2.6 键盘电路15

2.2.7 LED灯电路16

2.2.8 I2C接口电路17

2.2.9 ADC电路18

2.2.10 SPI接口电路18

2.3 开发板元器件布局图19

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

3.1 下载和安装EWARM21

3.2 IDE界面简介23

3.3 生成一个新项目24

3.3.1 建立项目文件目录并复制文件24

3.3.2 生成新的工作区25

3.3.3 生成新项目25

3.3.4 给项目添加文件27

3.4 配置项目选项28

3.4.1 通用选项设置(General Options)28

3.4.2 C/C++编译器选项设置(C/C++ Compiler)29

3.4.3 Assembler选项设置(Assembler)30

3.4.4 Output Converter选项设置30

3.4.5 Debugger选项设置31

3.5 串口调试助手介绍31

第4章 通用和复用I/O口33

4.1 GPIO功能描述33

4.1.1 GPIO主要特性33

4.1.2 GPIO主要功能33

4.1.3 通用I/O口34

4.1.4 I/O引脚的复用功能和重映射34

4.1.5 I/O端口控制寄存器35

4.1.6 I/O端口数据寄存器35

4.1.7 I/O数据位处理35

4.1.8 GPIO口锁定36

4.1.9 I/O口复用功能36

4.1.10 外部中断和唤醒36

4.1.11 输入配置36

4.1.12 输出配置36

4.1.13 模拟输入配置37

4.2 GPIO库函数37

4.2.1 函数GPIO_eInit38

4.2.2 函数GPIO_Init38

4.2.3 函数GPIO_PinLockConfig39

4.2.4 函数GPIO_ReadInputDataBit40

4.2.5 函数GPIO_ReadInputData40

4.2.6 函数GPIO_ReadOutputDataBit41

4.2.7 函数GPIO_ReadOutputData41

4.2.8 函数GPIO_SetBits41

4.2.9 函数GPIO_ResetBits42

4.2.10 函数GPIO_WriteBit42

4.2.11 函数GPIO_Write43

4.2.12 函数GPIO_PinAFConfig43

4.3 位运算45

4.3.1 移位运算45

4.3.2 按位“与”运算(&)47

4.3.3 按位“或”运算(|)48

4.3.4 取反运算(~)49

4.3.5 异或运算符(^)49

4.4 I/O口输出实例1——控制LED灯49

4.4.1 实例目的和要求49

4.4.2 硬件基础50

4.4.3 软件结构50

4.4.4 实例代码50

4.4.5 编译下载59

4.5 I/O口输出实例2——流水灯60

4.5.1 实例要求60

4.5.2 硬件基础60

4.5.3 软件结构61

4.5.4 实例代码61

4.5.5 编译下载63

4.6 I/O口输入实例1——按键输入164

4.6.1 实例要求64

4.6.2 硬件基础64

4.6.3 软件结构64

4.6.4 实例代码65

4.6.5 编译下载和调试67

4.7 I/O口输入实例2——按键输入269

4.7.1 实例要求69

4.7.2 硬件基础69

4.7.3 软件结构69

4.7.4 实例代码70

第5章 USART串口的一般应用73

5.1 USART功能描述73

5.1.1 USART主要功能73

5.1.2 USART扩展功能74

5.1.3 USART不同工作模式74

5.1.4 发送器75

5.1.5 接收器76

5.1.6 分数比特率的产生77

5.1.7 自动比特率检测77

5.1.8 多机通信78

5.1.9 USART同步模式79

5.1.10 单线半双工模式80

5.1.11 智能卡模式81

5.1.12 IrDA SIR ENDEC功能模块82

5.1.13 用DMA实现连续通信84

5.1.14 USART中断85

5.2 USART串口库函数85

5.2.1 函数USART_Init85

5.2.2 函数USART_Cmd87

5.2.3 函数USART_ITConfig88

5.2.4 函数USART_SendData89

5.2.5 函数USART_ReceiveData89

5.2.6 函数USART_GetFlagStatus89

5.2.7 函数USART_ClearFlag90

5.2.8 函数USART_GetITStatus91

5.2.9 函数USART_ClearITPendingBit92

5.3 USART通信实例1——串口发送数据92

5.3.1 实例要求92

5.3.2 硬件基础92

5.3.3 软件结构93

5.3.4 实例代码95

5.3.5 编译下载和调试97

5.4 USART通信实例2——中断接收数据98

5.4.1 实例要求98

5.4.2 硬件基础98

5.4.3 软件结构99

5.4.4 实例代码99

5.4.5 编译下载和调试101

5.5 使用队列收发数据实例101

第6章 系统定时器104

6.1 系统定时器概述104

6.2 库函数介绍104

6.3 系统定时器实例——节拍定时器实例105

6.3.1 实例要求105

6.3.2 软件结构105

6.3.3 实例代码105

6.3.4 编译下载和调试106

6.4 有实际应用意义的键盘实例106

6.4.1 实例要求106

6.4.2 软件结构107

6.4.3 实例代码107

6.4.4 编译下载和调试109

第7章 中断和事件113

7.1 中断和事件概述113

7.1.1 嵌套向量中断控制器(NVIC)113

7.1.2 外部中断和事件控制器(EXTI)114

7.2 库函数介绍117

7.2.1 函数NVIC_Init117

7.2.2 函数EXTI_DeInit119

7.2.3 函数EXTI_Init119

7.2.4 函数EXTI_GenerateSWInterrupt121

7.2.5 函数EXTI_GetFlagStatus121

7.2.6 函数EXTI_ClearFlag121

7.2.7 函数EXTI_GetITStatus122

7.3 外部中断实例122

7.3.1 实例目的122

7.3.2 实例要求122

7.3.3 硬件基础123

7.3.4 软件结构123

7.3.5 实例代码125

7.3.6 编译下载和调试127

7.4 中断嵌套实例127

7.4.1 实例目的127

7.4.2 实例要求127

7.4.3 硬件基础127

7.4.4 软件结构127

7.4.5 实例代码127

7.4.6 编译下载和调试130

第8章 实时时钟(RTC)131

8.1 实时时钟简介131

8.1.1 RTC主要特性131

8.1.2 RTC功能模块131

8.1.3 时钟和预分频器132

8.1.4 实时时钟和日历133

8.1.5 可编程报警133

8.1.6 RTC初始化及配置133

8.1.7 读日历寄存器135

8.1.8 复位过程136

8.1.9 RTC同步136

8.1.10 RTC参考时钟检测136

8.1.11 RTC平滑数字校准137

8.1.12 时间戳功能138

8.1.13 侵入检测139

8.1.14 校准时钟输出140

8.1.15 报警输出141

8.1.16 RTC低功耗模式141

8.1.17 RTC中断141

8.2 RTC实时时钟库函数介绍142

8.2.1 函数RTC_Init142

8.2.2 函数RTC_SetTime143

8.2.3 函数RTC_GetTime144

8.2.4 函数RTC_GetSubSecond144

8.2.5 函数RTC_SetDate144

8.2.6 函数RTC_SetAlarm145

8.2.7 函数RTC_ITConfig146

8.3 实时时钟实例——万年历147

8.3.1 实例目的147

8.3.2 实例要求147

8.3.3 硬件基础147

8.3.4 软件结构147

8.3.5 实例代码149

8.3.6 编译下载和调试153

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

9.1 SPI简介154

9.1.1 SPI特征154

9.1.2 SPI引脚描述155

9.1.3 数据传输模式156

9.1.4 SPI从模式157

9.1.5 SPI主模式158

9.1.6 状态标志158

9.1.7 利用DMA的SPI通信159

9.1.8 SPI中断159

9.2 SPI库函数介绍159

9.2.1 函数SPI_Init160

9.2.2 函数SPI_Cmd162

9.2.3 函数SPI_I2S_ITConfig163

9.2.4 函数SPI_I2S_DMACmd163

9.2.5 函数SPI_SendData8164

9.2.6 函数SPI_ReceiveData8164

9.2.7 函数SPI_I2S_GetFlagStatus165

9.2.8 函数SPI_I2S_ClearFlag165

9.2.9 函数SPI_I2S_GetITStatus166

9.3 SPI通信实例——发送数据166

9.3.1 实例要求166

9.3.2 硬件基础166

9.3.3 软件结构167

9.3.4 实例代码168

9.3.5 编译下载和调试172

第10章 I2C接口的一般应用173

10.1 I2C简介173

10.1.1 I2C主要特点173

10.1.2 I2C功能描述173

10.2 I2C库函数183

10.2.1 函数I2C_DeInit183

10.2.2 函数I2C_Init184

10.2.3 函数I2C_Cmd185

10.2.4 函数I2C_GenerateSTART186

10.2.5 函数I2C_GenerateSTOP186

10.2.6 函数I2C_AcknowledgeConfig186

10.2.7 函数I2C_OwnAddress2Config187

10.2.8 函数I2C_DualAddressCmd187

10.2.9 函数I2C_GeneralCallCmd188

10.2.10 函数I2C_ITConfig188

10.2.11 函数I2C_SendData189

10.2.12 函数I2C_ReceiveData189

10.2.13 函数I2C_Send7bitAddress190

10.2.14 函数I2C_ReadRegister191

10.2.15 函数I2C_SoftwareResetCmd191

10.2.16 函数I2C_TransferHandling192

10.2.17 函数I2C_GetFlagStatus193

10.3 I2C读写24C02实例194

10.3.1 实例要求194

10.3.2 硬件基础194

10.3.3 24C02器件介绍194

10.3.4 软件结构196

10.3.5 实例代码197

10.3.6 编译下载和调试200

第11章 ADC的一般应用201

11.1 ADC功能介绍201

11.1.1 ADC主要特性201

11.1.2 ADC引脚和内部信号202

11.1.3 ADC功能描述202

11.1.4 转换的外部触发和触发极性(EXTSEL、EXTEN)206

11.1.5 数据对齐208

11.1.6 低功耗特性210

11.1.7 模拟窗口看门狗(AWDEN、AWDSGL、AWDCH、AWD_HTR/LTR、AWD)211

11.1.8 温度传感器212

11.1.9 电池电压监测213

11.1.10 ADC中断213

11.2 实现ADC最佳精度213

11.2.1 ADC模块自身相关的误差213

11.2.2 与环境相关的ADC误差216

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

11.3 ADC库函数226

11.3.1 函数ADC_DeInit226

11.3.2 函数ADC_Init226

11.3.3 函数ADC_Cmd228

11.3.4 函数ADC_DMACmd228

11.3.5 函数ADC_ITConfig229

11.3.6 函数ADC_GetCalibrationFactor230

11.3.7 函数ADC_StartOfConversion230

11.3.8 函数ADC_ChannelConfig230

11.3.9 函数ADC_StructInit232

11.3.10 函数ADC_AnalogWatchdogCmd232

11.3.11 函数ADC_AnalogWatchdogThresholdsConfig233

11.3.12 函数ADC_AnalogWatchdogSingleChannelCmd233

11.3.13 函数ADC_AnalogWatchdogSingleChannelConfig234

11.3.14 函数ADC_TempSensorCmd235

11.3.15 函数ADC_VrefintCmd235

11.3.16 函数ADC_VbatCmd236

11.3.17 函数ADC_GetConversionValue236

11.3.18 函数ADC_DMACmd237

11.3.19 函数ADC_DMARequestModeConfig237

11.3.20 函数ADC_GetFlagStatus238

11.3.21 函数ADC_GetITStatus238

11.3.22 函数ADC_ClearITPendingBit239

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

11.4.1 实例要求239

11.4.2 硬件基础239

11.4.3 软件结构240

11.4.4 实例代码243

11.4.5 编译下载和调试246

11.5 ADC数据采集实例2——周围温度采集246

11.5.1 实例要求246

11.5.2 硬件基础247

11.5.3 软件结构247

11.5.4 实例代码247

11.5.5 编译下载和调试250

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

12.1 嵌入式闪存介绍251

12.1.1 闪存主要特性251

12.1.2 闪存模块组织251

12.1.3 读保护252

12.1.4 FLASH写和擦除操作253

12.1.5 存储保护255

12.1.6 写保护256

12.2 FLASH固件库函数257

12.2.1 函数FLASH_SetLatency257

12.2.2 函数FLASH_PrefetchBufferCmd258

12.2.3 函数FLASH_Unlock258

12.2.4 函数FLASH_Lock259

12.2.5 函数FLASH_ErasePage259

12.2.6 函数FLASH_EraseAllPages259

12.2.7 函数FLASH_ProgramWord260

12.2.8 函数FLASH_ProgramHalfWord260

12.3 FLASH读写实例261

12.3.1 实例要求261

12.3.2 硬件基础261

12.3.3 软件结构261

12.3.4 实例代码262

12.3.5 编译下载和调试264

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

13.1 定时器功能介绍265

13.1.1 定时器主要功能265

13.1.2 定时器功能描述266

13.1.3 调试模式281

13.2 定时器固件库282

13.2.1 函数TIM_DeInit282

13.2.2 函数TIM_TimeBaseInit282

13.2.3 函数TIM_OC1Init284

13.2.4 函数TIM_OC2Init286

13.2.5 函数TIM_OC3Init286

13.2.6 函数TIM1_OC4Init287

13.2.7 函数TIM_ICInit function288

13.2.8 函数TIM_BDTRConfig289

13.2.9 函数TIM_Cmd291

13.2.10 函数TIM_CtrlPWMOutputs292

13.2.11 函数TIM_ITConfig292

13.2.12 函数TIM_SelectInputTrigger293

13.2.13 函数TIM_EncoderInterfaceConfig293

13.2.14 函数TIM_ARRPreloadConfig294

13.2.15 函数TIM_CCPreloadControl295

13.2.16 函数TIM_OC1PreloadConfig295

13.2.17 函数TIM_OC2PreloadConfig296

13.2.18 函数TIM_OC3PreloadConfig296

13.2.19 函数TIM_OC4PreloadConfig297

13.2.20 函数TIM_SelectOutputTrigger297

13.2.21 函数TIM_SelectSlaveMode298

13.2.22 函数TIM_SelectMasterSlaveMode298

13.2.23 函数TIM_SetCounter299

13.2.24 函数TIM_SetAutoreload299

13.2.25 函数TIM_GetCounter300

13.2.26 函数TIM_GetPrescaler300

13.2.27 函数TIM_GetFlagStatus301

13.2.28 函数TIM_ClearFlag302

13.2.29 函数TIM_GetITStatus302

13.2.30 函数TIM_ClearITPendingBit302

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

13.3.1 实例要求303

13.3.2 硬件基础303

13.3.3 软件结构303

13.3.4 实例代码306

13.3.5 编译下载和调试309

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

13.4.1 实例目的309

13.4.2 实例要求310

13.4.3 硬件基础310

13.4.4 软件结构310

13.4.5 实例代码312

13.4.6 编译下载和调试315

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

13.5.1 实例目的315

13.5.2 实例要求315

13.5.3 硬件基础315

13.5.4 软件结构315

13.5.5 实例代码319

13.5.6 编译下载和调试324

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

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

14.1.1 独立看门狗(IWDG)主要功能325

14.1.2 独立看门狗(IWDG)功能描述325

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

14.2.1 窗口看门狗(WWDG)主要特性327

14.2.2 窗口看门狗(WWDG)功能描述327

14.2.3 如何设置看门狗超时328

14.2.4 调试模式329

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

14.3.1 函数IWDG_WriteAccessCmd329

14.3.2 函数IWDG_SetPrescaler329

14.3.3 函数IWDG_SetReload330

14.3.4 函数IWDG_ReloadCounter331

14.3.5 函数IWDG_Enable331

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

14.4.1 函数WWDG_DeInit331

14.4.2 函数WWDG_SetPrescaler332

14.4.3 函数WWDG_SetWindowValue332

14.4.4 函数WWDG_EnableIT333

14.4.5 函数WWDG_SetCounter333

14.4.6 函数WWDG_Enable334

14.4.7 函数WWDG_GetFlagStatus334

14.4.8 函数WWDG_ClearFlag335

14.5 独立看门狗实例335

14.5.1 实例目的335

14.5.2 实例要求335

14.5.3 硬件基础336

14.5.4 软件结构336

14.5.5 实例代码336

14.5.6 编译下载和调试338

14.6 窗口看门狗实例338

14.6.1 实例目的338

14.6.2 实例要求338

14.6.3 硬件基础338

14.6.4 软件结构339

14.6.5 实例代码339

14.6.6 编译下载和调试341

14.7 本章小结342

第15章 DAC的应用343

15.1 DAC简介343

15.1.1 DAC主要特性343

15.1.2 使能DAC输出缓存344

15.1.3 DAC数据格式344

15.1.4 DAC转换344

15.1.5 DAC输出电压345

15.1.6 选择DAC触发345

15.1.7 DMA请求345

15.2 DAC外设库函数346

15.2.1 函数DAC_DeInit346

15.2.2 函数DAC_Init346

15.2.3 函数DAC_Cmd347

15.2.4 函数DAC_SetChannel1Data348

15.2.5 函数DAC_ITConfig348

15.3 DAC输出电压实例349

15.3.1 实例要求349

15.3.2 硬件基础349

15.3.3 软件结构349

15.3.4 实例代码350

15.3.5 编译下载和调试353

第16章 DMA的一般应用354

16.1 DMA简介354

16.1.1 DMA主要特性354

16.1.2 DMA功能描述354

16.2 DMA库函数358

16.2.1 函数DMA_DeInit358

16.2.2 函数DMA_Init358

16.2.3 函数DMA_Cmd361

16.2.4 函数DMA_GetCurrDataCounter362

16.2.5 函数DMA_ITConfig362

16.2.6 函数DMA_GetFlagStatus363

16.2.7 函数DMA_ClearFlag364

16.2.8 函数DMA_GetITStatus364

16.2.9 函数DMA_ClearITPendingBit365

16.3 DMA应用实例1——串口发送数据365

16.3.1 实例要求365

16.3.2 硬件基础365

16.3.3 软件结构366

16.3.4 实例代码367

16.3.5 编译下载和调试369

16.4 DMA应用实例2——DMA中断接收数据369

16.4.1 实例要求369

16.4.2 硬件基础369

16.4.3 软件结构369

16.4.4 实例代码369

16.4.5 编译下载和调试371

16.5 DMA应用实例3——使用SPI产生FM0编码372

16.5.1 实例要求372

16.5.2 FM0编码基础372

16.5.3 编码算法372

16.5.4 实例代码373

16.5.5 编译下载和调试377

16.6 DMA应用实例4——使用DMA采集多路电压377

16.6.1 实例要求377

16.6.2 硬件基础378

16.6.3 软件结构378

16.6.4 实例代码378

16.6.5 编译下载和调试382

第17章 串行FLASH数据储存方案383

17.1 串行FLASH概述383

17.1.1 SST25VF016B概述383

17.1.2 SST25VF016B引脚说明384

17.1.3 SST25VF016B接口电路384

17.2 API软件包385

17.2.1 软件包结构385

17.2.2 SPI初始化385

17.2.3 读数据API388

17.2.4 写数据API389

17.2.5 FLASH擦除API391

17.2.6 读ID393

17.3 FLASH数据读写实例393

17.3.1 实例目的394

17.3.2 实例要求394

17.3.3 硬件基础394

17.3.4 实例代码394

17.3.5 编译下载和调试396

第18章 LCD模块应用397

18.1 LCD模块介绍397

18.1.1 LCD屏性能特性397

18.1.2 ILI9163C驱动芯SPI时序398

18.1.3 ILI9163C寄存器介绍399

18.2 LCD模块相关API函数集399

18.2.1 SPI接口初始化400

18.2.2 初始化LCD屏402

18.2.3 LCD屏API软件函数集402

18.3 LCD屏显示实例410

18.3.1 实例目的410

18.3.2 实例要求410

18.3.3 硬件基础410

18.3.4 软件结构410

18.3.5 实例代码410

热门推荐