第5章 STM32系列微控制器开发基础_第1页
第5章 STM32系列微控制器开发基础_第2页
第5章 STM32系列微控制器开发基础_第3页
第5章 STM32系列微控制器开发基础_第4页
第5章 STM32系列微控制器开发基础_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第5 5章章 STM32STM32系列微控制器开发基础系列微控制器开发基础教师:姓名嵌入式系统原理与接口技术5.1 STM325.1 STM32系列微控制器概述系列微控制器概述n STM32系列微控制器概述系列微控制器概述lSTM32系列微控制器使用来自于ARM公司具有突破性的Cortex-M3内核,该内核是专门设计于满足集高性能、低功耗、实时应用、高性价比于一体的嵌入式领域的要求。lSTM32系列给MCU用户带来了前所未有的自由空间,提供了全新的32位产品选项,结合了高性能、实时、低功耗、低电压等特性,同时保持了高集成度和易于开发的优势。嵌入式系统原理与接口技术25.1 STM325.1

2、STM32系列微控制器概述系列微控制器概述n STM32系列微控制器的优势系列微控制器的优势l由于STM32系列微控制器的定位是针对传统的嵌入式入门市场,因此相对于传统的8051、AVR等单片机,其巨大的优势显露无遗。主要体现在以下几个方面: 1.25 DMIPS/MHz和0.19 mW/MHz;支持Thumb-2指令集;单周期乘法指令和硬件除法指令;内置了快速的中断控制器,提供了优越的实时特性,中断间的延迟时间降到只需6个CPU周期,从低功耗模式唤醒的时间也只需6个CPU周期;与ARM7 TDMI相比运行速度最多可快35%且代码最多可节省45%;提供更为丰富的外设和网络接口,使用更为灵活方便

3、。嵌入式系统原理与接口技术35.1 STM325.1 STM32系列微控制器概述系列微控制器概述n STM32系列微控制器的应用系列微控制器的应用lSTM32系列微控制器主要应用在以下场合: 工业领域:可编程逻辑控制器(PLC)、变频器、打印机、扫描仪和工控网络。 建筑和安防领域:警报系统、可视电话和HVAC。 低功耗领域:血糖测量仪、电表和电池供电应用。 家电领域:电机控制和应用控制。 消费类产品领域:PC外设、游戏机、数码相机和GPS平台。嵌入式系统原理与接口技术45.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 主要特点主要特点lSTM32F103xx系列微

4、控制器基于高性能32位RISC的ARM Cortex-M3核,工作频率为72MHz。片上集成了高速存储器和通过APB总线连接的丰富和增强的外设和I/O。所有的设备都提供标准的通信接口(最多可达两个I2C接口,三个SPI接口和五个USART接口) 。片上还带有两个12位的ADC、一个12位的双通道DAC、11个16位计时器。根据应用范围的不同,STM32F103xx系列具有众多的配置型号,非常适合不同应用中的选型。嵌入式系统原理与接口技术55.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 总体结构总体结构lSTM32F103xx的主系统由以下部分构成: 四个驱动单元

5、:Cortex-M3内核DCode总线(D-bus),和系统总线(S-bus);通用DMA1和通用DMA2。 四个被动单元:内部SRAM;内部闪存存储器;FSMC;AHB到APB的桥(AHB2APBx),它连接所有的APB设备。嵌入式系统原理与接口技术65.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 系统结构系统结构嵌入式系统原理与接口技术75.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 各单元功能各单元功能嵌入式系统原理与接口技术8单元单元/部件部件功能描述功能描述ICode总线总线将Cortex-M3内核的指令总线与闪存指令接

6、口相连接。指令预取在此总线上完成。DCode总线总线将Cortex-M3内核的DCode总线与闪存存储器的数据接口相连接(常量加载和调试访问)。系统总线系统总线连接Cortex-M3内核的系统总线(外设总线)到总线矩阵,总线矩阵协调着内核和DMA间的访问。DMA总线总线将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode和DMA到 SRAM、闪存和外设的访问。总线矩阵总线矩阵协调内核系统总线和DMA主控总线之间的访问仲裁,仲裁利用轮换算法。AHB外设通过总线矩阵与系统总线相连,允许DMA访问。AHB/APB桥桥(APB)两个AHB/APB桥在AHB和2个APB总线间提供同步

7、连接。APB1操作速度限于36MHz,APB2操作于全速(最高72MHz)。5.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 功能概述功能概述l集成嵌入式Flash和SRAM存储器的ARM Cortex-M3内核 ARM Cortex-M3处理器是用于嵌入式系统的最新一代ARM处理器。用于提供一个满足MCU实现需要的低开销平台,具有更少的引脚数和更低的功耗,并且提供了更好的计算表现和更快的中断系统应答。l嵌入式Flash存储器和RAM存储器 内置了多达512K的嵌入式Flash,可用于存储程序和数据。多达64K的嵌入式SRAM可以以CPU时钟速度进行读写(不带等待

8、状态)。嵌入式系统原理与接口技术95.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 功能概述功能概述l可变静态存储控制器(FSMC) FSMC嵌入在STM32F103xC,STM32F103xD和STM32F103xE中,带有四个片选,支持下面四种模式:Flash,RAM,PSRAM,NOR和NAND。l嵌套矢量中断控制器(NVIC) STM32F103xx系列微控制器嵌入了一个嵌套矢量中断控制器,可以处理43个可屏蔽中断通道(不包括Cortex-M3的16根中断线),提供16个中断优先级。嵌入式系统原理与接口技术105.2 STM32F1035.2 STM32F

9、103系列微控制器系列微控制器n 功能概述功能概述l外部中断/事件控制器(EXTI) 外部中断/事件控制器由用于19条产生中断/事件请求的边沿探测器线组成。每条线可以被单独配置用于选择触发事件(上升沿,下降沿或者两者都可以),也可以被单独屏蔽。l时钟和启动 在启动的时候还是要进行系统时钟选择,但复位的时候内部8MHz的晶振被选作CPU时钟。可以选择一个外部的4-16MHz的时钟,并且会被监视判定是否成功。嵌入式系统原理与接口技术115.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 功能概述功能概述lBoot模式 在启动的时候,boot引脚被用来在三种boot选项中

10、的选择一种:从用户Flash导入;从系统存储器导入;从SRAM导入。boot导入程序位于系统存储器,用于通过USART1重新对Flash存储器进行编程。l电源供电方案 VDD,电压范围为2.0到3.6V,用于I/O和内部调压器。 VSSA,VDDA,电压范围为2.0到3.6V,用于ADC、复位模块、RC和PLL。 VBAT,电压范围为1.8到3.6V嵌入式系统原理与接口技术125.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 功能概述功能概述l电源管理 设备有一个完整的上电复位(POR)和掉电复位(PDR)电路。这条电路一直有效,用于确保从2V启动或者掉到2V的时

11、候进行一些必要的操作。当VDD低于一个特定下限VPOR/PDR的时候,不需要外部复位电路,设备也可以保持在复位模式。l电源供电方案 调压器有三种运行模式:主(MR),用在传统意义上的调节模式(运行模式);低功耗(LPR),用在停止模式;掉电,用在待机模式:调压器输出为高阻,核心电路掉电,包括零消耗。嵌入式系统原理与接口技术135.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 功能概述功能概述l低功耗模式,包含三种低功耗模式: 休眠模式。在休眠模式中,只有CPU停止工作,所有的外设继续运行,在中断/事件发生时唤醒CPU。 停止模式。停止模式允许以最小的功耗来保持SR

12、AM和寄存器的内容。设备可以通过外部中断线从停止模式唤醒。外部中断源可以使16个外部中断线之一、PVD输出或者TRC警告。 待机模式。待机模式追求最少的功耗。内部调压器被关闭,这样1.8V区域被断电。PLL、HSI和HSE RC振荡器也被关闭。嵌入式系统原理与接口技术145.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外设概述片上外设概述lDMA 12通道的通用DMA可用于存储器到存储器、外设到存储器和存储器到外设的传输。DMA控制器支持循环缓冲器管理,从而避免了在到达缓冲区末端时产生中断。lRTC(实时时钟)和备份寄存器 RTC和备份寄存器通过一个开关来控

