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

查看: 1155|回复: 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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版