首页>参考读物>电子电工>电子工程

STM32开发实战:LabVIEW卷
作者 : 王电令 苏亚辉 苏彩红 编著
出版日期 : 2016-06-17
ISBN : 978-7-111-53642-0
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 539
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

作为学习LabVIEW与32位微处理器STM32的入门级教材,本书从LabVIEW for ARM嵌入式软件架构入手,在分析STM32芯片内部每个功能模块的基础上,着重介绍使用LabVIEW对其进行编程的工作原理和开发过程,让读者知其所以然。同时,本书还配套了40个从初级、中级到高级的实验例程和经典案例,帮助读者快速理解和掌握图形化ARM嵌入式系统开发。通过基本原理、实验例程、案例分析,这种循序渐进、由浅入深的方式引导读者完成由STM32初学者过渡到ARM嵌入式开发工程师的转变。

图书特色

首本系统讲解如何使用LabVIEW直接开发STM32芯片的书——边缘创新。
提供完整45课时的基础/高级/综合实验课程及其视频教程——易学易用。
配套首款支持LabVIEW直接编程的STM32学习板/数采板/核心板——极致体验。

此书很好地体现了NI公司“LabVIEW Everywhere”的理念,不仅结合了最流行的通用ARM硬件平台,而且全面地解析了软件开发、硬件接口和传感器等基本概念,让读者很容易就能从书中获取作者分享的工程开发经验,迅速实现从入门到精通。

 张 浩 美国国家仪器 应用及系统技术部门 中国区高级经理
用LabVIEW做传统嵌入式系统的开发,估计很多人都会有点怀疑,但是王电令用他的热情和执着做到了。他为工程师们提供了一种全新的方法。不要小看这一点点的改变,我认为这是一种“边缘创新”。 随着LabVIEW这种图形化编程软件的流行,说不定哪一天,它就成了这个领域的主流。这样的例子,每天都在发生着!

季 雷 美国国家仪器 华东区域销售经理
随着中国创新创业的热潮愈发浓厚,越来越多的“创客”行走在追求梦想的道路上。很高兴看到作者为创客以及有着无限未来的大学生,提供了一种快速设计系统的方法和平台,并基于此撰写了这本全面、清晰的开发宝典。图形化系统设计语言LabVIEW在软件层面的丰富生态系统和便捷开发特性,结合开源硬件尤其是STM32的性能和外设优势,相信会给大家带来全新的系统设计体验。用心阅读,相信你和我一样,可以感受到作者的 “三年磨一剑,锋从磨砺出”。祝愿所有读者可以借由此书,体会到更多嵌入式编程的乐趣和成就感!

潘 宇 美国国家仪器 中国院校计划经理

本书特色:
系统的理论:对STM32内部的资源模块、通信协议进行详尽的理论讲解,真正做到知其所以然。
完善的驱动:详细介绍了近300个STM32驱动VI及其注意事项,完全覆盖STM32所有硬件资源。
丰富的例程:从基础实验、高级实验到综合实验累计45例,全方位满足不同用户和读者的需求。
广泛的使用:本书非常适合院校教学与科研,以及企业非标设备、产品定制化、项目快速开发。
开放的平台:本书配套的MyARM官方实验平台,是一种真正意义上的、通用的、开放的图形化开发与原型验证平台。

王电令 毕业于中国科学技术大学。高级资深应用工程师,LabVIEW软件架构师,现任职美国国家仪器公司(NI)。任职期间获得NI最佳优秀员工奖。长期从事LabVIEW 嵌入式技术和产品的开发与推广工作,研究方向为实时系统、FPGA并行计算、运动控制、机器视觉。

苏亚辉 安徽大学电气工程与自动化学院测控技术与仪器专业副教授。常年从事虚拟仪器技术的教学及应用研究,指导本科生、硕士生完成国家级创新项目多项,发表多篇与虚拟仪器技术相关的学术论文。

