2772|2

5

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

进不去外部中断 [复制链接]

求前辈们帮忙看看我的中断设置函数,为什么就是进不去外部中断呢, EXTI_SWINT_Enable(EXTI_LINE1)设置为产生软件中断可以进去一次,之后用板子上的下降沿触发就进不去了,我用的是GD32的板子。
//时钟设置
void RCC_config(void)
{
    RCC_DeInit();
    /*未焊接外部晶振,不使能*/
    RCC_HSEConfig(RCC_HSE_OFF);
    /*选用内部8M高速晶振作为时钟源*///设备上电后,CPU默认选择的时钟源就是HSI时钟
    RCC_HSI_Enable(ENABLE);
       
    /*锁相环选取内部8M高速时钟分频,为2分频,再倍频18倍后输出为72M*/
//   RCC_PLLConfig(RCC_PLLSOURCE_HSI_DIV2, RCC_PLLMUL_18);
  /*锁相环选取内部8M高速时钟分频,为2分频,再倍频12倍后输出为48M*/
    RCC_PLLConfig(RCC_PLLSOURCE_HSI_DIV2, RCC_PLLMUL_12);

    RCC_PLL_Enable(ENABLE);
    while (RCC_GetBitState(RCC_FLAG_PLLSTB) == RESET)
    {
    }
    /*系统时钟选用PLL输出时钟48M*/
    RCC_CK_SYSConfig(RCC_SYSCLKSOURCE_PLLCLK);
    while (RCC_GetCK_SYSSource() != 0x08)
    {
    }
    /*AHB高性能总线选择系统时钟不分频    48M*/
    RCC_AHBConfig(RCC_SYSCLK_DIV1);
    /*APB1 外围总线1选择系统时钟不分频     48M*/
    RCC_APB1Config(RCC_APB1AHB_DIV1);
    /*APB2 外围总线2选择系统时钟不分频     48M*/
    RCC_APB2Config(RCC_APB2AHB_DIV1);   
}
void GPIO_config(void)
{
   RCC_AHBPeriphClock_Enable(RCC_AHBPERIPH_GPIOB, ENABLE);//电机的驱动端口
    GPIO_InitPara  GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Pin =GPIO_PIN_1;//PB1
    GPIO_InitStructure.GPIO_Mode  = GPIO_MODE_IN;
    GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;       
    GPIO_InitStructure.GPIO_OType = GPIO_OTYPE_PP;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PUPD_PULLUP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
}

void EXTI_config(void)//将IO口配置成外部中断口
{
EXTI_InitPara EXTI_InitStructure;
EXTI_ClearIntBitState(EXTI_LINE1);//清空中断标志
EXTI_ClearBitState(EXTI_LINE1);
EXTI_DeInit(&EXTI_InitStructure);
SYSCFG_EXTILine_Config(EXTI_SOURCE_GPIOB,EXTI_SOURCE_PIN1);//将PB1脚作为外部中断口       
EXTI_InitStructure.EXTI_LINE=EXTI_LINE1;//选择中断线路
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;//设置中断请求,非事件请求
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//设置中断出发方式为下降沿触发
EXTI_InitStructure.EXTI_LINEEnable=ENABLE;//外部中断使能
EXTI_Init(&EXTI_InitStructure);
EXTI_SWINT_Enable(EXTI_LINE1);//产生一个软件中断
}

void NVIC_config()//中断配置
{
    NVIC_InitPara NVIC_InitStructure;
    NVIC_VectTableSet(0x08000000,0x0000);
    NVIC_PRIGroup_Enable(NVIC_PRIGROUP_1);
    NVIC_InitStructure.NVIC_IRQ = EXTI0_1_IRQn;//
    NVIC_InitStructure.NVIC_IRQEnable = ENABLE;
    NVIC_InitStructure.NVIC_IRQPreemptPriority = 1;//数越小优先级越高,读温度的优先级一定要是最高
    NVIC_InitStructure.NVIC_IRQSubPriority = 0;
    NVIC_Init(&NVIC_InitStructure);
}

void System_config(void)
{
     RCC_config();//时钟初始化配置函数
     GPIO_config();//IO口配置`
     EXTI_config();//把I/O口设置成中断电路
     NVIC_config();//中断配置  
}



int i;
void EXTI0_1_IRQHandler(void)
{
  Delay_ms(10);
  if(EXTI_GetIntBitState(EXTI_LINE1)!=RESET)
  {
i=5;
  }
   EXTI_ClearBitState(EXTI_LINE1);
   EXTI_ClearIntBitState(EXTI_LINE1);
}



void main(void)                       
{
    Delay_ms(400);
    System_config();//外设配置
    while(1);
}


此帖出自ARM技术论坛
点赞 关注
 

回复
举报

5

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
求好心的前辈帮帮忙,万分感谢
此帖出自ARM技术论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
自己顶一下,千万别沉啊
此帖出自ARM技术论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表