嵌入式原理应用期末复习.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中断优先级 ARM Cortex-M3内核定义了两类优先级: 抢占式优先级 响应优先级(又称为副优先级或子优先级) 注意:通常,每个中断源都需要指定这两类优先级。 STM32单片机的中断优先级都是针对“中断通道”的。当该中断通道的优先级确定后,也就确定了该外围设备的中断优先级,并且该设备所能产生的所有类型的中断,都享有相同的通道中断优先级。 至于该设备本身产生的多个中断的执行顺序,则取决于用户的中断服务程序。 结构体NVIC_InitTypeDef typedef struct { u8 NVIC_IRQChannel;//用于选择中断通道 u8 NVIC_IRQChannelPreemptionPriority; //用于设置中断通道的抢占式优先级 u8 NVIC_IRQChannelSubPriority; //用于设置中断通道的子优先级 FunctionalState NVIC_IRQChannelCmd; //用于选中的中断通道的中断使能或中断失能 }NVIC_InitTypeDef ; EXTI(外部中断与外部事件)控制器 EXTI由19个产生事件/中断要求的边沿检测器组成。 每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿、下降沿、双边沿都触发)。 每个输入线都可以独立地被屏蔽。挂起寄存器保持着状态线的中断请求。 从外部激励信号来看,中断和事件是没有分别的,只是在芯片内部分开,一路信号会向CPU产生中断请求,另一路信号会向其它功能模块发送脉冲触发信号。 事件本质上就是一个触发信号(脉冲),是用来触发特定的外设模块或核心本身(唤醒);而中断则是一个固定的电平信号。 事件可以触发中断,也可以不触发; 中断有可能被更优先的中断屏蔽,事件不会被屏蔽。 中断和事件的比较 * 嵌入式系统原理与应用 * EXTI_InitTypeDef结构体 typedef struct { u32 EXTI_Line; //待使能或失能的外部线路,EXTI_Linex, x=0~19 EXTIMode_TypeDef EXTI_Mode; //工作模式,EXTI_Mode_Event,EXTI_Mode_Interrupt EXTITrigger_TypeDef EXTI_Trigger; //触发边沿,EXTI_Trigger_Falling //EXTI_Trigger_Rising,EXTI_Trigger_Rising_Falling FunctionState EXTI_LineCmd; //ENABLE/DISABLE }EXTI_InitTypeDef; //用于初始化外部中断/事件的参数 STM32的112个通用I/O端口线连接到16个外部中断/事件(EXTIx)线上,其中每根EXTIx线上可接 PAx~PGx共7个通用I/O端口线其中之一。 x=0~15。(16*7=112) EXTI_Line: 另外3种其他的外部中断/事件控制器的连接如下: EXTI线16连接到PVD输出; EXTI线17连接到RTC闹钟事件; EXTI线18连接到USB唤醒事件。 可以通过GPIO_EXTILineConfig来选择 同一时刻 EXTx只能响应一个端口的事件触发 主要由通过可编程预分频器驱动的16位自动装载计数器 +自动装载寄存器构成。 通用定时器时基单元 时基单元包含: ● 计数器寄存器(TIMx_CNT) ● 预分频器寄存器 (TIMx_PSC) (带有缓冲器,即影子寄存器) ● 自动装载寄存器 (TIMx_ARR) (带有缓冲器,即影子寄存器) TIMx_ARR TIMx_CNT TIMx_PSC CK_PSC CK_CNT AutoReload Register PSC:Prescaler 预分频器 /* TIM Time Base Init structure definition */ typedef struct { u16 TIM_Period;//设置通用定时器 TIMx的定时周期 u16 TIM_Prescaler;//设置通用定时器 TIMx的预分频值 u16 TIM_ClockDivision;//用于对通用定时器 TIMx的内部 //时钟TIMxCLK(to TIM2,3,4,5,67) 进行分频采样

文档评论(0)

1444168621 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档