你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

最简单的闪灯进不了中断

[复制链接]
zylxcu 提问时间:2013-5-16 09:14 /
 #include"stm32f10x.h"
#include"stm32f10x_gpio.h"
#include"stm32f10x_rcc.h"
#include"misc.h"
 
#include"stm32f10x_tim.h"
#include"stm32f10x_conf.h"
void gpio_Init(void);
void nvic_Init(void);
void TIM_Init(void)        ;
 int main()
{
   
   gpio_Init();
   nvic_Init();
   TIM_Init();
        while(1)
        {
            GPIO_ResetBits(GPIOG, GPIO_Pin_13);
         GPIO_SetBits(GPIOG, GPIO_Pin_12);
          
   }
}
 
void gpio_Init(void)
 {
  GPIO_InitTypeDef GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
  GPIO_Init(GPIOG, &GPIO_InitStructure);
 }
 
void nvic_Init(void)
{
    NVIC_InitTypeDef NVIC_InitStructure; 
            
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
    NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
}       
void TIM_Init(void)       
{  
  
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
  TIM_ARRPreloadConfig(TIM2, ENABLE);                                              
  TIM_DeInit(TIM2);                                                                   //TIMx寄存器重设为缺省值
  TIM_TimeBaseStructure.TIM_Period = 29999;                       
  TIM_TimeBaseStructure.TIM_Prescaler=7199;                
  TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);                     
  TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
  TIM_ClearFlag(TIM2,TIM_FLAG_Update);
  TIM_Cmd(TIM2, ENABLE);                  //TIM2开启时钟
}
void TIM2_IRQHandler(void)
{         
        GPIO_ResetBits(GPIOG, GPIO_Pin_12);
    GPIO_SetBits(GPIOG, GPIO_Pin_13);         
    TIM_ClearITPendingBit(TIM2, TIM_FLAG_Update);
}
 
 
 
 
 
 
 
收藏 评论2 发布时间:2013-5-16 09:14

举报

2个回答
废鱼 回答时间:2013-5-16 09:46:35

RE:最简单的闪灯进不了中断

仿真是否进入中断,另外,while里面一直在进行IO的操作,这个会影响的,而且速率又那么的快,连个延时都没有.
zylxcu 回答时间:2013-7-2 16:56:25

回复:最简单的闪灯进不了中断

回复第 2 楼 于2013-05-16 09:46:35发表:
仿真是否进入中断,另外,while里面一直在进行IO的操作,这个会影响的,而且速率又那么的快,连个延时都没有.
 
 
多谢管理员,学习一段时间回头看,情况是没开时钟,这个是致命的错误!!
 

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版