打印

求帮助啊,调了好几天就是进不了中断

[复制链接]
1824|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dream-yi|  楼主 | 2012-5-15 00:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pi, IO, GPIO, gp, rc
本帖最后由 dream-yi 于 2012-5-15 00:08 编辑

u8  FLAG; //在线调试标志
void RCC_Config(void)
{
  ErrorStatus HSEStartUpStatus;
  RCC_DeInit();
  RCC_HSEConfig(RCC_HSE_ON);
  HSEStartUpStatus = RCC_WaitForHSEStartUp();
  if(HSEStartUpStatus == SUCCESS)
  {
   RCC_HCLKConfig(RCC_SYSCLK_Div1);
   RCC_PCLK2Config(RCC_HCLK_Div1);
   RCC_PCLK1Config(RCC_HCLK_Div2);
   RCC_ADCCLKConfig(RCC_PCLK2_Div6);
   FLASH_SetLatency(FLASH_Latency_2);
   FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
   RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);  //PLL 72M
   RCC_PLLCmd(ENABLE);
   while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
    {
    }
   RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
    while(RCC_GetSYSCLKSource() != 0x08)
    {
    }
  }
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);
}
void EXIT_Config(void)
{
   EXTI_InitTypeDef EXTI_InitStructure;
   GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource0);
   EXTI_ClearITPendingBit(EXTI_Line0);
   EXTI_InitStructure.EXTI_Line = EXTI_Line0;
   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
   EXTI_InitStructure.EXTI_LineCmd = ENABLE;                                          
   EXTI_Init(&EXTI_InitStructure);
  // EXTI_GenerateSWInterrupt(EXTI_Line0);      EXTI_Line0中断允许 (软件触发)  
}

void GPIO_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;    //申明GPIO_TimeBaseStructure
  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1 ;    //引用PA0和PA1
  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP ;       //设置引脚为推挽输出
  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz ;  //设置引脚最高输出速率50MHz
  GPIO_Init(GPIOA,&GPIO_InitStructure);              
  
  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;    //引用PC0
  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;   //设置引脚为上拉输入
  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz ;  //设置引脚最高输出速率50MHz
  GPIO_Init(GPIOC,&GPIO_InitStructure);           
}
void NVIC_Config(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;//定义结构体变量
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);     
  
  NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
  NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;   
  NVIC_Init(&NVIC_InitStructure);
  
}  
void delay_ms(int time)
{
  for(;time!=0;time--);
}  
void EXIT0_IRQHanlder(void)
{
FLAG=1;
if(EXTI_GetITStatus(EXTI_Line0) != RESET)
  {
   EXTI_ClearITPendingBit(EXTI_Line0);
   GPIO_ResetBits(GPIOA,GPIO_Pin_0);  
   GPIO_ResetBits(GPIOA,GPIO_Pin_1);
  }               
}

int main(void)
{
  RCC_Config();
  GPIO_Config();  
  NVIC_Config();   
  EXIT_Config();
  GPIO_SetBits(GPIOA,GPIO_Pin_0);           
  GPIO_SetBits(GPIOA,GPIO_Pin_1);  
  while(1);
}

问题是一直不进中断(标志一直是0)
小弟使用按键触发的(按键在PC0,外部未加上拉电阻)
为什么啊?请高手帮忙看看,谢谢了
沙发
dream-yi|  楼主 | 2012-5-15 11:46 | 只看该作者
今天突然发现是库的版本不兼容的问题造成的,呵呵,终于解决了。

使用特权

评论回复
板凳
jiayou0054| | 2012-5-19 00:13 | 只看该作者
你说的库的不兼容是什么意思呢?
我遇到过不进入中断的情况,是使用了错误的.s启动代码。.s代码,有MD,HD之分的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

47

帖子

0

粉丝