13、制供电,当VDD有效的时候通过VDD供电,否则通过VBAT供电。备份寄存器(10个16位寄存器)可以用来在VDD无效的保存数据。嵌入式系统原理与接口技术155.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外设概述片上外设概述l独立看门狗 独立看门狗基于12位的倒计数器和8位的预比较器。由一个独立的40kHz的内部RC提供时钟。由于和主时钟独立工作,所以它可以工作在停止和待机模式。可以用作在系统出问题时来复位设备,也可以作为一个空转的定时器来用于应用程序的定时器管理。l窗口看门狗 窗口看门狗基于一个在空转时可设置的7位倒计数器。可以用作在系统出问题的时候来复位

14、设备。由主时钟提供时钟源。能够实现提早警告中断并且计数器在调试模式的时候可以冻结。嵌入式系统原理与接口技术165.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外设概述片上外设概述lSysTick定时器 该定时器是OS专用,但也可以用作标准的倒计数器。它的特征是:一个24位的倒计数器;自动重载能力;当计数器为0时产生的系统中断是可屏蔽的;可编程的时钟源。l通用定时器(TIMx) STM32F103xx设备最多自带4个同步标准定时器。这些定时器基于一个16位自动重载顺序/倒序计数器和一个16位的预比较器。每个定时器特有分别用于输入捕获、输出比较、PWM或者单脉冲

15、模式输出的4个独立通道。嵌入式系统原理与接口技术175.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外设概述片上外设概述l基本定时器TIM6和TIM7 这些定时器用于产生DAC触发,也可以用作通用的16位定时器。l高级控制定时器(TIM1和TIM8) 高级控制定时器(TIM1)可以被看作是一个在6通道上复用的三相PWM,也可以被看作是通用定时器,4个独立的通道可以用作:输入捕获;输出捕获;PWM产生;单脉冲模式输出;可设置空转时间的PWM输出。TIM1和具有相同结构的TIMx有相同的特性,所以TIM1通过同步连接特性或者事件链,可以和TIMx一起工作。嵌入式

16、系统原理与接口技术185.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外设概述片上外设概述lI2C总线 最多可有两个工作在多主机模式和从模式下的I2C总线接口,支持标准和快速模式。都支持双从机寻址(只能是7位)和7/10位主机模式下寻址。内置硬件CRC产生和验证模块。都支持DMA,支持SMBus2.0/PM Bus。l通用同步/异步收发器(USART) USART接口最多可以2.25Mbit/s的速度通信。对CTS和RTS信号使用硬件管理,支持IrDA SIR ENDEC,兼容ISO7816并且具有LIN主/从性能。USART接口支持DMA。嵌入式系统原理与

17、接口技术195.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外设概述片上外设概述l串行外设接口(SPI) 设备最多可有2个SPI接口,最多可以18Mbit/s的速度在全双工和单工的主机和从机模式下通信。3位预比较器提供了8种主机模式频率,桢长可以配置为8位或者16位。硬件CRC产生/验证模块支持基本的SD Card/MMC模式。SPI接口都支持DMA。lI2S STM32F103xC、STM32F103xD和STM32F103xE有两个和SPI2、SPI3复用的I2S接口,可用于主模式或者从模式。可以配置成16位或者32位精度的输入或者输出。音频采样频率可以

18、在8KHz到48KHz。嵌入式系统原理与接口技术205.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外设概述片上外设概述lSDIO STM32F103xC、STM32F103xD和STM32F103xE有一个SD/SDIO/MMC主机接口,支持MMC 4.2。有三种数据总线模式:1位(默认),4位和8位。在8位模式下最高可达48MHz。此外还兼容SD 2.0。1位和4位总线模式下支持SDIO 2.0。l控制器局域网(CAN) CAN兼容2.0A和2.0B标准,比特率高达1Mbit/s。可以发送和接收11位标示符的标准桢,也可以发送和接收29位标示符的扩展桢。

19、有三个发送邮箱,两个3阶接收FIFO队列和14个可升级过滤器阵列。嵌入式系统原理与接口技术215.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外设概述片上外设概述l通用串行总线(USB) STM32F103xx嵌入了一个支持USB全速12Mbit/s的USB外设。USB接口实现了全速(12Mbit/s)功能接口。可通过软件配置端点,也可以通过软件控制挂起/恢复。时钟来自内部PLL产生的48MHz专用时钟源。lGPIO(通用输入/输出) 每一个GPIO引脚都可以由软件配置出输出,输入或者外设备用功能。大部分的GPIO引脚和数字或者模拟备用功能共享。所有的GPI

20、O都支持高电流。嵌入式系统原理与接口技术225.2 STM32F1035.2 STM32F103系列微控制器系列微控制器n 片上外设概述片上外设概述lADC(模数转换器) STM32F103xx设备自带两个12位的模数转换器。每个ADC有多达16个外部通道,能够以单次或扫描模式进行转换。在扫描模式下,自动转换在一组选定的模拟输入上进行。lDAC(数模转换器) DAC带有两个可缓冲通道,可以将两路数字信号转化为两路模拟信号输出。DAC通道通过定时器更新输出来触发,DAC每个通道可以连接到不同的DMA通道。每个通道可以独立被DMA控制器处理。嵌入式系统原理与接口技术235.2 STM32F1035

21、.2 STM32F103系列微控制器系列微控制器n 片上外设概述片上外设概述l温度传感器 温度传感器用于根据温度的变化来产生一个线性的电压。转换的范围在2V到3.6V。温度传感器内部连接到ADC_IN16输入通道,从而把传感器输出电压转换为数字值。l串行线JTAG调试端口(SWJ-DP) 芯片嵌入了ARM SWJ-DP接口,并且组合了JTAG和串行线调试端口。JTAG TMS和TCK引脚分别和SWDIO和SWCLK复用。如果要在JTAG-DP和SW-DP之间切换,只需要在TMS输入一个特定的序列。嵌入式系统原理与接口技术245.3 5.3 基于标准外设库的软件开发基于标准外设库的软件开发n S

22、TM32标准外设库概述标准外设库概述lSTM32标准外设库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。嵌入式系统原理与接口技术255.3 5.3 基于标准外设库的软件开发基于标准外设库的软件开发n 使用标准外设库开发的优势使用标准外设库开发的优势l简单地说,使用标准外设库进行开发最大的优势就在于可以使开发者不用深入了解底层硬件细节就可以

23、灵活规范的使用每一个外设。标准外设库覆盖了从GPIO到定时器,再到CAN、I2C、SPI、UART和ADC等的所有标准外设。对应的C源代码只是用了最基本的C编程的知识,所有代码经过严格测试,易于理解和使用,并且配有完整的文档,非常方便进行二次开发和应用。嵌入式系统原理与接口技术26n STM32F10 xxx标准外设库结构与文件描述标准外设库结构与文件描述嵌入式系统原理与接口技术27STM32F10 x_StdPeriph_Lib_V3.4.0_htmresc本文件夹包含了所有的本文件夹包含了所有的html页面资源页面资源LibrariesCMSIS见表 5 6STM32F10 x_StdPe

24、riph_Driverinc标准外设库驱动头文件src标准外设库驱动源文件ProjectExamples标准外设库驱动的完整例程TemplateMDK-ARMKEIL RVMDK的项目模板示例RIDERaisonance RIDE的项目模板示例EWARMIAR EWARM的项目模板示例UtilitiesSTM3210-EVAL本文件夹包含了用于STM3210B-EVAL和STM3210E-EVAL评估板的专用驱动5.3 5.3 基于标准外设库的软件开发基于标准外设库的软件开发n STM32F10 xxx标准外设库结构与文件描述标准外设库结构与文件描述l基于CMSIS标准的软件架构 基于CMSI

25、S标准的软件架构主要分为以下4层:用户应用层、操作系统及中间件接口层、CMSIS层、硬件寄存器层。 CMSIS层起着承上启下的作用:一方面该层对硬件寄存器层进行统一实现,屏蔽了不同厂商对Cortex-M系列微处理器核内外设寄存器的不同定义; 另一方面又向上层的操作系统及中间件接口层和应用层提供接口,简化了应用程序开发难度,使开发人员能够在完全透明的情况下进行应用程序开发。也正是如此,CMSIS层的实现相对复杂。嵌入式系统原理与接口技术285.3 5.3 基于标准外设库的软件开发基于标准外设库的软件开发n STM32F10 xxx标准外设库结构与文件描述标准外设库结构与文件描述l基于CMSIS标

