查看: 5748|回复: 10

关于F0的板子外部中断(问题已解决)

[复制链接]
  • TA的每日心情
    奋斗
    2014-6-4 13:58
  • 签到天数: 188 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2012-11-23 22:13:14 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 zwj108 于 2012-11-24 09:10 编辑

    下面是我配置外部中断的代码,那里有问题啊,为什么进不去中断啊{:soso_e118:}
    void exti_init(void)
    {
    EXTI_InitTypeDef EXTI_InitStruct;
    GPIO_InitTypeDef GPIO_InitStruct;
    NVIC_InitTypeDef NVIC_InitStruct;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE); //系统配置寄存器时钟
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);    //IO口时钟使能

    /*IO口初始化*/
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;              //选择IO口
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN;             //输入模式
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_Level_2;    //翻转速度
    GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;            //上拉
      GPIO_Init(GPIOA, &GPIO_InitStruct);

    /*外部中断初始化设置*/
    SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);  //外部中断源设置
    EXTI_InitStruct.EXTI_Line=EXTI_Line0;          //外部引线1
      EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;       //外部中断
    EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Falling;   //下降沿触发中断
      EXTI_InitStruct.EXTI_LineCmd=ENABLE;                   //开启中断
    EXTI_Init(&EXTI_InitStruct);                        //初始化

    /*中断嵌套初始化*/
    NVIC_InitStruct.NVIC_IRQChannel=EXTI0_1_IRQn;      //0-1频道
    NVIC_InitStruct.NVIC_IRQChannelPriority=0;         //优先级0
    NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;       //开启
    NVIC_Init(&NVIC_InitStruct);
    }
    结合F0的板子,使用用户按键进不去中断,上述代码有两处问题,
    1.F0的板子用户按键使用3.3V和5V上拉,所以在使用时PA0口的输入模式应设置为下拉模式即
    GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_DOWN;
    2.触发中断就使用上升沿触发即
    EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Rising;
    这就是我为什么用万用表笔触碰PA0管脚 能进入中断,加按键就不行啦。
    回复

    使用道具 举报

  • TA的每日心情

    2015-2-14 09:02
  • 签到天数: 656 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-11-23 22:22:57 | 显示全部楼层
    顶一下,请高手帮解决
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-26 01:52
  • 签到天数: 120 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2012-11-24 01:25:48 | 显示全部楼层
    这不科学啊,暂时没发现什么错误,Mark一下,等起床了上板子试试
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-6-4 13:58
  • 签到天数: 188 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2012-11-24 08:20:12 | 显示全部楼层
    Kite 发表于 2012-11-24 01:25
    这不科学啊,暂时没发现什么错误,Mark一下,等起床了上板子试试

    快啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-6-4 13:58
  • 签到天数: 188 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2012-11-24 08:20:37 | 显示全部楼层
    exiao 发表于 2012-11-23 22:22
    顶一下,请高手帮解决

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-26 01:52
  • 签到天数: 120 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2012-11-24 16:59:54 | 显示全部楼层
    应该是下降沿触发吧,试试把上拉改成浮空输入
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-26 01:52
  • 签到天数: 120 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2012-11-24 17:10:07 | 显示全部楼层
    已经解决了吗{:soso_e153:}
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-6-4 13:58
  • 签到天数: 188 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2012-11-25 10:00:48 | 显示全部楼层
    Kite 发表于 2012-11-24 17:10
    已经解决了吗

    恩  呵呵
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-6-4 13:58
  • 签到天数: 188 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2012-11-27 14:23:28 | 显示全部楼层
    powerdruy 发表于 2012-11-27 09:58
    明明就应该是下降沿触发中断吧,内部上拉,按键时就下拉,然后进中断,一般的玩按键的不都是这样么 ...

    开始我就那么写的  ,就是进不去中断。然后我改成后面的那样就好啦,可以进入中断。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-6-4 13:58
  • 签到天数: 188 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2012-11-27 14:29:24 | 显示全部楼层
    powerdruy 发表于 2012-11-27 09:58
    明明就应该是下降沿触发中断吧,内部上拉,按键时就下拉,然后进中断,一般的玩按键的不都是这样么 ...

    我这么理解啊。如果内部上拉,那么你按下按键,还是上拉,因为按键接3.3V和5V,所以一直进不去中断,不知这样理解对不啊?
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-29 16:21 , Processed in 0.170023 second(s), 32 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.