苏彩红 博士,佛山科学技术学院教授,硕士生导师。承担项目30多项,发表论文50余篇。长期从事嵌入式应用的教学、研究与开发,主要研究方向包括:模式识别与检测技术、机器视觉与运动控制、物联网技术。

本书系统讲解如何使用LabVIEW直接对STM32进行开发编程。众所周知,STM32是目前全球使用最为广泛、出货量最多的ARM芯片之一,其中,又以Cortex-M3/M4/M7内核最具代表性。而LabVIEW也已经成为业界事实上的标准化图形编程软件。借助LabVIEW嵌入式开发工具包,作者三年磨一剑,将STM32芯片内部所有硬件资源全部封装成LabVIEW下的驱动VI,使得LabVIEW真正运行在STM32芯片中,而非传统意义上的Arduino架构(上位机LabVIEW+VISA通信)。因此,使用LabVIEW可以完全替代传统的C文本、梯形图等编程语言,实现对STM32的无缝开发,将图形化开发平台理念深入到传统的嵌入式领域。

图书前言

想要深入了解美国国家仪器公司(NI)在嵌入式系统领域今后重点投入和发展的用户,可以参考Dr.T(NI公司创始人兼CEO)撰写的《2012年嵌入式系统展望》和《2013年嵌入式系统展望》两篇文章(https://lumen.ni.com/nicif/zhs/infoembdsystrends/content.xhtml)。在2012年的文章里面,Dr.T回顾了传统的嵌入式开发,介绍了NI公司现在的嵌入式开发架构,以及将来完美的解决方案。下面让我们先通过下表来看看NI公司都支持哪些具体的嵌入式硬件开发及其特点与优势。
表 NI嵌入式硬件支持概况
嵌入式硬件 主流芯片 优点 缺点 NI软件工具包
微控制器 8051、MSP430单片机 低成本、体积小、易于编程 在高性能的应用中会力不从心 C Generator Toolkit
微处理器 ARM7、ARM9、M3、M4、M7 高时钟频率,可以完成高性能的应用,易于编程 高功耗、顺序处理结构 Embedded for ARM Toolkit
数字信号处理专用器件 DSP(ADI、TI) 支持硬件浮点计算,处理速度快 固有的顺序处理机制 Embedded for DSP Toolkit
通用计算处理器 CPU(Intel、AMD) 支持多核并行处理器机制,处理速度极快 高功耗、系统中必须有CPU Real-time Module
现场可编程门阵列 FPGA(Xilinx、Altera) 可以通过软件定义的高灵活性硬件,可重复编程的电路–固有的并行处理架构 成本高、功耗高 FPGA Module

从上表中可以看出,NI公司支持的硬件非常广泛,基本上涵盖了所有种类(除ASIC外)的嵌入式通用芯片。其中对ARM、FPGA和CPU的支持持续更新;而单片机和DSP的更新则较慢,也很少在国内推广,仅限于高校使用;FPGA的势头最猛,也是NI现在以及未来重点支持的五大方向之一;由于ARM内核的芯片近些年在移动市场占据了越来越多的份额,NI公司也开始顺应潮流,开发出相应的工具包;DSP这两年有被FPGA逐步取代的趋势,今后,NI公司对DSP的支持度会逐年降低;CPU在主频和多核领域有着无可替代的优势,因此,NI公司不会放弃它,产品具体体现在PXI平台和cDAQ机箱;而单片机性能相对较弱,NI公司官方不会再支持。
图1显示的是NI公司的LabVIEW图形化软件所能支持的处理器和嵌入式操作系统的全部家族成员。

图1 LabVIEW支持的处理器和嵌入式操作系统家族成员
在国内,ARM7/ARM9同样受到很多工程师的欢迎,这类MCU非常适合于Windows CE系统,因此,经作者对国内市场的分析,并结合NI的战略,计划推出3本有关LabVIEW嵌入式开发的书,本书就是其中之一。
本书重点介绍嵌入式家族中的ARM Cortex-M3成员,即如何利用LabVIEW图形化软件,帮助用户快速实现一个小型ARM嵌入式系统原型开发。
首先从LabVIEW这个闻名全球的图形化软件说起。提到LabVIEW,相信很多工程师都不陌生,即使没有使用LabVIEW做过项目开发,或多或少也听说过LabVIEW的强大功能。对于想系统学习或者提高LabVIEW编程能力的学生和工程师,作者向大家推荐两本经典教材,分别是阮奇桢编著的《我和LabVIEW》和陈树学编著的《LabVIEW宝典》。
下面为大家简单介绍一下LabVIEW。
LabVIEW全称是Laboratory Virtual Instrumentation Engineering Workbench,是由美国国家仪器公司(NI)于1986年发明的,最新的版本是2015,以后的版本号均按年份命名,于每年的8月发布。NI公司的LabVIEW之父Jeff Kodosky已经申请并获批68项LabVIEW专利。尽管LabVIEW还没有像C语言那样被ISO组织接受并认证,但它已经成为工业自动化和测试测量行业事实上的标准。
以LabVIEW为核心,配合不同行业的专用工具包,结合NI强大的硬件平台所构成的这种“图形化设计”理念,已经快速渗透到各行各业,形成了一个完整的生态系统。尤其是在嵌入式应用、FPGA设计、运动控制、图像处理、半导体测试、射频等领域,它将占据越来越多的市场份额。
图2显示的是LabVIEW针对各行各业的软件模块。

图2 LabVIEW所有软件模块
图2的上半部分展示上位机纯软件开发模块,具体说明如下:针对C语言编写的代码可以使用库函数节点来调用;针对MATLAB编写的算法可以使用MathScript节点来调用;针对LabVIEW自身则直接使用数据流思想进行编程;针对Simulink或者HIL(硬件在环)可以使用Simulation模块来调用;针对工业自动化控制可以使用Statecharts(状态图)模块来
编程。
图2的下半部分展示下位机嵌入式软件开发模块,主要说明如下:针对DSP/ARM固件驱动开发可以使用LabVIEW嵌入式模块实现;针对Xilinx FPGA可以使用NI FPGA工具包进行开发;针对多核处理器可以使用LabVIEW Real-Time模块进行开发。
本书向大家介绍的正是LabVIEW在嵌入式领域中的应用。下面来了解一下LabVIEW在这个领域的嵌入式硬件产品。
图3显示的是NI公司针对嵌入式领域研发的一系列硬件设备,例如,LabVIEW Desktop可以运行在PC、笔记本电脑、工控机、PXI控制器或者cDAQ机箱上;LabVIEW Real-Time和FPGA模块可以用来开发PXI系统、cRIO、sbRIO,以及MyRIO等硬件设备;LabVIEW嵌入式模块可以用来开发用户自定义功能的DSP、ARM,或者可编程数据采集卡等硬件设备。

图3 LabVIEW可编程硬件设备
截至目前,LabVIEW能够直接开发的嵌入式处理器包括:
ADI公司的Blackfin处理器。
TI公司的DSP处理器。
ARM公司的ARM Cortex-M3、ARM7、ARM9处理器。
Xilinx公司的FPGA处理器。
当然,除了以上这些种类的芯片外,LabVIEW还支持任意一款32位MCU处理器,但是需要开发者具备非常丰富的软硬件知识和经验才能移植成功,工作量比较大。
LabVIEW生成的EXE可以直接运行的嵌入式系统包括:
Keil公司的RTX实时操作系统。
Lineo公司的uClinux实时操作系统。
RedHat公司的eCos实时操作系统。
Wind River System 公司的VxWorks实时操作系统。
当然,除了以上4类嵌入式操作系统外,LabVIEW还可以运行于Windows、Pharlap、UNIX、Linux等操作系统。
本书重点向大家介绍如何利用LabVIEW快速、高效地开发可以运行于ARM Cortex-M3处理器上的应用程序。最近两年,ARM内核的处理器在国内占据了越来越多的市场份额,这是因为这类微处理器在传统的中低端嵌入式领域有着非常高的性价比。目前应用最广的ARM Cortex-M3处理器又以意法半导体(ST)公司的STM32F10x和流明诺瑞公司(已被TI公司收购)的LM3S8962最为知名。因此,本书配套的实验平台选用的就是以STM32芯片为核心而设计制作的学习板。
下面简单对比一下利用传统文本语言开发和利用LabVIEW图形化开发之间的差别,如图4所示。

图4 汇编语言、C/C++语言与第四代图形化编程语言之间的区别
从图4中读者或许感觉不到LabVIEW的优势所在,那么再来看看图5所显示内容,即如何在处理器和操作系统的基础上实现多线程编程。
从图5中应该可以明显地看出二者的优劣。对于使用LabVIEW的用户来说,在开发一个多线程多任务的程序时,只需要关注LabVIEW环境下的while循环结构和case条件结构,就能实现其所有的需求,并且LabVIEW支持前面板在线实时调试,无须再像传统开发方式那样通过串口打印、IDE等工具来调试。这一切只要LabVIEW一个图形化软件就能轻松完成。
最后,设计嵌入式系统时选用LabVIEW的十大理由如下:
借助LabVIEW图形化设计环境,实现快速编程与部署。
重复使用传统嵌入式代码、C语言库和官方汇编库。
借助内嵌实时操作系统,灵活应对严格实时需求。
借助内置调试、仿真和用户界面功能,实现快速原型开发。
集成数百种信号处理、数学分析、ARM硬件驱动VI。
不需要严格的计算机C语言训练,即可快速上手编程。
拥有丰富的实验例程和标准的范例模板程序。
确保软件投资收益,轻松部署硬件平台。
借助LabVIEW平台的通用性,灵活调用附加功能模块。
LabVIEW近30年的发展与改进,帮助全球工程师协作共进。

图5 LabVIEW与C*两种语言的多线程编程
本书的配套资料中包含开发实验平台(STM32学习板)所有相关的原理图以及完整的LabVIEW程序源代码,每个驱动VI都有详细的帮助文档,所有范例程序框图都添加了详细的注释。读者只需要点击VI运行按钮,就可以直接将LabVIEW程序框图下载到STM32芯片中进行图形化在线调试,而无须通过串口等调试工具,因此,可以极大地简化开发过程,缩短调试周期,提高项目开发效率。
关于软件的说明如下:
1)本书涉及的所有开发软件、学习资料和视频教程均可以通过百度云盘免费下载和使用。云盘中的文件夹列表说明和具体的下载地址,请参考本书附录。
2)对于没有网络或者网速较慢的用户,可以购买本书配套的U盘(16GB),里面包含了本书配套的开发软件、学习资料和视频教程。需要购买的用户可以通过邮箱dlw30@126.com与作者联系,也可以直接在淘宝(https://shop123596343.taobao.com/ spm:2013.1.100126.2. zifk17)进行选购。
作者是一名NI资深软件架构工程师(CLA),对于写作并不擅长,书中错漏之处还望大家指正。同时作者也是一名LabVIEW爱好者,作为全球LabVIEW爱好者大家庭中的一员,最大的愿望就是,希望大家通过对本书的学习,按照基本原理、实验例程、案例分析这种循序渐进的学习方式,由STM32初学者成长为一名ARM嵌入式开发工程师,并将LabVIEW技术运用在自己的实际工作中。
读者对本书有任何意见或建议欢迎与作者联系,作者邮箱:dlw30@126.com。

王电令
2016年4月
于美国国家仪器,中国总部

上架指导

自动化\嵌入式

封底文字

此书很好在体现了NI公司LabVIEW everywhere的概念,不仅结合了最流行的通用ARM硬件平台,而且全面地解析了软件开发、硬件接口和传感器等基本概念,让读者很容易就能从书中获取作者工程开发过程中的丰富经验,迅速学习并实现从入门到精通。

  ——张浩 先生
美国国家仪器——应用及系统技术部门 中国区高级经理

用LabVIEW做传统嵌入式系统的开发,估计很多读者都会有点怀疑,但是王电令(作者)用他的热情和执着做到了。他为工程师们提供了一种全新的方法。不要小看这一点点的改变,我认为这是一种“边缘创新”。 随着LabVIEW这种图形化编程软件的流行,说不定哪一天,它就成了这个领域的主流。这样的例子,每天都在发生着!

  ——季雷 先生
美国国家仪器——华东区域销售经理

随着中国创新创业的热潮愈发浓厚,越来越多的“创客”行走在追求梦想的道路上。很高兴看到作者为创客们,以及有着无限未来的大学生们,提供了一种快速设计系统的方法和平台,并基于此撰写了这样一本全面、清晰的开发宝典。图形化系统设计语言LabVIEW在软件层面的丰富生态系统和便捷开发特性,配合上开源硬件尤其是STM32的性能和外设优势,相信会给大家带来全新的系统设计体验。用心阅读,相信你和我一样,可以感受到作者如此用心的 “三年磨一剑,锋从磨砺出”。祝愿所有本书的读者可以借由此书,体会到更多嵌入式编程的乐趣和成就感,早日梦想实现!

  ——潘宇 女士
美国国家仪器——中国院校计划经理

本书特色

1)系统的理论:对STM32内部的资源模块、通信协议进行详尽的理论讲解,真正做到知其所以然。
2)完善的驱动:详细介绍了近300个STM32驱动VI及其注意事项,完全覆盖STM32所有硬件资源。
3)丰富的例程:从基础实验、高级实验到综合实验累计45例,全方位满足不同用户和读者的需求。
4)广泛的使用:本书非常适合院校教学与科研,企业非标设备、产品定制化、项目快速开发。
5)开放的平台:本书配套的MyARM官方实验平台,是一种真正意义上的、通用的、开放的图形化开发与原型验证平台。