26、准的软件架构的优势 为芯片厂商和中间件供应商提供了简单的处理器软件接口,简化了软件复用工作,降低了Cortex-M 上操作系统的移植难度 减少了新入门的微控制器开发者的学习曲线和新产品的上市时间 独立于供应商的Cortex-M 处理器系列硬件抽象层,统一了接口嵌入式系统原理与接口技术295.3 5.3 基于标准外设库的软件开发基于标准外设库的软件开发n STM32F10 xxx标准外设库结构与文件描述标准外设库结构与文件描述嵌入式系统原理与接口技术30n STM32F10 xxx标准外设库文件功能说明标准外设库文件功能说明嵌入式系统原理与接口技术31文件名文件名功能描述功能描述具体功能说明具体

27、功能说明core_cm3.hcore_cm3.cCortex-M3内核及其设备文件访问Cortex-M3内核及其设备:NVIC,SysTick等访问Cortex-M3的CPU寄存器和内核外设的函数stm32f10 x.h微控制器专用头文件这个文件包含了STM32F10 x全系列所有外设寄存器的定义(寄存器的基地址和布局)、位定义、中断向量表、存储空间的地址映射等system_stm32f10 x.hsystem_stm32f10 x.c微控制器专用系统文件函数SystemInit,用来初始化微控制器函数Sysem_ExtMemCtl,用来配置外部存储器控制器。它位于文件startup_stm3

28、2f10 x_xx.s /.c,在跳转到main前调用SystemFrequncy,该值代表系统时钟频率startup_stm32f10 x_Xd.s编译器启动代码微控制器专用的中断处理程序列表(与头文件一致)弱定义(Weak)的中断处理程序默认函数(可以被用户代码覆盖) 该文件是与编译器相关的stm32f10 x_conf.h固件库配置文件通过更改包含的外设头文件来选择固件库所使用的外设,在新建程序和进行功能变更之前应当首先修改对应的配置。stm32f10 x_it.hstm32f10 x_it.c外设中断函数文件用户可以相应的加入自己的中断程序的代码,对于指向同一个中断向量的多个不同中断请

29、求,用户可以通过判断外设的中断标志位来确定准确的中断源,执行相应的中断服务函数。stm32f10 x_ppp.hstm32f10 x_ppp.c外设驱动函数文件包括了相关外设的初始化配置和部分功能应用函数,这部分是进行编程功能实现的重要组成部分。Application.c用户文件用户程序文件,通过标准外设库提供的接口进行相应的外设配置和功能设计。n STM32F10 xxx标准外设库结构与文件描述标准外设库结构与文件描述l基于CMSIS标准的软件架构嵌入式系统原理与接口技术32实时内核中间件外设寄存器和中断向量定义层core_cm3.hstm32f10 x.h内核外设函数core_cm3.h中

30、间件函数器件级外设函数其他外设调试/跟踪接口CMSISNVIC嵌套向量中断控制器SysTick实时内核定时器CortexCPU用户应用程序实时操作系统MCUn STM32F10 xxx标准外设库结构与文件描述标准外设库结构与文件描述l基于CMSIS文件夹结构嵌入式系统原理与接口技术33CMSISCoreDocumentationCMSIS文档文档CM3StartuparmMDK ARM编译器启动文件startup_stm32f10 x_hd.s: 大容量产品启动文件startup_stm32f10 x_md.s: 中容量产品启动文件startup_stm32f10 x_ld.s: 小容量产品启

31、动文件gcc_ride7GCC编译器启动文件iarIAR编译器启动文件TrueSTUDIOTrueSTUDIO编译器启动文件本文件夹包含STMF10 xxx CMSIS文件:微控制器外设访问层和内核设备访问层:core_cm3.h:CMSIS的Cortex-M3内核设备访问层头文件core_cm3.c:CMSIS的Cortex-M3内核设备访问层源文件stm32f10 x.h:CMSIS的Cortex-M3 STM32f10 xxx微控制器外设访问层头文件system_stm32f10 x.h:CMSIS的Cortex-M3 STM32f10 xxx微控制器外设访问层头文件system_stm

