嵌入式原理与应用期末复习

上传人:bei****lei 文档编号:252927406 上传时间:2024-11-24 格式:PPT 页数:43 大小:1.14MB
收藏 版权申诉 举报 下载
嵌入式原理与应用期末复习_第1页
第1页 / 共43页
嵌入式原理与应用期末复习_第2页
第2页 / 共43页
嵌入式原理与应用期末复习_第3页
第3页 / 共43页
资源描述:

《嵌入式原理与应用期末复习》由会员分享,可在线阅读,更多相关《嵌入式原理与应用期末复习(43页珍藏版)》请在装配图网上搜索。

1、单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,*,嵌入式系统原理与应用,*,期末复习,电话:,660345 13777780345,,Email: ywb_jsj@,*,嵌入式系统原理与应用,2,课程性质与目的,嵌入式原理与应用是电类本科专业的一门核心选修课程,该课程涵盖了,微电子技术、电子信息技术、计算机软、硬件,等多个领域,且,技术性,、工程性、,实践性,和综合性都很强的一门课。,,使学生获得嵌入式系统的有关软硬知识,掌握嵌入式系统,程序设计,的基本方法和技巧;结合,上机实践,,使学生对嵌入式系统程序设计和软件开发过程有一个比

2、较全面地、系统地了解;初步具备应用嵌入式系统解决实际问题的能力。,,,*,嵌入式系统原理与应用,3,课程内容,*,嵌入式系统原理与应用,4,嵌入式系列课程,嵌入式系统原理与应用,,面向数据采集、控制等,实时应用,,基于,STM32 Cortex M3,嵌入式微控制器,讲述嵌入式系统基本原理与应用,,,嵌入式操作系统基础,,基于,ucOS/II,嵌入式实时操作系统,讲述嵌入式操作系统基本原理,,,嵌入式系统软件开发,,面向嵌入式网关等高端应用,基于嵌入式,Linux,操作系统,侧重嵌入式,Linux,下的软件开发,STM32F,系列 图解,STM32F10x,系列微控制器 系统结构,,存储

3、器组织,4G,字节的寻址空间,地址范围:,0x0000 0000----0xffff ffff,1.,空间,共分为,8,块,:,block0,~,block7,,每块,512M,外设寄存器组,,(,PERIPHERALS,),,---,包括输入输出端口,,数据存储器,,(SRAM),,,程序存储器,,(CODE),,APB1,,APB2,,,AHB,0x4001 0000,0x4002 0000,0x4000 0000,外设寄存器求法,,#define PERIPH_BASE ((u32)0x40000000),寄存器地址,=,总线基址,+,外围总线基址,,,+,外设地址偏

4、移量,+,寄存器偏移量,#define APB1PERIPH_BASE PERIPH_BASE,,#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000),,#define AHBPERIPH_BASE (PERIPH_BASE + 0x20000),#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800),,#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00),,#define GPIOC_BASE

5、 (APB2PERIPH_BASE + 0x1000),*,嵌入式系统原理与应用,10,标准外设库文件体系结构,*,嵌入式系统原理与应用,11,标准外设库文件描述:,CMSIS,文件,文件名,功能描述,具体功能说明,core_cm3.h,,core_cm3.c,Cortex-M3,内核及其设备文件,访问,Cortex-M3,内核及其设,备,,提供,NVIC,,,SysTick,等访,问,Cortex-M3,的,CPU,寄存器和内核外设的函数,stm32f10x.h,微控制器专用头文件,包,含了,STM32F10x,全系列所有外设寄存器的定义(寄存器的基地址和布局)、位定义、中

6、断向量表、存储空间的地址映射等,system_stm32f10x.h,,system_stm32f10x.c,微控制器专用系统文件,函数,SystemInit,用,来初始化微控制,器,,,,Sysem_ExtMemCtl,配,置外部存储器控制器。它位于文,件,startup_stm32f10x_xx.s,/.c,,在跳转到,main,前调,用,SystemFrequncy,,该值代表系统时钟频率,startup_stm32f10x_Xd.s,编译器启动代码,微控制器专用的中断处理程序列表,(,与头文件一致,),弱,定义,(Weak),的中断处理程序默认函数,(,可以被用户代码覆盖,),,,,该

7、,文件是与编译器相关的,*,嵌入式系统原理与应用,12,外设驱动文件,文件名,功能描述,具体功能说明,stm32f10x_conf.h,固件库配置文件,通过更改包含的外设头文件来选择固件库所使用的外设,在新建程序和进行功能变更之前应当首先修改对应的配置。,stm32f10x_it.h,,stm32f10x_it.c,外设中断函数文件,用户可以相应的加入自己的中断程序的代码,对于指向同一个中断向量的多个不同中断请求,用户可以通过判断外设的中断标志位来确定准确的中断源,执行相应的中断服务函数。,stm32f10x_ppp.h,,stm32f10x_ppp.c,外设驱动函数文件,包括了相关外设的初始

8、化配置和部分功能应用函数,这部分是进行编程功能实现的重要组成部分。,Application.c,用户文件,用户程序文件,通过标准外设库提供的接口进行相应的外设配置和功能设计。,misc.h,,misc.c,,单独对于,NVIC(,中断向量,嵌套,),的外设驱动,*,嵌入式系统原理与应用,13,STM32,标准外设库:命名规则,PPP,表示任一外设缩写,如,ADC,、,GPIO,,系统、源程序文件和头文件命名都以,stm32f10x,开头,,常量,仅被用于一个文件的,定义于该文件中;被用于多个文件的,在对应的头文件中定义;所有常量命名都用大写字母,,寄存器作为常量处理,用大写字母命名,通常与用户

9、手册中的命名一致,,外设函数的命名以该外设的缩写加下划线开头,每个单词的第一个字母都由英文字母大写书写,如:,USART_SendData,,在函数命中,只允许存在一个下划线,用以分隔外设缩写和函数名的其他部分,,*,嵌入式系统原理与应用,14,命名规则,PPP_Init,函数,其功能是根据,PPP_InitTypeDef,中指定的参数,初始化外设,PPP,,如,TIM_Init,,PPP_DeInit,函数用于复位外设,PPP,的所有寄存器至默认值,例如,TIM_DeInit,,PPP_StructInit,函数用于复位,PPP_InitTypeDef,结构体中的成员至默认值,如,USART

10、_StructInit,,PPP_Cmd,函数用于使能或失能外设,PPP,,如,USART_Cmd,,PPP_ITConfig,函数用于使能或失能来自外设,PPP,的某中断源,如,RCC_ITConfig,,*,嵌入式系统原理与应用,15,命名规则,PPP_DMAConfig,函数用于使能或失能外设,PPP,的,DMA,接口,如,TIM_DMAConfig,,用以配置外设功能的函数,总是以字符串“,Config”,结尾,如,GPIO_PinRemapConfig,,PPP_GetFlagStatus,函数用于检查外设,PPP,某标志位被设置与否,如,I2C_GetFlagStatus,,PPP

11、_ClearFlag,函数用于清除外设,PPP,的标志位,如,I2C_ClearFlag,,PPP_GetITStatus,函数用于判断来自外设,PPP,的中断发生与否,如,I2C_GetITStatus,*,嵌入式系统原理与应用,16,数据类型和结构:变量(,stdint.h/core_cm3.h,),typedef unsigned char,uint8_t;,,typedef unsigned short int,uint16_t;,,typedef unsigned int,uint32_t;,,,#define __I volati

12、le const,(,read only,),,#define __IO volatile,(,,read / write,),,typedef signed char,int8_t;,,typedef signed short int,int16_t;,,typedef signed int,int32_t;,volatile,的作用,,*,嵌入式系统原理与应用,17,定义为,volatile,的变量是说这变量可能会被意想不到地改变,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。

13、,s,tatic,i,nt i=0;,,int main(void),,{ ...,,while (1),,{,,,if (i),,dosomething();,,},,},,void ISR_2(void),,{  i=1;  },编译器判断在main函数里面没有修改过i,因此可能只执行一次对从i到某寄存器的读操作,然后每次if判断都只使用这个寄存器里面的“i副本”,可能会导致dosomething永远也不会被调用。,*,嵌入式系统原理与应用,18,数据类型和结构:变量(,stm32f10x.h,),typedef int32_t,s32,;,,typedef int16_t,s16

14、,;,,typedef int8_t,s8,;,,typedef const int32_t,sc32,;//,只读变量,,typedef const int16_t,sc16,;,,typedef const int8_t,sc8,;,,typedef __IO int32_t,vs32,;//,,typedef __IO int16_t,vs16,;,,typedef __IO int8_t,vs8,;,,typedef __I int32_t,vsc32,;,,typedef __I int16_t,vsc16,;,,typedef __I int8_t,vsc8,;,,,说明变量在程序

15、执行中可被隐含地改变,,,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份,,*,嵌入式系统原理与应用,19,数据类型和结构:变量(,stm32f10x.h,),typedef uint32_t,u32,;,,typedef uint16_t,u16,;,,typedef uint8_t,u8,;,,typedef const uint32_t,usc32,;//,只读变量,,typedef const uint16_t,usc16,;,,typedef const uint8_t,usc8,;,,typedef __IO uint32_t,vu32,

16、;//,,typedef __IO uint16_t,vu16,;,,typedef __IO uint8_t,vu8,;,,typedef __I uint32_t,vuc32,;,,typedef __I uint16_t,vuc16,;,,typedef __I uint8_t,vuc8,;,,,*,嵌入式系统原理与应用,20,数据类型和结构:布尔类型,布尔类型定义为:,,,typedef enum,,{,,FALSE = 0;,,TRUE = !FALSE;,,} bool;,标准,C,规定:“枚举类型的尺寸是以能够容纳最大枚举子的值的整数的尺寸”,就是说可以是,char,、,shor

17、t,和,int,。,*,嵌入式系统原理与应用,21,数据类型和结构:标志位状态类型,标志位类型的两个可能值为“设置,(SET)”,、“重置,(RESET)”,:,,,typedef enum,,{,,RESET = 0;,,SET = !RESET;,,} FlagStatus;,*,嵌入式系统原理与应用,22,数据类型和结构:功能状态类型,功能状态类型的两个可能值为“使能,(ENABLE)”,、“失能,(DISABLE)”,:,,,typedef enum,,{,,DISABLE = 0;,,ENABLE = !DISABLE;,,} FunctionalState;,,,*,嵌入式系统原理

18、与应用,23,数据类型和结构:错误状态类型,错误状态类型的两个可能值为“成功,(SUCCESS)”,、“出错,(ERROR)”,:,,,typedef enum,,{,,ERROR = 0;,,SUCCESS = !ERROR;,,} ErrorStatus;,,,*,嵌入式系统原理与应用,24,数据类型和结构:外设结构,外设结构可以通过指向各个外设的指针访问各外设的控制寄存器,这些指针所指向的数据结构与各个外设的控制寄存器布局一一对应,文件,stm32f10x.h,包含了所有外设控制寄存器的结构,如,USART,寄存器结构的声明:,,typedef struct,,{,,vu16 SR;

19、 u16 RESERVED0;,,vu16 DR; u16 RESERVED1;,,vu16 BBR; u16 RESERVED2;,,vu16 CR1; u16 RESERVED3;,,vu16 CR2; u16 RESERVED4;,,vu16 CR3; u16 RESERVED5;,,vu16 GTPR; u16 RESERVED6;,,},USART_TypeDef;,*,嵌入式系统原理与应用,25,时钟系统,*,嵌入式系统原理与应用,26,1,、,STM32,有,5,个时钟源,:HSI,、,HSE,、,LSI,、,

20、LSE,、,PLL,。,,,①,HSI,是,高速内部,时钟,,RC,振荡器,频率为,8MHz,,精度不高。    ②,HSE,是,高速外部,时钟,可接石英,/,陶瓷谐振器,或者接外部时钟源,频率范围为,4MHz~16MHz,。    ③,LSI,是,低速内部,时钟,,RC,振荡器,频率为,40kHz,,提供低功耗时钟。    ④,LSE,是,低速外部,时钟,接频率为,32.768kHz,的石英晶体。    ⑤,PLL,为锁相环,倍频,输出,,其时钟输入源,可选择为,HSI/2,、,HSE,或者,HSE/2,。,,,倍频可选择为,2~16,倍,但是其输出频率最大不得超过,72MHz,。,*,嵌入

21、式系统原理与应用,27,RCC,库函数:,RCC_AHBPeriphClockCmd,函数原型,void,RCC_,AHBPeriphClockCmd(u32 RCC_AHBPeriph, FunctionalState NewState),功能描述,使能或失能,AHB,外设时钟,输入参数,RCC_AHBPeriph,: AHB,上的设备,,NewState,: ENABLE,或,DISABLE,输出参数,无,返回值,无,先决条件,无,应用示例,RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE),STM32,单片机的每一个输入,/,输出引脚可以配置

22、成以下,8,种模式,:,STM32,单片机的,GPIO,端口模式:,输入浮空:,IN_FLOATING,,输入上拉:,IPU,(,In Push-Up,),,输入下拉,:,IPD,(,In Push-Down,),,模拟输入,:,AIN,(Analog In),,,开漏输出:,Out_OD,(,Open Drain Output,),,推挽式输出,:,Out_PP,(Push-Pull Output),,推挽式复用功能,:,AF_PP,(,Push-Pull Output Alternate-Function,),,,开漏复用功能,:,AF_OD,(,Open Drain Output Alt

23、ernate-Function,),,,,输 入,输 出,复用输出,I/O,端口位的推挽输出配置,推挽模式:输出寄存器上的,0,激活,N-MOS,,而输出寄存器上的,1,将激活,P-MOS,。,激活,施密特触发输入,弱上拉和下拉电阻被,禁止,在每个,APB2,时钟周期,出现在,I/O,脚上的数据被采样到,输入数据寄存器,*,嵌入式系统原理与应用,30,嵌套向量中断控制器,NVIC,:,Nested Vectored Interrupt Controller,,管理,ARM Cortex-M3,处理器的所有中断和中断优先级,是,Cortex-M3,不可分离的一部分,。,,ARM Cort

24、ex-M3,处理器的,NVIC,:支持,256,个中断(,16,个内核中断,+,240,个外部中断,)和可编程,256,级中断优先级的设置。,,所有基于,ARM Cortex-M3,内核的处理器(包括,STM32,)的,256,个中断中前面的,16,个内核中断都是一样的,而后面的,240,个,外部中断,的具体数目和中断优先级的位数由芯片厂商决定。,,,,中断优先级,ARM Cortex-M3,内核定义了两类优先级:,,,抢占式优先级,,,响应优先级,(又称为副优先级或子优先级),注意:通常,每个,中断源都需要指定这两类优先级,。,,STM32,单片机的中断优先级都是针对,“,中断通道,”,的。

25、当该中断通道的优先级确定后,也就确定了该外围设备的中断优先级,并且该设备所能产生的所有类型的中断,都享有相同的通道中断优先级。,,,至于该设备本身产生的多个中断的执行顺序,则取决于用户的中断服务程序。,结,构体,NVIC_InitTypeDef,typedef struct,,{,,u8 NVIC_IRQChannel;,//,用于选择中断通道,,u8 NVIC_IRQChannelPreemptionPriority;,,,//,用于设置中断通道的抢占式优先级,,u8 NVIC_IRQChannelSubPriority;,,,//,用于设置中断通道的子优先级,,FunctionalS

26、tate NVIC_IRQChannelCmd;,,,//,用于选中的中断通道的中断使能或中断失能,,},NVIC_,Init,TypeDef,;,EXTI,(外部中断与外部事件,)控,制,器,EXTI,由,19,个产生事件,/,中断要求的,边沿检测器,组成。,,每个输入线可以独立地配置输入类型,(,脉冲或挂起,),和对应的触发事件,(,上升沿、下降沿、双边沿都触发,),。,,,每个输入线都可以独立地被屏蔽。挂起寄存器保持着状态线的中断请求。,从,外部激励信号,来看,中断和事件是没有分别的,只是在芯片内部分开,一路信号会向,CPU,产生中断请求,另一路信号会向其它功能模块,发送脉冲触发信号

27、,。,,,事件本质上就是一个触发信号(脉冲),是用来触发特定的外设模块或核心本身,(,唤醒,),;而中断则是一个固定的电平信号。,,,事件可以触发中断,也可以不触发;,,中断有可能被更优先的中断屏蔽,事件不会被屏蔽。,中断和事件的比较,*,嵌入式系统原理与应用,35,EXTI_InitTypeDef,结构体,typedef struct,,{,,u32 EXTI_Line;,,,//,待使能或失能的外部线路,,EXTI_Linex, x=0~19,,EXTIMode_TypeDef EXTI_Mode,;,,,//,工作模式,,EXTI_Mode_Event,EXTI_Mode_In

28、terrupt,,EXTITrigger_TypeDef EXTI_Trigger;,,,//,触发边沿,,EXTI_Trigger_Falling,,//EXTI_Trigger_Rising,EXTI_Trigger_Rising_Falling,,FunctionState EXTI_LineCmd;,//,ENABLE/DISABLE,,}EXTI_,Init,TypeDef;,//,用于初始化外部中断,/,事件的参数,STM32,的,112,个通用,I/O,端口线连接到,16,个外部中断,/,事件(,EXTIx,)线上,其中每根,EXTIx,线上可接,PAx,~,PGx,共,7,

29、个通用,I/O,端口线其中,之一,。,,x=0,~1,5,。(,16*7=112,),EXTI_Line,:,另外,3,种其他的外部中断,/,事件控制器的连接如下:,,EXTI,线,16,连接到,PVD,输出;,,EXTI,线,17,连接到,RTC,闹钟事件;,,EXTI,线,18,连接到,USB,唤醒事件。,可以通过,GPIO_EXTILineConfig,来选择,同一时刻 EXTx只能响应一个端口的事件触发,,主,要由通过,可编程预分频器,驱动的,16,位自动装载,计数器,,+,自动装载寄存器,构成,。,通用定时器时基单元,时基单元包含: ● 计数器寄存器,(TIMx_CNT) ●,预

30、分频器寄存器,(TIMx_PSC),(带有,缓冲器,,即影子寄存器),●,自动装载寄存器,(TIMx_ARR),(带有,缓冲器,,即影子寄存器),TIMx_ARR,TIMx_CNT,TIMx_PSC,,CK_PSC,CK_CNT,AutoReload Register,,,PSC:Prescaler 预分频器,/* TIM Time Base Init structure definition */,,t,ypedef struct,,{,,u16 TIM_Period,;//,设置通用定时器,TIMx,的定时周期,,u16 TIM_Prescaler;,//,设置通用定时器,TIMx,的预分

31、频值,,u16 TIM_ClockDivision,;//,用于对通用定时器,TIMx,的内部,,,//,时钟,TIMxCLK(to TIM2,3,4,5,6&7),进行分频采样,,u16 TIM_CounterMode,;//,设置通用定时器,TIMx,的计数模式,,,u8 TIM_RepetitionCounter;,//,重复寄存器值,仅在使用,,,//TIM1,和,TIM8,的高级功能时有用,,} TIM_TimeBase,Init,TypeDef;,TIM_TimeBaseInitTypeDef,定时器的定时时间主要取决于,定时周期,TIM_Period,,和,预分频值,TIM_Pr

32、escaler,,。,例如,当,TIM_Period=35999,,,TIM_Prescaler=1999,,表示对,TIMxCLK,频率,,经,2000,分频,得到脉冲频率作为定时器,计数脉冲,当通用定时器累计,36000,个脉冲时(即定时时间到),产生一个,更新事件,或者,中断,。,TIMx_ARR,TIMx_CNT,TIMx_PSC,,TIM2CLK,TIM2,counter,clock,AutoReload Register,通用定时器,TIMx,的定时时间:假设,TIMxCLK = 72MHz,,T= (TIM_Period+1),·,(TIM_Prescaler+1) / TIMx

33、CLK = (35999+1),·,(1999+1) / 72MHz = 1s,TIM_TimeBaseInitTypeDef,*,嵌入式系统原理与应用,40,串口收发控制,发送和接收控制部分有CR1、CR2、CR3控制寄存器及,1,个状态寄存器SR;,,通过向寄存器写入各种控制参数,来控制发送和接收,如停止位、中断等;,,串口的状态在任何时候都可从状态寄存器中查询得到。,CR3,*,嵌入式系统原理与应用,41,USART,中断请求,如果设置了对应的使能控制位,这些,事件,就可以产生各自的,中断,。,T,ransmission,C,omplete,,TXE,即,Tx,DR,E,mpty,

34、*,嵌入式系统原理与应用,42,USART,中断映像图,发送中断,接收中断,例:,发送完成后,TXE,、,TC,会置位(,TXE,先于,TC,置位,),此时如果,TXEIE,或,TCIE,被设置,就会进入相应中断处理程序。,USART,_InitTypeDef,typedef struct,,{,,u32 USART_BaudRate;,,u16 USART_WordLength;,,u16 USART_StopBits;,,u16 USART_Parity;,,u16 USART_HardwareFlowControl;,,u16 USART_Mode;,,…………..,//,同步模式,,},USART_,Init,TypeDef,;,,,//,用于初始化,USART,x,串口的参数(包括波特率、字长,—,即数据位、停止位、奇偶效验位、硬件流控制、工作模式),,//,异步模式,

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

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  sobing.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!