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

查看: 1097|回复: 2

最简单的闪灯进不了中断

[复制链接]

3

主题

13

回帖

0

蝴蝶豆

初级会员

最后登录
1970-1-1
发表于 2013-5-16 09:14:43 | 显示全部楼层 |阅读模式
 #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);
}
 
 
 
 
 
 
 
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2013-5-16 09:46:35 | 显示全部楼层

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

仿真是否进入中断,另外,while里面一直在进行IO的操作,这个会影响的,而且速率又那么的快,连个延时都没有.
回复 支持 反对

使用道具 举报

3

主题

13

回帖

0

蝴蝶豆

初级会员

最后登录
1970-1-1
 楼主| 发表于 2013-7-2 16:56:25 | 显示全部楼层

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

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

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版