32、32f10 x.c:CMSIS的Cortex-M3 STM32f10 xxx微控制器外设访问层源文件5.3 5.3 基于标准外设库的软件开发基于标准外设库的软件开发n STM32F10 xxx标准外设库的使用标准外设库的使用l标准外设库中包含了众多变量定义和功能函数,有必要了解它们的命名规范和使用规律。 缩写定义。库中的主要外设都使用了缩写,可以查阅相关对应资料进行了解。 命名规则。标准外设库命名时用PPP表示任一外设缩写,如:ADC。源程序文件和头文件命名以“stm32f10 x_”作为开头,如:stm32f10 x_conf.h。 变量定义。在早期的版本中有24个变量定义,在Keil的安装

33、根目录下,可以找到对应的定义,路径为:KeilARMINCSTSTM32F10 xstm32f10 x_type.h。嵌入式系统原理与接口技术345.3 5.3 基于标准外设库的软件开发基于标准外设库的软件开发n STM32F10 xxx标准外设库的使用标准外设库的使用l新建一个项目并设置工具链对应的启动文件,可以使用标准外设库中提供的模板,也可以根据自己的需求新建l按照使用产品的具体型号选择具体的启动文件,加入工程l调用对应的函数进行相应的功能设计嵌入式系统原理与接口技术35n STM32F10 xxx标准外设库的命名规则标准外设库的命名规则lPPP_Init:根据PPP_InitTypeD

34、ef中指定的参数,初始化外设PPPlPPP_DeInit:复位外设PPP的所有寄存器至缺省值lPPP_Init:通过设置PPP_InitTypeDef 结构中的各种参数来定义外设的功能lPPP_Cmd:使能或者失能外设PPPlPPP_ITConfig:使能或者失能来自外设PPP某中断源lPPP_GetFlagStatus:检查外设PPP某标志位被设置与否嵌入式系统原理与接口技术36n STM32F10 xxx标准外设库的命名规则标准外设库的命名规则lPPP_GetITStatus:判断来自外设PPP的中断发生与否lPPP_ClearFlag:清除外设PPP标志lPPP_ClearITPendi

35、ngBit:清除外设PPP中断待处理标志位n 便于程序编写和阅读便于程序编写和阅读n 程序严谨,不易出错程序严谨,不易出错嵌入式系统原理与接口技术375.4 5.4 使用使用Keil MDKKeil MDK以及标准外设库创建以及标准外设库创建STM32STM32工程工程n 开发工具与开发环境开发工具与开发环境l软件版本 本节所使用Keil MDK为目前的最新版V4.21,使用的标准外设库为目前最新的V3.5版本。使用的开发调试工具为JLINK-V8,使用的驱动版本为V4.08l。l建立工程目录 首先建立一个用于存放工程的文件夹,在文件夹下分别建立LIB、USER、MDK三个文件夹,分别用于存放

36、标准外设库文件、用户程序文件、工程目录。在MDK文件夹下建立List、Obj两个文件夹,分别用于存放在编译过程中产生的临时文件和输出文件。然后拷贝标准外设库和相应的文件到工程目录中。嵌入式系统原理与接口技术38n MDK的操作与设置的操作与设置l新建工程 首先启动Keil uVision4,点击菜单栏Project-New uVision Project,选择工程的保存位置。嵌入式系统原理与接口技术395.4 5.4 使用使用Keil MDKKeil MDK以及标准外设库创建以及标准外设库创建STM32STM32工程工程n MDK的操作与设置的操作与设置l新建工程 在弹出的界面中选择所使用的芯

37、片信号,在本节中选择STM32F103ZE。嵌入式系统原理与接口技术405.4 5.4 使用使用Keil MDKKeil MDK以及标准外设库创建以及标准外设库创建STM32STM32工程工程n MDK的操作与设置的操作与设置l新建工程 芯片选择完成后软件会弹出一条提示,提示是否要拷贝STM32大容量启动代码并添加到工程,由于我们使用新版本标准外设库中提供的启动代码,因此此处选择否。至此,建立了一个新的工程。嵌入式系统原理与接口技术415.4 5.4 使用使用Keil MDKKeil MDK以及标准外设库创建以及标准外设库创建STM32STM32工程工程n MDK的操作与设置的操作与设置l添加

