《精通STM32F4(寄存器版 第2版)》由浅入深,旨在讲解STM32F407的各个功能。该书总共分为3篇:硬件篇,主要介绍实验平台;软件篇,主要介绍STM32F4常用开发软件的使用以及一些下载调试的技巧,并详细介绍几个常用的系统文件(程序);实战篇,通过34个实例(绝大部分是直接操作寄存器完成的)带领大家一步步深入了解STM32F4。本次修订对部分知识进行了更新。
该书可配套ALIENTEK探索者STM32F4开发板学习使用,配套资料包含详细原理图以及所有实例的完整代码,这些代码都有详细的注释,且都经过严格测试,不会有任何警告和错误。另外,源码已生成hex文件,读者只需要通过串口/仿真器下载到开发板即可看到实验现象,亲自体验实验过程。
《精通STM32F4(寄存器版 第2版)》适用于学生和电子爱好者学习STM32F4,其大量的实验以及详细的解说也是公司产品开发的有力助手。
作为Cortex-M3市场的最大占有者之一,ST公司在2011年推出了基于Cortex -M4内核的STM32F4系列产品。相比STM32F1/F2等Cortex-M3产品,STM32F4最大的优势就是新增了硬件FPU单元以及DSP指令,同时,其主频也提高了很多,达到168 MHz(可获得210 DMIPS的处理能力),使得STM32F4尤其适用于需要浮点运算或DSP处理的应用,因而被称为DSC,具有非常广泛的应用前景。
STM32F4相对于STM32F1,主要优势如下:
①更先进的内核。STM32F4采用Cortex-M4内核,带FPU和DSP指令集,而STM32F1采用的是Cortex-M3内核,不带FPU和DSP指令集。
②更多的资源。STM32F4拥有192 KB的片内SRAM,带摄像头接口(DCMI)、加密处理器(CRYP)、USB高速OTG、真随机数发生器、OTP存储器等。
③增强的外设功能。对于相同的外设部分,STM32F4具有更快的模/数转换速度、更低的ADC/DAC工作电压、32位定时器、带日历功能的实时时钟(RTC)、复用功能大大增强的I/O、4 KB的电池备份SRAM以及更快的USART和SPI通信速度。
④更高的性能。STM32F4最高运行频率可达168 MHz,而STM32F1只能到72 MHz; STM32F4拥有ART自适应实时加速器,可以达到相当于FLASH零等待周期的性能,STM32F1则需要等待周期;STM32F4的FSMC采用32位多重AHB总线矩阵,相比STM32F1总线访问速度明显提高。
⑤更低的功耗。STM32F40x的功耗为238μA/MHz,其中,低功耗版本的STM32F401更是低到140μA/MHz,而STM32F1则高达421μA/MHz。
STM32F4家族目前拥有STM32F40x、STM32F41x、STM32F42x和STM32F43x等几个系列、数十个产品型号,不同型号之间软件和引脚具有良好的兼容性,可方便客户迅速升级产品。其中,STM32F42x/43x系列带LCD控制器和SDRAM接口,对于
想要驱动大屏或需要大内存的用户来说,是个不错的选择。目前,STM32F4这些芯片型号都已量产,可以方便地购买到,性价比最高的是STM32F407。本书将以
STM32F407为例来讲解STM32F4。
内容特点
学习STM32F4经常用到的资料:《STM32F4xx中文参考手册》、《STM32F3与F4系列Cortex-M4内核编程手册》英文版、《ARM Cortex-M3与M4权威指南》英文版。
最常用的是《STM32F4xx中文参考手册》。该手册是ST官方针对STM32的一份通用参考资料,内容翔实,但是没有实例,也没有对Cortex-M4构架进行太多介绍,读者只能根据自己对书本的理解来编写相关代码。
《STM32F3与F4系列Cortex-M4内核编程手册》则重点介绍了Cortex-M4内核的汇编指令及其使用、内核相关寄存器(如SCB、NVIC、SYSTICK等寄存器),是《STM32F4xx中文参考手册》的重要补充。很多在《STM32F4xx中文参考手册》无法找到的内容都可以在这里找到,不过目前该文档没有中文版本,只有英文版。
《ARM Cortex-M3与M4权威指南》详细介绍了Cortex-M3和Cortex-M4内核的体系架构,并配有简单实例。对于想深入了解Cortex-M4内核的读者来说,这是非常好的参考资料。该文档目前只有英文版。由于Cortex-M3和Cortex-M4很多地方都是通用的,所以有的时候可以参考《ARM Cortex-M3权威指南(中文版)》文档。
本书将结合以上3份资料,从寄存器级别出发,深入浅出地向读者展示STM32F4的各种功能。全书配有34个实例,每个实例均配有软硬件设计,在介绍完软硬件之后附上实例代码,并带有详细注释及说明,可让读者快速理解代码。
本书实例涵盖了STM32F4的绝大部分内部资源,提供了很多实用级别的程序,如内存管理、文件系统、图片解码、IAP等。所有实例在MDK5编译器下编译通过,读者只须下载程序到ALIENTEK探索者STM32开发板即可验证实验。
读者对象
不管你是一个STM32初学者,还是一个老手,本书都非常适合。对于初学者,本书将手把手地教你如何使用MDK,包括新建工程、编译、仿真、下载调试等一系列步骤,让你轻松上手。本书不适用于想通过库函数学习STM32的读者,因为本书的绝大部分内容都是直接操作STM32寄存器的;如果想通过库函数学习STM32F4,可以参考《精通STM32F4(库函数版)(第2版)》一书。
配套资料
本书的实验平台是ALIENTEK探索者STM32开发板,有这款开发板的朋友可直接拿本书配套的例程在开发板上运行、验证。而没有这款开发板的朋友,可以上淘宝购买。当然,如果已有了一款自己的开发板,只要你的板子上有ALIENTEK探索者STM32开发板上的相同资源(需要实验用到的)也可以,代码一般都是通用的,你需要做的只是把底层的驱动函数(比如I/O口修改)稍做修改,使之适合你的开发板即可。
第1篇 硬件篇
第1章 实验平台简介
1.1 ALIENTEK探索者STM32F4开发板资源初探
1.2 ALIENTEK探索者STM32F4开发板资源说明
1.2.1 硬件资源说明
11 2.2 软件资源说明
第2章 实验平台硬件资源详解
2.1 开发板原理图详解
2.2 开发板使用注意事项
2.3 STM32F4学习方法
第2篇 软件篇
第3章 MDK5软件入门
3.1 MDK5简介
3.2 新建MDK5工程
3.3 MDK5使用技巧
3.3.1 文本美化
3.3.2 语法检测与代码提示
3.3.3 代码编辑技巧
3.3.4 其他小技巧
第4章 下载与调试
4.1 STM32F4程序下载
4.2 STM32F4在线调试
第5章 SYSTEM文件夹介绍
5.1 delay文件夹代码介绍
5.2 sys文件夹代码介绍
5.2.1 I/0口的位操作实现
5.2.2 时钟配置函数
5.2.3 Sys_Soft_Reset函数
5.2.4 Sys_Standby函数
5.2.5 110设置函数
5.2.6 中断管理函数
5.3 usart文件夹介绍
5.3.1 USARTl_lRQHandler函数
5.3.2 uart_init函数
第3篇 实战篇
第6章 跑马灯实验
第7章 按键输入实验
第8章 串口通信实验
第9章 外部中断实验
第10章 独立看门狗(IWDG)实验
第11章 窗口看门狗(WWDG)实验
第12章 定时器中断实验
第13章 PWM输出实验
第14章 输入捕获实验
第15章 TFTLCD显示实验
第16章 USMART调试组件实验
第17章 RTC实时时钟实验
第18章 待机唤醒实验
第19章 ADC实验
第20章 DAC实验
第21章 DMA实验
第22章 I2C实验
第23章 SPI实验
第24章 RS485实验
第25章 CAN通信实验
第26章 触摸屏实验
第27章 FLASH模拟EEPROM实验
第28章 摄像头实验
第29章 外部SRAM实验
第30章 内存管理实验
第31章 SD卡实验
第32章 FATFS实验
第33章 汉字显示实验
第34章 图片显示实验
第35章 FPU测试(Julia分形)实验
第36章 DSP测试实验
第37章 串口IAP实验
第38章 USB读卡器(Slave)实验
第39章 网络通信实验
参考文献