1、STM32STM32STM32STM32 入门简易教程入门简易教程 第一章第一章 STM32STM32STM32STM32 处理器概述处理器概述 优秀的处理器配合好的开发工具和工具链成就了单片机的辉煌, 这是单片机开发者辛勤 劳动的结果。也正因为此,ARM 的工具链工程师和 CPU 工程师强强联手,日日夜夜不停耕 耘为 ARM7TDMI 设计出了精练、优化和到位的内部结构,终于成就了 ARM7TDMI 的风光 无限的辉煌。新的 ARM Cortex-M3 处理器在破茧而出之后,就处处闪耀着 ARM 体系结构 激动人心的新突破。它是基于最新最好的 32 为 ARMv7 架构,支持高度成功的 Thumb-2 指 令集,并带来了很多前卫崭新的特性。在它优秀,强大的同时,编程模型也更清爽,因而无 论你是新手还是骨灰级玩家都会对这样秀外慧中的小尤物爱不释手。 根据 ARM 的统计,2010 年全部 Cortex-M MCU 出货量为 1.44 亿片,2008 年2011 年 第一季度,STM32 累计出货量占 Cortex-MMCU 出货量的 45%。也就是说,两个 Cortex-M 微控制器中
2、有一个就来自 ST。”很多市场分析机构也 ARM 的强劲增长表示认可。2007 年, 在 32/64bitMCU 及 MPU 架构中, ARM 所占市场份额为 13.6%, 而 2010 年已经占了 23.5%, 击败了 Power Architecture,成为市场占有率最多的架构。 Cortex-M3 内核是 ARM 公司整个 Cortex 内核系列中的微控制器系列 (M) 内核, 还是其他两个系列分别是应用处理器系列(A)与实时控制处理系列(R) ,这三个 系列又分别简称为 A、R、M 系列。当然,这三个系列的内核分别有各自不同的应 用场合。 Cortex-M3 内核是为满足存储器和处理器的尺寸对产品成本影响很大的广泛市场和应 用领域的低成本需求而专门开发设计的。主要是应用于低成本、 小管脚数和低功耗的场 合,并且具有极高的运算能力和极强的中断响应能力。Cortex-M3 处理器采用纯 Thumb2 指令的执行方式,这使得这个具有 32 位高性能的 ARM 内核能够实现 8 位 和 16 位的代码存储密度。核心门数只有33K, 在包含了必要的外设之后的门数也只 有 60K,使得封
3、装更为小型,成本更加低廉。 Cortex-M3 采用了 ARMV7 哈佛架构,具有带分支预测的 3 级流水线,中断延 迟最大只有 12 个时钟周期,在末尾连锁的时候只需要 6 个时钟周期。同时具有 1.25DMIPS/MHZ 的性能和 0.19MW/MHZ 的功耗。 意法半导体是 Cortex-M3 内核开发项目的一个主要合作方,现在是第一个推出基于这 个内核产品的主要微控制器厂商。ST 也是世界上为数不多的几家能够提供从二极管到处理 器的全系列电机控制器件的厂商。意法半导体 STM32 系列是业界最丰富的基于 ARM Cortex M 微控制器系列, 共有 250 余款存储容量不同的产品, 拥有丰富的外设接口、 业界最好的开发生态系统、出色的功耗和整体功能。适用于需要实时控制或联网的 任何消费电子产品或电子设备应用。 在性能方面,STM32 系列的处理速度比同级别的基于 ARM7TDMI 的产品快 30%,换 句话说,如果处理性能相同,STM32 产品功耗比同级别产品低 75%。同样地,使用新内核 的 Thumb 2 指令集,设计人员可以把代码容量降低 45%,几乎把应用软件所需内存
4、容量降 低了一半。此外,根据 Dhrystones 和其它性能测试结果,STM32 的性能比最好的 16 位架构 至少高出一倍。 意法半导体是市场上第一家提供基于 Cortex-M3 内核的无传感器的磁场定向电机控制 解决方案的厂商。这套工具证明 STM32 的内核和专用电机控制外设都有充足的处理能力来 优化驱动器的性能,最小化系统总体成本。STM 微控制器在 25 微秒内即可执行一整套无传 感器三相无刷永磁同步电机(PMSM)矢量控制算法,大多数应用任务占用 CPU 资源比率 小于 30%,为 CPU 执行其它应用任务(如需要)预留了充足的处理能力。永磁电机同步电 机控制解决方案的代码大小少于 16 千字节。 意法半导体在推出 STM32 微控制器之初,也同时提供了一套完整细致的固件开发包, 里面包含了在 STM32 开发过程中所涉及到的所有底层操作。尽管库不是那么尽如人意,但 是通过在程序开发中引入这样的固件开发包, 可以使开发人员从复杂冗余的底层寄存器操作 中解放出来,将精力专注应用程序的开发上,这便是 ST推出这样一个开发包的初衷。事实 上也确实带给了我们很大的方便,因而很多人
5、在用。 正是由于上面的特点,我们在此选用了 STM32 系列的 ARM 芯片。 注:因参考资料较多,不一一详述,如涉及作者利益,请联系修改。 湖北师范学院 电工电子实验教学示范中心 第二章第二章 学习建议学习建议 一、较低的学习门槛一、较低的学习门槛 社会对基于 ARM 的嵌入式系统开发人员的高需求及给予的高回报, 催生了很多的培训 机构,这也说明嵌入式系统的门槛较高,其主要原因有以下几点。 1、 ARM 本身复杂的体系结构和编程模型,使得我们必须了解详细的汇编指令,熟悉 ARM 与 Thumb 状态的合理切换,才能理解 Bootloader 并对操作系统进行移植,而理解 Bootloader 本身就比较困难,因而对于初学者来说 Bootloader 的编写与操作系统的移植 成了入门的第一道难以逾越的门槛; 2、 ARM 芯片,开发板及仿真器的高成本,这样就直接影响了嵌入式开发的普及,使得这 方面人才增长缓慢; 3、 高校及社会上高水平嵌入式开发人员的短缺,现实问题使得我们的大学生和公司职工在 入门的道路上困难重重,很多人也因此放弃; 4、 培训机构的高费用,虽然有高水平的老师指导,但
6、是高费用就是一道关口,进去的人也 只是在短短的几天时间里匆匆了解了一下开发过程,消除了一些畏惧心理而已,修行还 是得依靠自己; 5、 好的开发环境需要资金的支持,也直接影响了入门的进度。 基于 Cortex-M3 内核的 ARM 处理器的出现,在优秀的 Keil 开发工具的支持下, 可以自 动生成启动代码,省去了复杂的 Bootloader 的编写。 Thumb-2 指令集的使用,使得开发人员不用再考虑 ARM 状态与 Thumb 状态的切换, 节省了执行时间和指令空间,大大减轻了软件开发的管理工作。 处理器与内存尺寸的减少, 大大降低了成本, 使得芯片及开发板的价格得以在很大程度 上降低。Cortex-M3 内核通过把中断控制器、MPU 及各种调试组件等基础设施的地址固定, 很大程度上方便了程序的移植。 源代码是公开的库函数, 使得我们可以摒弃晦涩难懂的汇编语言, 在不需要了解底层寄 存器的操作细节的情况下,用 C 语言就可以完成我们需要的功能。 所有这些特点使得我们学习 ARM 处理器的门槛得以降低。 同时 建议大家尽量去用固件 库。而不是避开固件库自己写代码。因为在实际的项目中,
7、代码成百上千个,不可能都自己 来写,调用固件库中的函数来完成,才是可行的方案。当然我们在深入的情况下,透彻理解 寄存器的操作是必要的,也是值得的,高效编程也必须在这方面努力。 二、重要的参考资料二、重要的参考资料 1、 Cortex-M3 权威指南宋岩 译 权威资料的精简版,思路清晰,有条理,适合学 Cortex-M3 处理器的所有人。 2、 STM32 技术参考手册 a)STM32 微控制器产品的技术参考手册是讲述如何使用该产品的; b)包含各个功能模块的内部结构、 所有可能的功能描述、 各种工作模式的使用和寄存 器配置等详细信息。 3、 STM32F103RB 数据手册 a)产品的基本配置(内置 FLASH 和 RAM 的容量、外设模块的种类和数量等) ; b)管脚的数量和分配,电气特性,封装信息和订购代码等。 4、 STM32 开发板手册 与开发板配套的参考资料,有很多经验值得借鉴。 5、 stm32 固件库 a)相关定义,文档约定和固件库规则; b)库的架构,安装指南及使用实例; c)每个外围模块的函数及解释。 6、 开发板原理图 必不可少的硬件电路参考。 7、 互联网 取之不
8、尽的知识宝库。 三、必要的学习步骤三、必要的学习步骤 对于初学者来说,困难较多,下面是需要了解的一些信息,以供参考。 1 1 1 1、 了解了解 Cortex-M3Cortex-M3Cortex-M3Cortex-M3 内核内核 看完 Cortex-M3 权威指南的前 36 页,你就会知道什么是 Cortex-M3。 2 2 2 2、 认识认识 STM32F103RBT6STM32F103RBT6STM32F103RBT6STM32F103RBT6 处理器处理器 a)了解 STM32F10xxx 技术参考手册与 STM32F103xB数据手册; b)了解 STM32F10xxx 技术参考手册第二章存储器和总线构架,需要了解外设时,再 具体查看具体的功能模块; c)芯片选型初期看数据手册以评估该芯片是否能满足功能需求; d)基本选定芯片后就需要查看技术参考手册以确定各功能模块的功能是否符合要求; e)确定芯片型号, 进入编程阶段后需要详细阅读技术参考手册以获知各项功能的具体 实现方式和寄存器的配置使用; f)在设计硬件时还需要参考数据手册以获得电压、 电流、 管脚分配、 驱动能力等信息。
9、 3 3 3 3、 了解开发板原理图了解开发板原理图 参考开发板原理图,了解可支配的资源。 4 4 4 4、 了解库的结构与使用了解库的结构与使用 参考 STM32 固件库中文版(UM0427)前三章。 5 5 5 5、 熟悉开发工具的使用熟悉开发工具的使用 a)KEIL MDK 的使用(本文所有实例均在 Keil v4.10 上编译通过) b)程序下载软件 FlyMcu 的使用 c)串口调试助手的使用 6 6 6 6、 了解时钟系统了解时钟系统 时钟的配置涉及到所有的外设资源,所以我们应该对它有更深入的了解。 7 7 7 7、 GPIOGPIOGPIOGPIO 8 8 8 8、 定时器与中断定时器与中断 9 9 9 9、 串口串口 10101010、ADCADCADCADC、SPISPISPISPI、IICIICIICIIC、USBUSBUSBUSB。 。 。 第三章第三章 编程基础编程基础 一、库函数结构与使用一、库函数结构与使用 1、 STM32F10XXXSTM32F10XXXSTM32F10XXXSTM32F10XXXV3.4V3.4V3.4V3.4 标准外设库文件夹描述标准外设库文件夹描述 STM32F10x_StdPeriph_Lib_V3.4. 0 _htmresc 本文件夹包含了所有的 html 页面 资源 LibrariesCMSIS STM32F10x_StdPeriph_Driverinc标准外设库驱动头文件 src 标准外设库驱动源文 件 ProjectExamples标准外设库驱动的完整例程 TemplateMDK-ARMKEIL RVMDK 的项目模板示例 RIDE Raisonance RIDE 的 项目模板示例 EWARM IAR EWARM 的项目 模板示例 UtilitiesSTM3210-EVAL 本 文 件 夹 包 含 了 用 于 STM3210B-EVAL和 STM3210E-EVAL评估板的专用驱 动 标准外设库的第一部分是 CMSIS 和 STM32F10x_StdPeriph_Driver,CMSIS 是独立于 供应商的 Cortex-M 处理器系列硬件抽象层,为芯片厂商和中间件供应商提供了简单的处理 器软件接口,简化了软件复用工作,降低了 Cortex-M 上操作系统的移植难度,并
《STM32入门简易教程》由会员l****分享,可在线阅读,更多相关《STM32入门简易教程》请在金锄头文库上搜索。