stm原理及其应用_第1页
stm原理及其应用_第2页
stm原理及其应用_第3页
stm原理及其应用_第4页
stm原理及其应用_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

1、LOGO,LOGO,基于,STM32,的嵌入式,系统原理与设计,STM32,基本原理,要点,STM32,性能和结构,CortexM3,处理器,输入输出端口,GPIO,引脚、电源和时钟树,模数和数模转换,中断,定时器,DMA,灵活的,FSMC,同步和异步串行接口,第一章,STM32,基本原理,学习,STM32,需要从原理入手,为硬件、软件、操作系统,工程实践学习打下一个良好的基础,本章的第一部分是,STM32,的性能和结构,然后是对,Cortex M3,处理器的分析,之后是地址映射、引脚功能,描述、电源连接、复位和时钟控制,RCC,输入输出端口,GPIO,ADC,和,DAC,中断,DMA,定时器

2、、同步串行通信,SPI,和,I2C,同步异步串行通信,USART,最后是灵活的存,储器控制,FSMC,通过本章的学习,既可以掌握,STM32,的全貌,也可以学,习到重要的关于,Cortex M3,处理器内核和,STM32,器件的,细节信息,1.1 STM32,性能和结构,1.1.1,总体性能,以高密度的,STM32F103VET6,为例,能适合一般项目的,需要,价格在,30,元以下,避免由于,FLASH,和,RAM,太小,造成的瓶颈,VET6,的含义为,V,的含义为,100pins,即,100,个管脚,E,表示,512KB,的,FLASH,T,表示,LQFP,封装,6,表示,40,到,85,度

3、的温度范围,1.1 STM32,性能和结构,1.1.2,系统结构分析,1.1 STM32,性能和结构,1.1.2,系统结构分析,1)Cortex-M3 CPU,所在之处,是司令部是大脑,2,总线矩阵,3)FLASH,通过,FLASH,接口连接,CPU,4,静态存储器,SRAM,通过总线矩阵连接,CPU,5,复位和时钟控制,RCC,6,低速,APB1,外设,7,低速,APB2,外设,8,可变静态存储控制器,FSMC,9)DMA,通道,1.1 STM32,性能和结构,1.1.3,芯片封装和管脚概述,1.2 Cortex M3,处理器,1.2.1 Cortex-M3,的定位和应用,从图,1.2.1,

4、可见,嵌入式处理器核,CortexM3,容,量,Capability,和执行功能,Performance,Functionality,都居中,但其性价比是当今最好的,品种之一,也是现在最流行的品种之一,1.2 Cortex M3,处理器,1.2.2 Cortex-M3,处理器结构,1.2 Cortex M3,处理器,1.2.2 Cortex-M3,处理器结构,1.2 Cortex M3,处理器,1.2.3 Cortex-M3,寄存器,1.2 Cortex M3,处理器,1.2.3 Cortex-M3,寄存器,1.2 Cortex M3,处理器,1.2.3 Cortex-M3,寄存器,特殊功能寄

