STM32F系列ARM Cortex-M3核微控制器开发与应用

副标题:无

作   者:喻金钱,喻斌编著

分类号:

ISBN:9787302244424

微信扫一扫,移动浏览光盘

简介

   《STM32F系列ARM Cortex-M3核微控制器开发与应用》(笔者喻金钱、喻   斌)从实际应用需求和开发过程中所遇到的问题出发,介绍了STM32F系列ARM   芯片内外设和各个 功能模块的应用。    《STM32F系列ARM Cortex-M3核微控制器开发与应用》没有涉及有关芯   片的存储结构系统构架、指令集等理论性的知识,而是从最基本的应用要求   出发,结合大量实例,依托库函数,详细讲解I/O接口、异步串口、系统时   基定时器、SPI接口、RTC、看门狗、定时器、I2C接口、CAN接口和模数转化   器等外设接口的使用方法。本书注重实际操作和开发中的细节,对在开发过   程中容易出错的情况作出提醒,并与读者分享作者在实际开发中的一些经验   和感想,为有单片机和C语言基础的读者打开了通向嵌入式开发的大门。    本书可作为单片机爱好者的学习用书,也可作为嵌入式应用工程技术人   员的学习和培训用书,同时可作为大学生学习单片机的教材。   

目录

《stm32f系列armcortex-m3核微控制器开发与应用》

第1部分 基础篇

第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 i2c接口电路 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.2 ide界面简介 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部分 应用篇

第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_readinputdatabit 48

3.2.9 函数gpio_readinputdata 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 i2c1复用功能重映射 53

3.3.9 spi1复用功能重映射 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.5 i/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.6 i/o口输出实例2——流水灯 68

3.6.1 实例要求 68

3.6.2 硬件基础 68

3.6.3 软件结构 69

3.6.4 实例代码 70

3.6.5 编译下载和调试 71

3.7 i/o口输入实例——按键输入1 72

3.7.1 实例要求 72

3.7.2 硬件基础 72

3.7.3 软件结构 72

3.7.4 实例代码 73

3.7.5 编译下载和调试 75

3.8 i/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_clearflag 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.1 exti控制器的主要特征 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_prioritygroupconfig 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_usbclkconfig 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_ahbperiph clockcmd 167

7.4.17 函数rcc_apb1periph clockcmd 168

7.4.18 函数rcc_apb2periph clockcmd 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 bkp特性 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_setcounter 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_tamperpinlevelconfig 184

8.4.3 函数bkp_tamperpincmd 184

8.4.4 函数bkp_writebackupregister 185

8.4.5 函数bkp_readbackupregister 186

8.4.6 函数bkp_clearitpendingbit 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.1 spi简介 195

9.1.1 spi特征 195

9.1.2 spi引脚描述 196

9.1.3 数据传输模式 197

9.1.4 spi从模式 198

9.1.5 spi主模式 198

9.1.6 状态标志 199

9.1.7 利用dma的spi通信 200

9.1.8 spi中断 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_senddata 205

9.2.7 函数spi_receivedata 206

9.2.8 函数spi_getflagstatus 206

9.2.9 函数spi_clearflag 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章 i2c接口的一般应用 213

10.1 i2c简介 213

10.2 i2c功能描述 213

10.2.1 模式选择 214

10.2.2 通信流 214

10.2.3 i2c从模式 214

10.2.4 i2c主模式 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 i2c库函数介绍 225

10.3.1 函数i2c_deinit 225

10.3.2 函数i2c_init 225

10.3.3 函数i2c_cmd 227

10.3.4 函数i2c_generatestart 227

10.3.5 函数i2c_generatestop 228

10.3.6 函数i2c_acknowledgeconfig 228

10.3.7 函数i2c_ownaddress2config 228

10.3.8 函数i2c_dualaddresscmd 229

10.3.9 函数i2c_generalcallcmd 229

10.3.10 函数i2c_itconfig 230

10.3.11 函数i2c_senddata 230

10.3.12 函数i2c_receivedata 231

10.3.13 函数i2c_send7bitaddress 231

10.3.14 函数i2c_readregister 232

10.3.15 函数i2c_softwareresetcmd 233

10.3.16 函数i2c_getlastevent 233

10.3.17 函数i2c_checkevent 234

10.4 i2c读写24c02 235

10.4.1 实例要求 235

10.4.2 硬件基础 235

10.4.3 24c02器件介绍 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.7 dma请求 249

11.1.8 双adc模式 249

11.1.9 温度传感器 250

11.1.10 adc中断 251

11.2 实现adc最佳精度 251

11.2.1 adc模块自身相关的误差 251

11.2.2 与环境相关的adc误差 254

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

11.3 adc库函数介绍 265

11.3.1 函数adc_deinit 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_startcalibration 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_externaltrig convconfig 273

11.3.15 函数adc_getconversionvalue 273

11.3.16 函数adc_getduelmode conversionvalue 273

11.3.17 函数adc_autoinjected convcmd 274

11.3.18 函数adc_injecteddisc modecmd 274

11.3.19 函数adc_externaltriginjected convconfig 275

11.3.20 函数adc_externaltriginjected 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 conversionvalue 279

11.3.27 函数adc_tampsensor vrefintcmd 279

11.3.28 函数adc_getflagstatus 279

11.3.29 函数adc_clearflag 280

11.4 adc数据采集实例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_prefetchbuffercmd 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_programword 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_oc2init 337

13.2.5 函数tim_oc3init 338

13.2.6 函数tim_oc4init 339

13.2.7 函数tim_icinit 339

13.2.8 函数tim_bdtrconfig 341

13.2.9 函数tim_cmd 343

13.2.10 函数tim_ctrlpwmoutputs 343

13.2.11 函数tim_itconfig 344

13.2.12 函数tim_selectinputtrigger 345

13.2.13 函数tim_encoderinterface config 345

13.2.14 函数tim_arrpreloadconfig 346

13.2.15 函数tim_ccpreloadcontrol 347

13.2.16 函数tim_oc1preloadconfig 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_setreload 387

14.3.4 函数iwdg_reloadcounter 387

14.3.5 函数iwdg_enable 388

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

14.4.1 函数wwdg_deinit 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_deinit 409

15.2.2 函数can_init 409

15.2.3 函数can_filterinit 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.2 实例要求 422

15.3.3 硬件基础 422

15.3.4 软件结构 423

15.3.5 实例代码 424

15.3.6 编译下载和调试 427

第3部分 提高篇

第16章 gps数据解析 430

16.1 gps数据协议解析 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


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

STM32F系列ARM Cortex-M3核微控制器开发与应用
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon