新一代嵌入式微处理器STM32F103开发与应用
1 引言
嵌入式微处理器正越来越广泛的应用在生产生活的各个领域, 但是传统的嵌入式微处理器要么是8位的处理器, 性能有限, 要么是32位基于ARM 的微处理器在使用上需要嵌入式操作系统的支持, 比如L inux操作系统, 使得系统不够精炼。这一情况直到ARM 公司推出Cortex- M 内核才得以改善, 它无需操作系统,可以像单片机一样使用Ke il C 语言进行编程, 极大的减少了开发者的工作量。2007年6月, ST 公司及时推出了一款基于Cortex- M 3内核的新型ARM 处理器: STM32系列微处理器。本文以stm32F103处理器为例, 列举了开发需要用到的各种软硬件资源及其作用, 较详细介绍了处理器开发使用方法, 随后具体到以温度传感器检测温度这一实际应用, 给开发者提供一个更加直观的印象, 目的就是让开发者能尽快了解熟悉该处理器的特点, 掌握该系列处理器的开发使用方法。
2 STM32F103系列微处理器简介
STM32F103系列微处理器是首款基于ARMv7- M体系结构的32位标准RISC (精简指令集)处理器, 提供很高的代码效率, 在通常8位和16位系统的存储空间上发挥了ARM 内核的高性能。该系列微处理器工作频率为72MHz,内置高达128K 字节的Flash存储器和20K 字节的SRAM,具有丰富的通用I /O 端口。
作为最新一代的嵌入式ARM 处理器, 它为实现MCU 的需要提供了低成本的平台、缩减的引脚数目、降低的系统功耗, 同时提供了卓越的计算性能和先进的中断响应系统。丰富的片上资源使得STM32F103系列微处理器在多种领域如电机驱动、实时控制、手持设备、PC 游戏外设和空调系统等都显示出了强大的发展潜力。
STM32F103系列微处理器主要资源和特点如下:
( 1)多达51个快速I /O 端口, 所有I/O口均可以映像到16个外部中断, 几乎所有端口都允许5V 信号输入。每个端口都可以由软件配置成输出(推挽或开漏)、输入(带或不带上拉或下拉) 或其它的外设功能口。
( 2) 2个12位模数转换器, 多达16个外部输入通道, 转换速率可达1MH z, 转换范围为0~ 36V; 具有双采样和保持功能; 内部嵌入有温度传感器, 可方便的测量处理器温度值。
( 3)灵活的7路通用DMA 可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输, 无须CPU 任何干预。通过DMA可以使数据快速地移动, 这就节?? CPU 的资源来进行其他操作。DMA 控制器支持环形缓冲区的管理, 避免了控制器传输到达缓冲区结尾时所产生的中断。它支持的外设包括: 定时器、ADC、SPI、I2C和USART 等。
( 4)调试模式: 支持标准的20脚JTAG 仿真调试以及针对Cortex- M3内核的串行单线调试( SWD )功能。通常默认的调试接口是JTAG 接口。
( 5)内部包含多达7个定时器, 具体名称和功能如表1所示。
( 6)含有丰富的通信接口: 三个USART异步串行通信接口、两个I2C 接口、两个SPI接口、一个CAN 接口和一个USB接口, 为实现数据通信提供了保证。
表1 各个定时器名称及其作用
3 开发工具和流程
3.1 开发工具
对STM32F103系列MPU 开发前, 需要准备相应的软硬件。其中硬件主要包括STM32F103开发板(或用户目标板)、J- L ink下载仿真器等; 软件主要包括Ke il V ision4 IDE 开发平台。下面对各自的功能和特点做简要说明。
( 1) STM32F103开发板(或用户目标板)是开发目标对象。
( 2) J- L ink下载仿真器是程序下载的枢纽, 它带有的标准20芯扁平电缆可将程序通过JTAG 接口下载到处理器内部存储空间; 无需外部供电, 用USB 连接线与PC 机连接好后即可工作; 还具有下载速度快、功耗低的特点。
( 3) Ke il V ision4 IDE 是一个基于窗口的软件开发平台, 它集成了强大而且现代化的编辑器、工程管理器和make工具, 几乎集成了嵌入式系统开发所需的全部工具: C /C + + 编译器、宏汇编器、链接/定位器、HEX 文件生成器等。该软件提供了两种工作模式: 编译和调试模式。在编译模式中, 开发者可以创建工程、选择目标器件、新建文件、输入源代码、生成可执行文件; 调试模式中, 开发者可以利用其强大的集成调试器对应用程序进行调试, 如设置断点、单步执行等, 方便了程序错误的查找和修改。
3.2 开发流程
( 1)用J- L ink仿真器将PC 机和STM32F103开发板连接起来。
( 2)使用K eil V ision4 IDE开发平台创建新工程, 编写源程序。
打开Ke il V ision4 软件, 创建新的工程文件, 为该工程选择器件: STM icroe lectron ics 公司的STM32F103R8芯片, 单击确定后会弹出对话框, 提示是否选择将启动代码添加到目标工程。启动代码用来完成系统