38、程序文件 在左侧Project一栏中对Target 1双击之 后可以重命名,这里命名为STM32, 然后右击,单击Manage Components, 如右图所示。嵌入式系统原理与接口技术425.4 5.4 使用使用Keil MDKKeil MDK以及标准外设库创建以及标准外设库创建STM32STM32工程工程n MDK的操作与设置的操作与设置l添加程序文件 在下图对应的Group上右键Add Group和Add Files to Group,即可添加我们所需的文件。嵌入式系统原理与接口技术43n MDK的操作与设置的操作与设置嵌入式系统原理与接口技术445.4 5.4 使用使用Keil MD

39、KKeil MDK以及标准外设库创建以及标准外设库创建STM32STM32工程工程n MDK的操作与设置的操作与设置l程序调试与下载设置 接下来进行的是程序调试和下载的相关设置,有关调试的设置在Debug选项卡中,此选项卡主要完成程序调试的相关设置,选项卡分为两个部分,左侧是使用模拟器进行仿真与调试的方式,点选后软件会进入模拟器调试。右侧是使用仿真器连接硬件开发平台进行调试,首先从右侧选择所使用的仿真器,这里使用的是J-Link仿真器,故在下拉框中选择Cortex-M/R J-LINK/J-Trace,在两侧的下方可以通过勾选对应的复选框来选择是否需要在调试开始时下载程序和运行到主程序,其他部

40、分的设置保持默认即可。嵌入式系统原理与接口技术455.4 5.4 使用使用Keil MDKKeil MDK以及标准外设库创建以及标准外设库创建STM32STM32工程工程n MDK的操作与设置的操作与设置l程序调试与下载设置嵌入式系统原理与接口技术465.4 5.4 使用使用Keil MDKKeil MDK以及标准外设库创建以及标准外设库创建STM32STM32工程工程n MDK的操作与设置的操作与设置l程序调试与下载设置嵌入式系统原理与接口技术475.4 5.4 使用使用Keil MDKKeil MDK以及标准外设库创建以及标准外设库创建STM32STM32工程工程n 使用使用Keil MD

41、K运行第一个运行第一个STM32F10X程序程序l程序的编写 为了方便使用者的入门和理解,这个小程序的功能非常简单,作为本书功能实践的第一个程序,其功能是最为经典的“Hello World!”,只不过不是简单的屏幕输出,而是利用硬件的串口进行输出,同时作为单片机类的第一个程序自然少不了LED闪烁的功能,这就是这个小程序的两个主要的功能。利用串口1输出“Hello World!”字符;控制两个LED闪烁。嵌入式系统原理与接口技术485.4 5.4 使用使用Keil MDKKeil MDK以及标准外设库创建以及标准外设库创建STM32STM32工程工程n 使用使用Keil MDK运行第一个运行第一

42、个STM32F10X程序程序l程序的编写 在进行程序开发时可先查看如下图的帮助文件以及库中自带的工程实例,同时结合STM32F10 x系列的芯片手册来完成程序的开发。嵌入式系统原理与接口技术495.4 5.4 使用使用Keil MDKKeil MDK以及标准外设库创建以及标准外设库创建STM32STM32工程工程n 使用使用Keil MDK运行第一个运行第一个STM32F10X程序程序l程序的编译 在Keil MDK的工具栏上自左至右依次有 三个图标,分别为编译指定文件、生成工程、重新生成所有工程。首先在main.c下点击编译图标,如果编译没有错误,单击 图标生成工程,生成没有错误则整个编译过程结束。如果存在错误则可以直接点击对应的错误跳转到对应文件对应的行,根据错误提示进行再次修改。嵌入式系统原理与接口技术505.4 5.4 使用使用Keil MDKKeil MDK以及标准外设库创建以及标准外设库创建STM32STM32工程工程n 使用使用Keil MDK运行第一个运行第一个STM32F10X程序程序l程序的调试 在实际开发时,可以首先利用软件进行仿真,利用软件进行仿真查看具体的寄存器配置,外设的工作情况等,同时通过断点的配合可以查找

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论