作为学习LabVIEW与32位微处理器STM32的入门级教材,本书从LabVIEW for ARM嵌入式软件架构入手,在分析STM32芯片内部每个功能模块的基础上,着重介绍使用LabVIEW对其进行编程的工作原理和开发过程,让读者知其所以然。同时,本书还配套了40个从初级、中级到高级的实验例程和经典案例,帮助读者快速理解和掌握图形化ARM嵌入式系统开发。通过基本原理、实验例程、案例分析,这种循序渐进、由浅入深的方式引导读者完成由STM32初学者过渡到ARM嵌入式开发工程师的转变。
封面图
目录
- 前言
- 致谢
- 第1章软件篇1
- 1.1LabVIEW ARM嵌入式模块介绍1
- 1.2Keil RealView MDK软件介绍4
- 1.3Keil RTX实时操作系统介绍5
- 1.4LabVIEW ARM Module软件架构7
- 1.5LabVIEW ARM Module、RealView MDK、实验平台驱动软件安装8
- 1.6STM32实验范例程序查找与USB JLink-OB驱动加载14
- 第2章硬件篇19
- 2.1ARM Cortex-M3内核简介19
- 2.2实验平台介绍20
- 2.2.1My_ARM_Starter_Board学习板介绍22
- 2.2.2My_ARM_Core_Board核心板介绍25
- 2.2.3My_ARM_DAQ_Board数据采集板介绍27
- 2.3实验平台资源说明28
- 2.3.1My_ARM_Starter_Board平台资源简介28
- 2.3.2My_ARM_Core_Board平台资源简介34
- 2.3.3My_ARM_DAQ_Board平台资源简介35
- 2.3.4My_ARM实验平台总结37
- 第3章基础模块篇38
- 3.1GPIO38
- 3.1.1GPIO介绍38
- 3.1.2GPIO工作方式39
- 3.1.3GPIO驱动VI45
- 3.1.4两种驱动实现方式比较55
- 3.1.5GPIO总结56
- 3.2ADC/DAC56
- 3.2.1ADC介绍57
- 3.2.2ADC驱动实现58
- 3.2.3DAC介绍62
- 3.2.4DAC驱动实现63
- 3.3中断66
- 3.3.1外部中断67
- 3.3.2外部中断驱动实现69
- 3.3.3内部中断76
- 3.3.4定时器中断驱动实现78
- 3.4PWM生成91
- 3.4.1PWM原理及应用92
- 3.4.2PWM驱动实现92
- 3.4.3PWM参数设置技巧97
- 3.5看门狗97
- 3.5.1独立看门狗介绍98
- 3.5.2独立看门狗驱动实现99
- 3.5.3窗口看门狗介绍100
- 3.5.4窗口看门狗驱动实现101
- 3.6TFTLCD显示、触摸屏及OLED显示103
- 3.6.1TFTLCD显示原理104
- 3.6.2TFTLCD显示驱动实现105
- 3.6.3触摸屏工作原理109
- 3.6.4触摸屏驱动VI110
- 3.6.5OLED工作原理112
- 3.6.6OLED驱动实现113
- 3.7RTC时钟/待机与唤醒114
- 3.7.1RTC时钟介绍114
- 3.7.2RTC时钟驱动实现115
- 3.7.3待机与唤醒118
- 3.7.4待机与唤醒驱动实现119
- 3.8IIC/SPI总线120
- 3.8.1IIC协议介绍120
- 3.8.2IIC协议驱动实现122
- 3.8.3EEPROM驱动实现125
- 3.8.4SPI协议介绍129
- 3.8.5SPI协议驱动实现131
- 3.8.6Flash驱动实现132
- 3.9RS232/RS485/CAN总线136
- 3.9.1RS232协议介绍136
- 3.9.2RS232驱动实现137
- 3.9.3RS485协议介绍139
- 3.9.4RS485驱动实现139
- 3.9.5CAN协议介绍140
- 3.9.6CAN驱动实现145
- 3.10红外遥控148
- 3.10.1红外遥控工作原理149
- 3.10.2红外遥控驱动实现150
- 3.11三轴加速度传感器153
- 3.11.1三轴加速度传感器工作原理154
- 3.11.2三轴加速度传感器的驱动实现155
- 第4章高级模块篇157
- 4.1SRAM157
- 4.1.1SRAM读写与管理158
- 4.1.2SRAM管理的驱动实现158
- 4.2SD卡161
- 4.2.1SD卡的应用161
- 4.2.2SD卡驱动实现162
- 4.3FATFS文件系统164
- 4.3.1FATFS文件系统介绍164
- 4.3.2FATFS文件系统驱动实现165
- 4.4中文显示170
- 4.4.1中文显示原理171
- 4.4.2中文显示的驱动实现174
- 4.5图片显示175
- 4.5.1图片显示原理176
- 4.5.2图片显示的驱动实现177
- 4.6音乐播放178
- 4.6.1音频播放原理179
- 4.6.2音频解码与播放的驱动实现179
- 4.7录音机182
- 4.7.1录音机工作原理182
- 4.7.2录音机的驱动实现182
- 4.8FM收发184
- 4.8.1FM收发设置184
- 4.8.2FM的驱动实现185
- 4.9摄像头188
- 4.9.1摄像头工作流程190
- 4.9.2摄像头的驱动实现190
- 4.10USB通信194
- 4.10.1USB设备开发流程196
- 4.10.2USB通信的驱动实现202
- 4.112.4G无线通信204
- 4.11.1无线通信模块介绍205
- 4.11.2无线通信的驱动实现206
- 4.12TCP/IP网络传输209
- 4.12.1TCP/IP网络传输介绍210
- 4.12.2TCP/IP传输协议的驱动实现213
- 4.13Web网页服务216
- 4.13.1Web服务开发流程216
- 4.13.2Web服务的驱动实现219
- 第5章基础实验篇220
- 5.1入门实验220
- 5.1.1循环实验220
- 5.1.2软件仿真226
- 5.1.3硬件调试229
- 5.1.4程序优化230
- 5.1.5程序发布235
- 5.1.6程序架构236
- 5.1.7实验总结239
- 5.2GPIO实验240
- 5.2.1流水灯实验240
- 5.2.2蜂鸣器实验245
- 5.2.3按键捕捉实验248
- 5.2.4实验总结251
- 5.3ADC/DAC实验251
- 5.3.1ADC温度采集报警实验252
- 5.3.2DAC正弦波生成实验257
- 5.3.3实验总结263
- 5.4中断实验263
- 5.4.1外部I/O中断实验263
- 5.4.2定时器更新中断实验277
- 5.4.3脉冲测量实验286
- 5.4.4编码器测量实验295
- 5.4.5 实验总结305
- 5.5PWM实验306
- 5.5.1PWM驱动舵机实验306
- 5.5.2实验总结313
- 5.6看门狗实验313
- 5.6.1独立看门狗实验313
- 5.6.2窗口看门狗实验316
- 5.6.3实验总结322
- 5.7TFTLCD显示/触摸屏/OLED实验322
- 5.7.1TFTLCD显示实验322
- 5.7.2触摸屏实验326
- 5.7.3OLED显示实验330
- 5.7.4实验总结334
- 5.8RTC时钟/闹钟与待机唤醒实验334
- 5.8.1RTC时钟实验334
- 5.8.2RTC闹钟实验342
- 5.8.3STM32待机与唤醒实验348
- 5.8.4实验总结355
- 5.9IIC/SPI实验355
- 5.9.1EEPROM(IIC)读写实验355
- 5.9.2Flash(SPI)读写实验359
- 5.9.3实验总结364
- 5.10RS232/RS485/CAN实验364
- 5.10.1RS232通信实验364
- 5.10.2RS485通信实验370
- 5.10.3CAN通信实验374
- 5.10.4实验总结378
- 5.11红外遥控实验378
- 5.11.1软件架构设计379
- 5.11.2红外接收头硬件连接原理图381
- 5.11.3编写主VI程序381
- 5.11.4编写定时器4的中断服务子VI程序382
- 5.11.5程序编译、下载、调试384
- 5.11.6实际运行结果387
- 5.12三轴加速度传感器实验387
- 5.12.1软件架构设计388
- 5.12.23D加速度传感器接口原理图388
- 5.12.3编写主VI程序390
- 5.12.4程序编译、下载、调试391
- 5.12.5实际运行结果391
- 第6章高级实验篇393
- 6.1内存SRAM管理实验393
- 6.1.1软件架构设计393
- 6.1.2外部SRAM接口连接原理图394
- 6.1.3编写主VI程序395
- 6.1.4程序编译、下载、调试395
- 6.1.5实际运行结果397
- 6.2SD卡读写实验398
- 6.2.1软件架构设计398
- 6.2.2SD卡插槽连接原理图399
- 6.2.3编写主VI程序399
- 6.2.4程序编译、下载、调试400
- 6.2.5实际运行结果400
- 6.3FATFS文件系统实验401
- 6.3.1软件架构设计402
- 6.3.2FATFS文件系统硬件原理图402
- 6.3.3编写主VI程序403
- 6.3.4程序编译、下载、调试403
- 6.3.5实际运行结果404
- 6.4中文显示实验405
- 6.4.1软件架构设计405
- 6.4.2中文显示硬件原理图406
- 6.4.3编写主VI程序406
- 6.4.4程序编译、下载、调试407
- 6.4.5实际运行结果408
- 6.5图片显示实验409
- 6.5.1软件架构设计409
- 6.5.2图片显示硬件原理图410
- 6.5.3编写主VI程序410
- 6.5.4程序编译、下载、调试411
- 6.5.5实际运行结果412
- 6.6音乐播放实验412
- 6.6.1软件架构设计413
- 6.6.2MP3模块硬件原理图413
- 6.6.3编写主VI程序415
- 6.6.4程序编译、下载、调试415
- 6.6.5实际运行结果416
- 6.7录音机实验417
- 6.7.1软件架构设计418
- 6.7.2录音机硬件原理图418
- 6.7.3编写主VI程序420
- 6.7.4程序编译、下载、调试421
- 6.7.5实际运行结果421
- 6.8FM收发实验422
- 6.8.1软件架构设计423
- 6.8.2FM模块硬件原理图423
- 6.8.3编写主VI程序425
- 6.8.4程序编译、下载、调试425
- 6.8.5实际运行结果426
- 6.9摄像头视频拍照实验427
- 6.9.1软件架构设计428
- 6.9.2摄像头模块与STM32之间的硬件连接430
- 6.9.3编写主VI程序430
- 6.9.4编写外部I/O的中断服务VI程序431
- 6.9.5程序编译、下载、调试432
- 6.9.6实际运行结果434
- 6.10USB通信实验434
- 6.10.1USB通信架构开发流程434
- 6.10.2USB固件程序框架设计(STM32)435
- 6.10.3USB设备硬件原理图(STM32)436
- 6.10.4USB固件程序编写(STM32)437
- 6.10.5USB固件程序编译、下载、调试437
- 6.10.6USB设备驱动文件生成(主机PC)438
- 6.10.7USB应用程序开发(主机PC)445
- 6.10.8实际运行结果448
- 6.112.4G无线通信实验449
- 6.11.12.4G无线通信程序开发流程450
- 6.11.2NRF24L01发送方程序编写(STM32)450
- 6.11.3NRF24L01接收方程序编写(STM32)451
- 6.11.4NRF24L01无线模块接口硬件原理图452
- 6.11.5无线通信程序编译、下载、调试452
- 6.11.6实际运行结果454
- 6.12TCP网络传输实验456
- 6.12.1TCP网络传输开发流程456
- 6.12.2TCP服务器端程序编写(下位机STM32)456
- 6.12.3TCP客户端程序编写(上位机PC)457
- 6.12.4ENC28J60网络传输模块硬件原理图459
- 6.12.5TCP网络传输程序编译、下载、调试459
- 6.12.6实际运行结果460
- 6.13Web网页服务实验462
- 6.13.1Web服务器端程序编写(下位机STM32)463
- 6.13.2ENC28J60网络传输模块硬件原理图464
- 6.13.3Web服务器程序编译、下载、调试466
- 6.13.4实际运行结果466
- 第7章综合实验篇469
- 7.13D游戏手柄实验470
- 7.1.1软件架构设计(标准状态机)471
- 7.1.2My_ARM学习板接口连接原理图472
- 7.1.3My_ARM学习板接口实物图473
- 7.1.4编写主VI程序473
- 7.1.5编写I/O中断服务VI程序476
- 7.1.6程序编译、下载、调试476
- 7.1.7USB驱动生成安装479
- 7.1.8上位机应用程序APP482
- 7.1.9实际运行结果483
- 7.2电机闭环控制实验484
- 7.2.1软件架构设计(标准状态机)485
- 7.2.2My_ARM学习板接口连接原理图487
- 7.2.3My_ARM学习板接口实物图488
- 7.2.4编写主VI程序488
- 7.2.5编写定时器中断服务VI程序494
- 7.2.6程序编译、下载、调试495
- 7.2.7PID参数整定方法498
- 7.2.8上位机应用程序APP502
- 7.2.9实际运行结果504
- 7.3音频信号在线监测实验505
- 7.3.1软件架构设计(标准状态机)508
- 7.3.2My_ARM学习板接口连接原理图510
- 7.3.3My_ARM学习板接口实物图511
- 7.3.4编写主VI程序511
- 7.3.5程序编译、下载、调试518
- 7.3.6上位机应用程序APP520
- 7.3.7实际运行结果520
- 附录522