5、存器,1.2 Cortex M3,处理器,1.2.3 Cortex-M3,寄存器,1.2 Cortex M3,处理器,1.2.3 Cortex-M3,寄存器,1.2 Cortex M3,处理器,1.2.4,堆栈,1.2 Cortex M3,处理器,1.2.4,堆栈,1.3 STM32,存储地址映射,存储地址映射,P12,图,1-7,1.3 STM32,存储地址映射,1.3 STM32,存储地址映射,1.3 STM32,存储地址映射,代码分析,P13,代码,1-2,到,1-6,说明如何访问串口寄存器来实现发送数据到串口,1.3 STM32,存储地址映射,USART_SendData(USART1

6、,0Xa2,define USART1 (USART_TypeDef *) USART1_BASE,define USART1_BASE (APB2PERIPH_BASE + 0 x3800,define APB2PERIPH_BASE (PERIPH_BASE + 0 x10000,define PERIPH_BASE (uint32_t)0 x40000000,0 x40013800,1.4,引脚功能描述,引脚功能来源于数据手册,注意复用功能,1.5,电源连接,1.6,复位和时钟控制,RCC,复位分三种形式,电源复位、系统复位和备份区域复位,1.6.1,复位,1.6,复位和时钟控制,RCC

7、,通常,STM32,主频在,72M,而外时钟选择,8M,因此必须通过倍频获得,1.6.2,时钟源,1.6,复位和时钟控制,RCC,时钟树图解了各个设备时钟的来源,参考,P19,页图,1-11 STM32,时钟树,问题,STM32,定时器,1,是,APB2,外设,请,从晶振开始,分析器定时器,1,时钟的来源,那么定时器,2,呢,1.6,复位和时钟控制,RCC,1.7,输入输出端口,GPIO,1.7.1,常规输入输出,GPIO,GPIO,是可编程输入,输出端口,1.7,输入输出端口,GPIO,1.7.1,常规输入输出,GPIO,GPIO,端口的模式模式是输入浮空,为什,么这样设计,1.7,输入输出

8、端口,GPIO,1.7.1,常规输入输出,GPIO,1.7,输入输出端口,GPIO,1.7.1,常规输入输出,GPIO,1.7,输入输出端口,GPIO,1.7.2 GPIO,复用,可以将具有复用功能的引脚的功能进,行重新配置,例如配置一些管脚为,ADC,的管,脚,这些管脚就不能再作为,GPIO,使用。这,个过程叫做复用重映射,8,个,ADC,通过的选择过程,P21-22,问题:根据,P21,表,1-7,如果需要选择一,个引脚做,ADC,输入引脚,可以选择哪个引脚,呢?为什么,1.8,模数转换器和数模转换器,1.8.1,模,数转换器,1,模数转换器框图分析,P23,图,1-13,2,常规通道和注

9、入通道,3,参考源,1.8,模数转换器和数模转换器,1.8.2,数,模转换器,1,数模转换器框图分析,P24,图,1-15,2,参考源,3,信号发生器功能,1.9,中断,中断处理的优越性,现实生活中的中断的例子,中断嵌套,现实生活中的中断嵌套,STM32,的先占优先级和从优先级,嵌入式操作系统与中断的关系,1.9,中断,1.9.1 STM32,的中断通道和中断向量处理,1.STM32,中断通道,表,1-8,中的中断通道分析,2,启动代码设置中断向量表,代码,1-7,分析,3,复位中断的处理,代码,1-8,分析,1.9,中断,1.9,中断,1.9.2 STM32,外部中断,STM32,外部中断的

10、来源,分析,P29,图,1-16,说明全部中断输入线的来源,是否可以用,PA0,和,PB0,同时作为外部中断,是否可以用,PA0,和,PB1,同时作为外部中断,为什么,1.9,中断,1.9.3 STM32,中断优先级分组,优先级越高,数值越低,抢占优先级相同的任务,响应优先级高的先响应,但不能互相抢占;抢,占优先级不同的,可以抢占低优先级的,CPU,分析,P30,串口串口和按键中断的例子,假设将优先级互换会产生什么样的,结果呢,1.10,直接存储器存取,DMA,直接存储器存取,DMA,用来提供在外设和存,储器之间或者存储器和存储器之间的高速,的无需,CPU,干预的数据传输,1.9,中断,1.9

11、,中断,1.10 DMA,1.10.1 DMA,解析,1,图,1-17DMA,框图解析,2,从内存到外设或从外设到内存的,DMA,传输,3,传输申请和仲裁,1.9 DMA,1.9,中断,1.10 DMA,1.10.2 DMA,通道和请求,1.DMA,通道分配,P32,表,1-10,和表,1-11,2,仲裁机制的作用和功能,3,通道号和优先级,P33,图,1-18,1.11,定时器,STM32,中一共有,11,个定时器,其中,2,个高,级控制定时器,4,个普通定时器和,2,个基本定,时器,以及,2,个看门狗定时器和,1,个系统嘀嗒,定时器,1.11,定时器,1.11.1,系统滴答定时器,SysT

12、ick,1.SysTick,定时器的位置和功能,SysTick,是一个,24,位数据宽度的倒计数定,时器,其计数范围只能到,1677215,224,当计数到,0,时会从,RELOAD,寄存器,中自动重,装定时初值。只要不把,SysTick,的控制及状态,寄存器中的使能位清除,计数器就不会停,1.11,定时器,1.11.1,系统滴答定时器,SysTick,2. SysTic,定时器的寄存器,1.11,定时器,1.11.1,系统滴答定时器,SysTick,1.11,定时器,1.11.1,系统滴答定时器,SysTick,3. SysTic,定时器编程(寄存器级别,使用,72M,作为系统时钟,那么每次

13、计数,器减,1,所用的时间是,1/72M,计数器的初值,如果是,72000,那么每次计数器减到,0,时,间经过,1/72M)*72000= 0.001,即,1ms,简单理解:用,72M,的时钟频率,即,1s,计,数,72M=72000000,次,那,1ms,计数,72000,次,所以计数值为,72000,1.11,定时器,1.11.1,系统滴答定时器,SysTick,3. SysTic,定时器编程(寄存器级别,define FCLK 72000000,时钟频率,72M,define OSFREQ 1000,中断频率,1MS,频率,1000Hz,int main(void,SysTick_Con

14、fig(FCLK / OSFREQ,while(1,1.11,定时器,1.11.1,系统滴答定时器,SysTick,3. SysTic,定时器编程(寄存器级别,void SysTick_Handler(void),系统,1s,中断一次,if(time_counter!=0,time_counter-,extern uint32 time_counter,void delajy(uint32 time,time_counter=time,while(time_counter!=0,1.11,定时器,1.11.2 STM32,常规定时器,STM32,的常规定时器分为三类,包括,1,高级控制定时器,

15、TIM1,和,TIM8,2,通用定时器,TIM2,TIM3,TIM4,TIM5,3,基本定时器,TIM6,TIM7,三种定时器功能,P39,表,1-16,1.11,定时器,1.11.2 STM32,常规定时器,其中,TIM1,和,TIM8,是能够产生,3,对,PWM,互补输出的高级登时其,常用于三相电机的驱动,时钟由,APB2,的,输出产生,TIM2-TIM5,是普通定时器,TIM6,和,TIM7,是基本定时器,其时钟由,APB1,输出产生。由于,STM32,的,TIMER,功能太复杂了,所以只能一点一点的学习,1.11,定时器,1.11.2 STM32,常规定时器,普通定时器,TIM2-TI

16、M5,时钟来源,计数器时钟可以由下列时钟源提供,内部时钟,CK_INT,外部时钟模式,1,外部输入脚,TIx,外部时钟模式,2,外部触发输入,ETR,内部触发输入,ITRx,使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器,Timer1,而作为另一个定时器,Timer2,的预分频器,1.11,定时器,1.11.2 STM32,常规定时器,计数器模式,TIM2-TIM5,可以由向上计数、向下计数、向上向下双向计数,向上计数模式中,计数器从,0,计数到自动加载值,TIMx_ARR,计数器内容,然后重新从,0,开始计数并且产生一个计数器溢出事件,在向下模式中,计数器从自动装入的值,TI

17、Mx_ARR,开始向下计数到,0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件,而中央对齐模式(向上,向下计数)是计数器从,0,开始计数到自动装,入的值,1,产生一个计数器溢出事件,然后向下计数到,1,并且产生一个,计数器溢出事件;然后再从,0,开始重新计数,1.12,同步串行口,SPI,和,I2C,1.12.1 SPI,串行外设接口,SPI(Serial Peripheral Interface,是一种同,步串行外设接口,它可以使,MCU,与各种外围设备,以串行方式进行通信、交换信息,常,SPI,通过,4,个引脚与外部器件相连,1.12,同步串行口,SPI,和,I2C,1.12.

18、1 SPI,SPI,时钟周期,在一个,SPI,时钟周期内,会完成如下操作,1,主机通过,MOSI,线发送,1,位数据,从机通过该线读,取这,1,位数据,2,从机通过,MISO,线发送,1,位数据,主机通过该线读,取这,1,位数据,这个,SPI,时钟周期,就是,SCK,信号的时钟周期。因此,该时钟的频率决定了,SPI,的传输速率,SPI,主从模式,SPI,接口支持多从机模式,如图,1-19,1.12,同步串行口,SPI,和,I2C,1.12.1 SPI,1.12,同步串行口,SPI,和,I2C,1.12.1 SPI,1.12,同步串行口,SPI,和,I2C,1.12.1 SPI,SPI,框图分析

19、,1.12,同步串行口,SPI,和,I2C,1.12.1 SPI,SPI,控制寄存器,1(SPI_CR1,15,位,BIDIMODE,双向数据模式使能,定义,0,双线双向模式,1,单线双向模式,14,位,BIDIOE,双向模式下的输出使能,和,BIDIMODE,位一起决定,在“单线双向”模式下数据的输出方向。定义,0,输出禁止,只收模式,1,输出使能,只发模式,这个“单线”数据线在主设备端为,MOSI,引脚,在从设备端为,MISO,引脚,13,位,CRCEN,硬件,CRC,校验使能,定义,0,禁止,CRC,计算,1,启动,CRC,计算,12,位,CRCNEXT,下一个发送,CRC,定义,0,下

20、一个发送的值来自发送缓冲区,1,下一个发送的值来自发送,CRC,寄存器,11,位,DFF,数据帧格式,定义,0,使用,8,位数据帧格式进行发送,接收,1,使用,16,位数据帧,10,位,RXONLY,只接收,该位和,BIDIMODE,位一起决定在“双线双向”模式下的传输方向,1.12,同步串行口,SPI,和,I2C,1.12.1 SPI,9,位,SSM,软件从设备管理,当,SSM,被置位时,NSS,引脚上的电平由,SSI,位的值决定。定义,0,禁止软,件从设备管理,1,启用软件从设备管理,8,位,SSI,内部从设备选择,该位只在,SSM,位为1时有意义。它决定了,NSS,上的电平,在,NSS,

21、引脚上,的,I/O,操作无效,7,位,LSBFIRST,帧格式,定义,0,先发送,MSB,1,先发送,LSB,,注:当通信在进行时不能改变该,位的值,6,位,SPE-SPI,使能,定义,0,禁止,SPI,设备,1,开启,SPI,设备,5-3,位,BR2:0,波特率控制,定义,000,fPCLK/2,001,fPCLK/4,010,fPCLK/8,011,fPCLK/16,100,32,101,64,110,128,111,256,注:通信时不能改,2,位,MSTR,主设备选择,定义,0,配置为从设备,1,配置为主设备),注:当通信正在进行的时,候,不能修改该位,1,位,CPOL,时钟极性,定义

22、,0,空闲状态时,SCK,保持低电平,1,空闲状态时,SCK,保持高电平,注:当通信正在进行的时候,不能修改该位,0,位,CPHA,时钟相位,定义,0,数据采样从第一个时钟边沿开始,1,数据采样从第二个时钟边沿,开始)注:当通信正在进行的时候,不能修改该位,1.12,同步串行口,SPI,和,I2C,1.12.1 SPI,SPI_CR2(SPI,控制寄存器,2,7,位,TXEIE,发送缓冲区空中断使能,定义,0,禁止,TXE,中断,1,允许,TXE,中断,当,TXE,标志置位,为1时产生中断请求,6,位,RXNEIE,接收缓冲区非空中断使能,定义,0,禁止,RXNE,中断,1,允许,RXNE,中

23、断,当,RXNE,标志,置位时产生中断请求,5,位,ERRIR,错误中断使能,当错误,CRCERR,OVR,MODF,产生时,该位控制是否产生中断,定义,0,禁止错误中断,1,允许错误中断,2,位,SSOE-SS,输出使能,定义,0,禁止在主模式下,SS,输出,该设备可以工作在多主设备模式,1,设,备开启时,开启主模式下,SS,输出,该设备不能工作在多主设备模式,1,位,TXDMAEN,发送缓冲区,DMA,使能,当该位被设置时,TXE,标志一旦被置位就发出,DMA,请求,定义,0,禁止发送缓冲区,DMA,1,启动发送缓冲区,DMA,0,位,RXDMAEN,接收缓冲区,DMA,使能,当该位被设置

24、时,RXNE,标志一旦被置位就发出,DMA,请求,定义,0,禁止接收缓冲区,DMA,1,启动接收缓冲区,DMA,1.12,同步串行口,SPI,和,I2C,1.12.1 SPI,SPI,状态寄存器,SPI_SR,7,位,BSY,忙标志,定义,0,SPI,不忙,1,SPI,正忙于通信,或者发送缓冲非空)该位由硬件置位,或者复位,6,位,OVR,溢出标志,定义,0,没有出现溢出错误,1,出现溢出错误,5,位,MODF,模式错误,定义,0,没有出现模式错误,1,出现模式错误,4,位,CRCERR-CRC,错误标志,3,位:标志位,定义,0,未发生下溢,1,发生下溢,2,位,CHSIDE,声道,定义,0,需要传输或者接收左声道,1,需要传输或者接收右声道,1,位,TXE,发送缓冲为空,定义,0,发送缓冲非空,1,发送缓冲为空,0,位,RXNE,接收缓冲非空,定义,0,接收缓冲为空,1,接收缓冲非空,1.12,同步串行口,SPI,和,I2C,1.12.2 I,2,C,1. I,2,

温馨提示

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

评论

0/150

提交评论