stm32中断解剖(非外部中断)

发布者:w2628203123最新更新时间:2015-06-17 来源: 51hei关键字:stm32  中断解剖  外部中断 手机看文章 扫描二维码
随时随地手机看文章
如果只使用TIME2全局中断,则不需要void EXTI_Config(void)//外部中断配置。只要void NVIC_Configuration(void)//嵌套中断配置和stm32f10x_it.c库文件中的void TIM2_IRQHandler(void)。具体如下配置。注意此处与外部中断的配置的区别切勿混淆。
 


疑问?
1.为什么不需要配置RCC_APB2Periph_AFIO
2 查看固件库手册 发现NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn; //选择外部中断3号线 与
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel; //选择TIM2中断 是结构体的不同值,怎么回事?
3TIME2是在什么情况下促使发生了TIM2_IRQChannel; 是定时器定时满了?还是?TIM1有那么多中断方式,那么TIM2的全局中断时什么意思? 

void NVIC_Configuration(void)//嵌套中断配置
{

#ifdef VECT_TAB_RAM 
NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0);
#else 
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0); 
#endif 
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); 
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel; //选择TIM2中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; //
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能
NVIC_Init(&NVIC_InitStructure); 

void TIM2_IRQHandler(void)
{

//USART_SendData(USART2,TIM3->CNT);
/****************此处有误,但程序尽然正常跑,趣了怪了*******
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET)

}
******/ 
/**************改成**********if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET )
TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);//必须清除中断标志位否则一直中断 
*****************/ 
Delay(100000);
printf("TIM3->wangwenwneCNT=%d",TIM3->CNT);//此函数已被我重定向(fputc())


int fputc(int ch,FILE * f)
{
USART_SendData(USART2,(unsigned char)ch);
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET)
{
}
return(ch);
}
void TIMER2_PWM_Init(void)
{
/****配置时间基**********/
TIM_TimeBaseStructure.TIM_Period = 0xFFFF;
TIM_TimeBaseStructure.TIM_Prescaler = 0xFF;//分频
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; //时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x03;
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //模式
// TIM_OCInitStructure.TIM_Channel = TIM_Channel_1;
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse=CCR1_Val;
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;
TIM_OC1Init(TIM2,&TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM2,TIM_OCPreload_Disable);
/**********************/
TIM_Cmd(TIM2,ENABLE);
TIM_ITConfig(TIM2,TIM_IT_CC1,ENABLE); 


第一种方法: 
NVIC_SETPRIMASK(); //关闭总中断 
NVIC_RESETPRIMASK(); //开放总中断 

第二种方法: 
NVIC_SETFAULTMASK(); //关闭总中断 
NVIC_RESETFAULTMASK(); //开放总中断
关键字:stm32  中断解剖  外部中断 引用地址:stm32中断解剖(非外部中断)

上一篇:高压电源之LCC谐振变换原型
下一篇:ARM吴雄昂:物联网需要开放的生态系统

推荐阅读最新更新时间:2024-03-16 14:04

STM32定时器原理与使用
1.定义 设置等待时间,到达等待时间之后执行指定的硬件操作。 定时器最基本的功能就是定时,比如说定时发送串口数据,定时采集AD数据,也可以产生PWM方波等,定时器产生PWM控制电机状态是工业控制的普通。 ----------------------------------------------------------------------------------------------------------------------------------------------------------- 2、STM32F4xx系列的芯片:2个高级控制定时器(TIM1和TIM8)、10个通用定时器(10TIM2
[单片机]
<font color='red'>STM32</font>定时器原理与使用
基于STM32和CPLD的等精度测频设计
在电子工程、资源勘探、仪器仪表等相关应用中,频率测量是电子测量技术中最基本最常见的测量之一,频率计也是工程技术人员必不可少的测量工具。但是,传统的频率测量方法在实际应用中有较大的局限性,基于传统测频原理的频率计的测量精度将随被测信号频率的变化而变化,传统的直接测频法其测量精度将随被测信号频率的降低而降低,测周法的测量精度将随被测信号频率的升高而降低。本文中提出一种基于ARM与CPLD宽频带的数字频率计的设计,以微控器STM32作为核心控制芯片,利用CPLD可编程逻辑器件,实现闸门测量技术的等精度测频。 本设计的技术指标: 测频范围:1Hz~200MHz,分辨率为0.1Hz,测频相对误差百万分之一。 周期测量:信号测量范围与精
[嵌入式]
基于<font color='red'>STM32</font>和CPLD的等精度测频设计
STM32初识——中断初始化过程(by woody)
在库函数中,配置 GPIO 与中断线的映射关系的函数 GPIO_EXTILineConfig()来实现的:void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource) 该函数将 GPIO 端口与中断线映射起来,使用范例是: GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2); 中断线上中断的初始化是通过函数 EXTI_Init()实现的。EXTI_Init()函数的定义是: void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);
[单片机]
STM32串口3使用代码
  STM32的串口是相当丰富的,功能也很强劲。最多可提供5路串口(MiniSTM32使用的是STM32F103RBT6,具有3个串口),有分数波特率发生器、支持单线光通信和半双工单线通讯、支持LIN、智能卡协议和IrDASIR ENDEC规范(仅串口3支持)、具有DMA等。   串口最基本的设置,就是波特率的设置。STM32的串口使用起来还是蛮简单的,只要你开启了串口时钟,并设置相应IO口的模式,然后配置一下波特率,数据位长度,奇偶校验位等信息,就可以使用了。   串口能给我们编程调试带来很大帮助,STM32的串口使用起来也很简单,参考官方代码,然后对照STM32手册,就能找到相关寄存器设置,以及设置的先后顺序。   
[单片机]
<font color='red'>STM32</font>串口3使用代码
STM32】HAL库 STM32CubeMX教程十三---RTC时钟
前言: 本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1、芯片: STM32F407ZET6/ STM32F103ZET6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32F1xx/STM32F4xxHAL库 知识概括: 通过本篇博客您将学到: RTC时钟原理 STM32CubeMX创建RTC例程 HAL库定时器RTC函数库 PS: 这里的RTC讲解,我们只将原理,不讲寄存器,如果要看RTC的寄存器,请看这篇文章 【STM32】RTC实时时钟,步骤超细详解,一文看懂RTC 什么是RTC RTC (Rea
[单片机]
【<font color='red'>STM32</font>】HAL库 STM32CubeMX教程十三---RTC时钟
stm32之USB应用实例(官方例程资料下载使用)
开发环境:Window 7 开发工具:Keil uVision5 硬件:stc32f103c8t6 stm32系列芯片很多都拥有一个USB2.0全速的通讯接口,下面介绍怎么使用st官方的usb应用例程。 首先从官网下载源码: https://my.st.com/content/my_st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32-standard-peripheral-library-expansion/stsw-stm32121.html 需要登录才能下载,如果没有账号,注册一个也很快的。
[单片机]
<font color='red'>stm32</font>之USB应用实例(官方例程资料下载使用)
STM32内存映射
一、概述   STM32内存映射是STM32的架构的重要组成部分,不可或缺。 二、STM32内存映射图 1、内存映射图--摘自《CM3权威指南》 2、内存映射图--摘自《STM32F103x简要芯片手册》
[单片机]
<font color='red'>STM32</font>内存映射
stm32 GPIO的8种工作模式
上图的最右端为I/O引脚,左端的器件位于芯片内部。I/O并联了两个用于保护的二极管。 注:部分图片内容来自《STM32库开发实战指南》
[单片机]
<font color='red'>stm32</font> GPIO的8种工作模式
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved