本开发指南将由浅入深,带领大家进入 STM32 的世界。本指南总共分为三篇:1,硬件篇,主要介绍本指南的实验平台;2,软件篇,主要介绍 STM32 开发软件的使用以及一些下载调试的技巧,并详细介绍了几个常用的系统文件(程序);3,实战篇,主要通过 56 个实例(绝大部分是直接操作寄存器完成的)带领大家一步步深入 STM32 的学习。
本指南为 ALIENTEK 战舰 STM32 开发板的配套教程,在开发板配套的光盘里面,有详细原理图以及所有实例的完整代码,这些代码都有详细的注释,所有源码都经过我们严格测试,不会有任何警告和错误,另外,源码有我们生成好的 hex 文件,大家只需要通过串口下载到开发板即可看到实验现象,亲自体验实验过程。
本指南不仅非常适合广大学生和电子爱好者学习 STM32,其大量的实验以及详细的解说,也是公司产品开发的不二参考。
Cortex-M3 采用 ARM V7 构架,不仅支持 Thumb-2 指令集,而且拥有很多新特性。较之 ARM7 TDMI,Cortex-M3 拥有更强劲的性能、更高的代码密度、位带操作、可嵌套中断、低成本、低功耗等众多优势。
国内 Cortex-M3 市场,ST(意法半导体)公司的 STM32 无疑是最大赢家,作为 Cortex-M3 内核最先尝蟹的两个公司(另一个是 Luminary(流明))之一,ST 无论是在市场占有率,还是在技术支持方面,都是远超其他对手。在 Cortex-M3 芯片的选择上,STM32 无疑是大家的首选。
现在 ST 公司又推出了 STM32F0 系列 Cortex M0 芯片以及 STM32F4 系列 Coretx M4 芯片,这两种芯片都已经量产,而且可以比较方便的购买到,但是本指南,我们只讨论 Cortex M3,(因为这个现在是性价比最高的 )有兴趣的读者可以自行了解一下。
STM32 的优异性体现在如下几个方面:
1, 超低的价格。以 8 位机的价格,得到 32 位机,是 STM32 最大的优势。
2, 超多的外设。STM32 拥有包括:FSMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、 ADC、DAC、RTC、DMA 等众多外设及功能,具有极高的集成度。
3, 丰富的型号。STM32 仅 M3 内核就拥有 F100、F101、F102、F103、F105、F107、F207、 F217 等 8 个系列上百种型号,具有 QFN、LQFP、BGA 等封装可供选择。同时 STM32 还推出了 STM32L 和 STM32W 等超低功耗和无线应用型的 M3 芯片。
4, 优异的实时性能。84 个中断,16 级可编程优先级,并且所有的引脚都可以作为中断输入。
5, 杰出的功耗控制。STM32 各个外设都有自己的独立时钟开关,可以通过关闭相应外设的时钟来降低功耗。
6, 极低的开发成本。STM32 的开发不需要昂贵的仿真器,只需要一个串口即可下载代码,并且支持 SWD 和 JTAG 两种调试口。SWD 调试可以为你的设计带来跟多的方便,只需要 2 个 IO 口,即可实现仿真调试。
学习 STM32 有两份不错的中文资料:
《STM32 参考手册》中文版 V10.0
《Cortex-M3 权威指南》中文版(宋岩 译)
前者是 ST 官方针对 STM32 的一份通用参考资料,内容翔实,但是没有实例,也没有对 Cortex-M3 构架进行多少介绍(估计 ST 是把读者都当成一个 Cortex-M3 熟悉者来写的),读者只能根据自己对书本的理解来编写相关代码。后者是专门介绍 Cortex-M3 构架的书,有简短的实例,但没有专门针对 STM32 的介绍。所以,在学习 STM32 的时候,必须结合这份资料来看。
STM32 拥有非常多的寄存器,其中断管理更是复杂,对于新手来说,看 ST 提供的库函数虽然可以很好的使用,但是没法深入理解,一旦出错,查问题就非常痛苦了。另外,库函数在效率和代码量上面都是不如直接操作寄存器的。
本指南将结合《STM32 参考手册》和《Cortex-M3 权威指南》两者的优点,并从寄存器级别出发,深入浅出,向读者展示 STM32 的各种功能。总共配有 56 个实例,基本上每个实例在均配有软硬件设计,在介绍完软硬件之后,马上附上实例代码,并带有详细注释及说明,让读者快速理解代码。
这些实例涵盖了 STM32 的绝大部分内部资源,并且提供很多实用级别的程序,如:内存管理、拼音输入法、手写识别、图片解码、IAP 等。所有实例在 MDK3.80A 编译器下编译通过,大家只需下载程序到 ALIENTEK 战舰 STM32 开发板,即可验证实验。
不管你是一个 STM32 初学者,还是一个老手,本指南都非常适合。尤其对于初学者,本指南将手把手的教你如何使用 MDK,包括新建工程、编译、仿真、下载调试等一系列步骤,让你轻松上手。本指南不适用于想通过库函数学习 STM32 的读者,因为本指南的绝大部分内容都是直接操作 STM32 寄存器的,如果你想通过库函数学习 STM32,建议直接看 MDK 安装目录下的例程就可以了。
本指南的实验平台是 ALIENTEK 战舰 STM32 开发板,有这款开发板的朋友则直接可以拿本指南配套的光盘上的例程在开发板上运行、验证。而没有这款开发板而又想要的朋友,可以上淘宝购买。当然你如果有了一款自己的开发板,而又不想再买,也是可以的,只要你的板子上有 ALIENTEK 战舰 STM32 开发板上的相同资源(需要实验用到的),代码一般都是可以通用的,你需要做的就只是把底层的驱动函数(一般是 IO 操作)稍做修改,使之适合你的开发板即可。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部1条评论
快来发表一下你的评论吧 !