您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 第1章stm32原理及其应用
LOGOLOGO基于STM32的嵌入式系统原理与设计STM32基本原理要点STM32性能和结构CortexM3处理器输入输出端口GPIO引脚、电源和时钟树模数和数模转换中断定时器DMA灵活的FSMC同步和异步串行接口第一章STM32基本原理–学习STM32需要从原理入手,为硬件、软件、操作系统、工程实践学习打下一个良好的基础。–本章的第一部分是STM32的性能和结构,然后是对CortexM3处理器的分析,之后是地址映射、引脚功能描述、电源连接、复位和时钟控制RCC、输入输出端口GPIO、ADC和DAC、中断、DMA、定时器、同步串行通信SPI和I2C、同步异步串行通信USART,最后是灵活的存储器控制FSMC。–通过本章的学习,既可以掌握STM32的全貌,也可以学习到重要的关于CortexM3处理器内核和STM32器件的细节信息1.1STM32性能和结构1.1.1总体性能以高密度的STM32F103VET6为例,能适合一般项目的需要,价格在30元以下,避免由于FLASH和RAM太小造成的瓶颈。VET6的含义为:•V的含义为100pins,即100个管脚。•E表示512KB的FLASH。•T表示LQFP封装。•6表示-40到85度的温度范围。1.1STM32性能和结构1.1.2系统结构分析1.1STM32性能和结构1.1.2系统结构分析(1)Cortex-M3CPU所在之处,是司令部是大脑。(2)总线矩阵(3)FLASH通过FLASH接口连接CPU。(4)静态存储器SRAM通过总线矩阵连接CPU。(5)复位和时钟控制RCC。(6)低速APB1外设。(7)低速APB2外设。(8)可变静态存储控制器FSMC。(9)DMA通道。1.1STM32性能和结构1.1.3芯片封装和管脚概述1.2CortexM3处理器1.2.1Cortex-M3的定位和应用从图1.2.1可见,嵌入式处理器核CortexM3,容量(Capability)和执行功能(PerformanceFunctionality)都居中,但其性价比是当今最好的品种之一,也是现在最流行的品种之一。1.2CortexM3处理器1.2.2Cortex-M3处理器结构1.2CortexM3处理器1.2.2Cortex-M3处理器结构1.2CortexM3处理器1.2.3Cortex-M3寄存器1.2CortexM3处理器1.2.3Cortex-M3寄存器1.2CortexM3处理器1.2.3Cortex-M3寄存器特殊功能寄存器1.2CortexM3处理器1.2.3Cortex-M3寄存器1.2CortexM3处理器1.2.3Cortex-M3寄存器1.2CortexM3处理器1.2.4堆栈1.2CortexM3处理器1.2.4堆栈1.3STM32存储地址映射存储地址映射P12图1-71.3STM32存储地址映射1.3STM32存储地址映射1.3STM32存储地址映射代码分析,P13代码1-2到1-6说明如何访问串口寄存器来实现发送数据到串口1.3STM32存储地址映射USART_SendData(USART1,0Xa2)#defineUSART1((USART_TypeDef*)USART1_BASE)#defineUSART1_BASE(APB2PERIPH_BASE+0x3800)#defineAPB2PERIPH_BASE(PERIPH_BASE+0x10000)#definePERIPH_BASE((uint32_t)0x40000000)0x400138001.4引脚功能描述引脚功能来源于数据手册,注意复用功能1.5电源连接1.6复位和时钟控制RCC复位分三种形式,电源复位、系统复位和备份区域复位。1.6.1复位1.6复位和时钟控制RCC通常,STM32主频在72M,而外时钟选择8M,因此必须通过倍频获得。1.6.2时钟源1.6复位和时钟控制RCC时钟树图解了各个设备时钟的来源。参考P19页图1-11STM32时钟树。问题:STM32定时器1是APB2外设,请从晶振开始,分析器定时器1时钟的来源。那么定时器2呢?1.6复位和时钟控制RCC1.7输入输出端口GPIO1.7.1常规输入输出GPIOGPIO是可编程输入/输出端口1.7输入输出端口GPIO1.7.1常规输入输出GPIOGPIO端口的模式模式是输入浮空,为什么这样设计?1.7输入输出端口GPIO1.7.1常规输入输出GPIO1.7输入输出端口GPIO1.7.1常规输入输出GPIO1.7输入输出端口GPIO1.7.2GPIO复用可以将具有复用功能的引脚的功能进行重新配置,例如配置一些管脚为ADC的管脚,这些管脚就不能再作为GPIO使用。这个过程叫做复用重映射。8个ADC通过的选择过程P21-22。问题:根据P21表1-7,如果需要选择一个引脚做ADC输入引脚,可以选择哪个引脚呢?为什么?1.8模数转换器和数模转换器1.8.1模-数转换器1.模数转换器框图分析P23图1-13。2.常规通道和注入通道。3.参考源。1.8模数转换器和数模转换器1.8.2数-模转换器1.数模转换器框图分析P24图1-15。2.参考源。3.信号发生器功能。1.9中断•中断处理的优越性•现实生活中的中断的例子•中断嵌套,现实生活中的中断嵌套•STM32的先占优先级和从优先级•嵌入式操作系统与中断的关系1.9中断1.9.1STM32的中断通道和中断向量处理1.STM32中断通道。表1-8中的中断通道分析2.启动代码设置中断向量表代码1-7分析3.复位中断的处理代码1-8分析1.9中断1.9中断1.9.2STM32外部中断STM32外部中断的来源。分析P29图1-16,说明全部中断输入线的来源。是否可以用PA0和PB0同时作为外部中断?是否可以用PA0和PB1同时作为外部中断?为什么?1.9中断1.9.3STM32中断优先级分组优先级越高,数值越低!抢占优先级相同的任务,响应优先级高的先响应,但不能互相抢占;抢占优先级不同的,可以抢占低优先级的CPU。分析P30串口串口和按键中断的例子,假设将优先级互换会产生什么样的结果呢?1.10直接存储器存取DMA•直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速的无需CPU干预的数据传输。1.9中断1.9中断1.10DMA1.10.1DMA解析1.图1-17DMA框图解析2.从内存到外设或从外设到内存的DMA传输。3.传输申请和仲裁。1.9DMA1.9中断1.10DMA1.10.2DMA通道和请求1.DMA通道分配P32表1-10和表1-112.仲裁机制的作用和功能。3.通道号和优先级。P33图1-18.1.11定时器STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。1.11定时器1.11.1系统滴答定时器SysTick1.SysTick定时器的位置和功能SysTick是一个24位数据宽度的倒计数定时器,其计数范围只能到1677215(2^24),当计数到0时会从RELOAD寄存器中自动重装定时初值。只要不把SysTick的控制及状态寄存器中的使能位清除,计数器就不会停。1.11定时器1.11.1系统滴答定时器SysTick2.SysTic定时器的寄存器1.11定时器1.11.1系统滴答定时器SysTick1.11定时器1.11.1系统滴答定时器SysTick3.SysTic定时器编程(寄存器级别)。使用72M作为系统时钟,那么每次计数器减1所用的时间是1/72M,计数器的初值如果是72000,那么每次计数器减到0,时间经过(1/72M)*72000=0.001,即1ms。(简单理解:用72M的时钟频率,即1s计数72M=72000000次,那1ms计数72000次,所以计数值为72000)1.11定时器1.11.1系统滴答定时器SysTick3.SysTic定时器编程(寄存器级别)#defineFCLK72000000//时钟频率72M#defineOSFREQ1000//中断频率1MS,频率1000Hzintmain(void){SysTick_Config(FCLK/OSFREQ);while(1){}}1.11定时器1.11.1系统滴答定时器SysTick3.SysTic定时器编程(寄存器级别)voidSysTick_Handler(void)//系统1s中断一次{if(time_counter!=0)time_counter--;}externuint32time_counter;voiddelajy(uint32time){time_counter=time;while(time_counter!=0);}1.11定时器1.11.2STM32常规定时器STM32的常规定时器分为三类,包括1.高级控制定时器TIM1和TIM82.通用定时器TIM2、TIM3、TIM4、TIM53.基本定时器TIM6、TIM7三种定时器功能P39表1-161.11定时器1.11.2STM32常规定时器其中TIM1和TIM8是能够产生3对PWM互补输出的高级登时其,常用于三相电机的驱动,时钟由APB2的输出产生。TIM2-TIM5是普通定时器,TIM6和TIM7是基本定时器,其时钟由APB1输出产生。由于STM32的TIMER功能太复杂了,所以只能一点一点的学习。1.11定时器1.11.2STM32常规定时器普通定时器TIM2-TIM5时钟来源计数器时钟可以由下列时钟源提供:·内部时钟(CK_INT)·外部时钟模式1:外部输入脚(TIx)·外部时钟模式2:外部触发输入(ETR)内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器。1.11定时器1.11.2STM32常规定时器计数器模式TIM2-TIM5可以由向上计数、向下计数、向上向下双向计数。向上计数模式中,计数器从0计数到自动加载值(TIMx_ARR计数器内容),然后重新从0开始计数并且产生一个计数器溢出事件。在向下模式中,计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。而中央对齐模式(向上/向下计数)是计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数。1.12同步串行口SPI和I2C1.12.1SPI串行外设接口SPI(SerialPeripheralInterface)是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信、交换信息。常SPI通过4个引脚与外部器件相连:1.12同步串行口SPI和I2C1.12.1SPISPI时钟周期在一个SPI时钟周期内,会完成如下操作:•1)主机通过MOSI线发送1位数据,从机通过该线读取这1位数据;•2)从机通过MISO线发送1位数据,主机通过该线读取这1位数据。•这个SPI时钟周期,就是SCK信号的时钟周期。因此,该时钟的频率决定了SPI的传输速率。SPI主从模式SPI接口支持多从机模式,如图1-19.1.12同步串行口SPI和I2C1.12.1SPI1.12同步串行口SPI和I2C1.12.1SPI1.12同步串行口SPI和I2C1.12.1SPISPI框图分析1.12同步串行口SPI和I2C1.12.1SPISPI控制寄存器1(SPI_CR1)15位:BIDIMODE双向数据模式使能,定义:0(双线双向模式)1(单线双向模式)14位:BIDIOE双向模式下的输出使能,和BIDIMODE位一起决定在“单线双向”模式下数据的输出方向。定义:0(输出禁止(只收模式)),1(输出使能(只发模式))这个“单线”数据线在主设备端为MOSI引脚,在从设备端为MISO引脚。13位:CRCEN硬件CRC校验使能,定义:0(禁止CRC计算),1(启动CRC计算)12位
本文标题:第1章stm32原理及其应用
链接地址:https://www.777doc.com/doc-2153963 .html