作者简介

王电令 苏亚辉 苏彩红 编著:暂无简介

图书目录

前言
致谢
第1章 软件篇 1
1.1 LabVIEW ARM嵌入式模块介绍 1
1.2 Keil RealView MDK软件介绍 4
1.3 Keil RTX实时操作系统介绍 5
1.4 LabVIEW ARM Module软件架构 7
1.5 LabVIEW ARM Module、RealView MDK、实验平台驱动软件安装 8
1.6 STM32实验范例程序查找与USB JLink-OB驱动加载 14
第2章 硬件篇 19
2.1 ARM Cortex-M3内核简介 19
2.2 实验平台介绍 20
2.2.1 My_ARM_Starter_Board学习板介绍 22
2.2.2 My_ARM_Core_Board核心板介绍 25
2.2.3 My_ARM_DAQ_Board数据采集板介绍 27
2.3 实验平台资源说明 28
2.3.1 My_ARM_Starter_Board平台资源简介 28
2.3.2 My_ARM_Core_Board平台资源简介 34
2.3.3 My_ARM_DAQ_Board平台资源简介 35
2.3.4 My_ARM实验平台总结 37
第3章 基础模块篇 38
3.1 GPIO 38
3.1.1 GPIO介绍 38
3.1.2 GPIO工作方式 39
3.1.3 GPIO驱动VI 45
3.1.4 两种驱动实现方式比较 55
3.1.5 GPIO总结 56
3.2 ADC/DAC 56
3.2.1 ADC介绍 57
3.2.2 ADC驱动实现 58
3.2.3 DAC介绍 62
3.2.4 DAC驱动实现 63
3.3 中断 66
3.3.1 外部中断 67
3.3.2 外部中断驱动实现 69
3.3.3 内部中断 76
3.3.4 定时器中断驱动实现 78
3.4 PWM生成 91
3.4.1 PWM原理及应用 92
3.4.2 PWM驱动实现 92
3.4.3 PWM参数设置技巧 97
3.5 看门狗 97
3.5.1 独立看门狗介绍 98
3.5.2 独立看门狗驱动实现 99
3.5.3 窗口看门狗介绍 100
3.5.4 窗口看门狗驱动实现 101
3.6 TFTLCD显示、触摸屏及OLED显示 103
3.6.1 TFTLCD显示原理 104
3.6.2 TFTLCD显示驱动实现 105
3.6.3 触摸屏工作原理 109
3.6.4 触摸屏驱动VI 110
3.6.5 OLED工作原理 112
3.6.6 OLED驱动实现 113
3.7 RTC时钟/待机与唤醒 114
3.7.1 RTC时钟介绍 114
3.7.2 RTC时钟驱动实现 115
3.7.3 待机与唤醒 118
3.7.4 待机与唤醒驱动实现 119
3.8 IIC/SPI总线 120
3.8.1 IIC协议介绍 120
3.8.2 IIC协议驱动实现 122
3.8.3 EEPROM驱动实现 125
3.8.4 SPI协议介绍 129
3.8.5 SPI协议驱动实现 131
3.8.6 Flash驱动实现 132
3.9 RS232/RS485/CAN总线 136
3.9.1 RS232协议介绍 136
3.9.2 RS232驱动实现 137
3.9.3 RS485协议介绍 139
3.9.4 RS485驱动实现 139
3.9.5 CAN协议介绍 140
3.9.6 CAN驱动实现 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.1 SRAM 157
4.1.1 SRAM读写与管理 158
4.1.2 SRAM管理的驱动实现 158
4.2 SD卡 161
4.2.1 SD卡的应用 161
4.2.2 SD卡驱动实现 162
4.3 FATFS文件系统 164
4.3.1 FATFS文件系统介绍 164
4.3.2 FATFS文件系统驱动实现 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.8 FM收发 184
4.8.1 FM收发设置 184
4.8.2 FM的驱动实现 185
4.9 摄像头 188
4.9.1 摄像头工作流程 190
4.9.2 摄像头的驱动实现 190
4.10 USB通信 194
4.10.1 USB设备开发流程 196
4.10.2 USB通信的驱动实现 202
4.11 2.4G无线通信 204
4.11.1 无线通信模块介绍 205
4.11.2 无线通信的驱动实现 206
4.12 TCP/IP网络传输 209
4.12.1 TCP/IP网络传输介绍 210
4.12.2 TCP/IP传输协议的驱动实现 213
4.13 Web网页服务 216
4.13.1 Web服务开发流程 216
4.13.2 Web服务的驱动实现 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.2 GPIO实验 240
5.2.1 流水灯实验 240
5.2.2 蜂鸣器实验 245
5.2.3 按键捕捉实验 248
5.2.4 实验总结 251
5.3 ADC/DAC实验 251
5.3.1 ADC温度采集报警实验 252
5.3.2 DAC正弦波生成实验 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.5 PWM实验 306
5.5.1 PWM驱动舵机实验 306
5.5.2 实验总结 313
5.6 看门狗实验 313
5.6.1 独立看门狗实验 313
5.6.2 窗口看门狗实验 316
5.6.3 实验总结 322
5.7 TFTLCD显示/触摸屏/OLED实验 322
5.7.1 TFTLCD显示实验 322
5.7.2 触摸屏实验 326
5.7.3 OLED显示实验 330
5.7.4 实验总结 334
5.8 RTC时钟/闹钟与待机唤醒实验 334
5.8.1 RTC时钟实验 334
5.8.2 RTC闹钟实验 342
5.8.3 STM32待机与唤醒实验 348
5.8.4 实验总结 355
5.9 IIC/SPI实验 355
5.9.1 EEPROM(IIC)读写实验 355
5.9.2 Flash(SPI)读写实验 359
5.9.3 实验总结 364
5.10 RS232/RS485/CAN实验 364
5.10.1 RS232通信实验 364
5.10.2 RS485通信实验 370
5.10.3 CAN通信实验 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.2 3D加速度传感器接口原理图 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.2 SD卡读写实验 398
6.2.1 软件架构设计 398
6.2.2 SD卡插槽连接原理图 399
6.2.3 编写主VI程序 399
6.2.4 程序编译、下载、调试 400
6.2.5 实际运行结果 400
6.3 FATFS文件系统实验 401
6.3.1 软件架构设计 402
6.3.2 FATFS文件系统硬件原理图 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.2 MP3模块硬件原理图 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.8 FM收发实验 422
6.8.1 软件架构设计 423
6.8.2 FM模块硬件原理图 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.10 USB通信实验 434
6.10.1 USB通信架构开发流程 434
6.10.2 USB固件程序框架设计(STM32) 435
6.10.3 USB设备硬件原理图(STM32) 436
6.10.4 USB固件程序编写(STM32) 437
6.10.5 USB固件程序编译、下载、调试 437
6.10.6 USB设备驱动文件生成(主机PC) 438
6.10.7 USB应用程序开发(主机PC) 445
6.10.8 实际运行结果 448
6.11 2.4G无线通信实验 449
6.11.1 2.4G无线通信程序开发流程 450
6.11.2 NRF24L01发送方程序编写(STM32) 450
6.11.3 NRF24L01接收方程序编写(STM32) 451
6.11.4 NRF24L01无线模块接口硬件原理图 452
6.11.5 无线通信程序编译、下载、调试 452
6.11.6 实际运行结果 454
6.12 TCP网络传输实验 456
6.12.1 TCP网络传输开发流程 456
6.12.2 TCP服务器端程序编写(下位机STM32) 456
6.12.3 TCP客户端程序编写(上位机PC) 457
6.12.4 ENC28J60网络传输模块硬件原理图 459
6.12.5 TCP网络传输程序编译、下载、调试 459
6.12.6 实际运行结果 460
6.13 Web网页服务实验 462
6.13.1 Web服务器端程序编写(下位机STM32) 463
6.13.2 ENC28J60网络传输模块硬件原理图 464
6.13.3 Web服务器程序编译、下载、调试 466
6.13.4 实际运行结果 466
第7章 综合实验篇 469
7.1 3D游戏手柄实验 470
7.1.1 软件架构设计(标准状态机) 471
7.1.2 My_ARM学习板接口连接原理图 472
7.1.3 My_ARM学习板接口实物图 473
7.1.4 编写主VI程序 473
7.1.5 编写I/O中断服务VI程序 476
7.1.6 程序编译、下载、调试 476
7.1.7 USB驱动生成安装 479
7.1.8 上位机应用程序APP 482
7.1.9 实际运行结果 483
7.2 电机闭环控制实验 484
7.2.1 软件架构设计(标准状态机) 485
7.2.2 My_ARM学习板接口连接原理图 487
7.2.3 My_ARM学习板接口实物图 488
7.2.4 编写主VI程序 488
7.2.5 编写定时器中断服务VI程序 494
7.2.6 程序编译、下载、调试 495
7.2.7 PID参数整定方法 498
7.2.8 上位机应用程序APP 502
7.2.9 实际运行结果 504
7.3 音频信号在线监测实验 505
7.3.1 软件架构设计(标准状态机) 508
7.3.2 My_ARM学习板接口连接原理图 510
7.3.3 My_ARM学习板接口实物图 511
7.3.4 编写主VI程序 511
7.3.5 程序编译、下载、调试 518
7.3.6 上位机应用程序APP 520
7.3.7 实际运行结果 520
附录 522

教学资源推荐
作者: 张雪英 刘建霞 等编著
作者: (美) 哈立德·卡梅尔(Khaled Kamel) 埃曼·卡梅尔(Eman Kamel)著
作者: 杨应平
作者: [美]托马斯·L.弗洛伊德(Thomas L. Floyd);[美] 大卫·M.布奇拉(David M. Buchla) 著
参考读物推荐
作者: (美)R.C. Cofer Benjamin F. Harding 著
作者: 白海潮 编著
作者: 滕家海 编著