10回答

0收藏

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

STMCU STMCU 7351 人阅读 | 10 人回复 | 2012-11-23

本帖最后由 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管脚 能进入中断,加按键就不行啦。
心中有曲自然嗨!!!
分享到:
回复

使用道具 举报

回答|共 10 个

倒序浏览

沙发

hxz0123

发表于 2012-11-23 22:22:57 | 只看该作者

顶一下,请高手帮解决
轻轻地
    我走了
       正如我轻轻地来
挥一挥衣袖
   不带走一片云彩
我的博客:http://blog.timcu.com/
板凳

陈克雄

发表于 2012-11-24 01:25:48 | 只看该作者

这不科学啊,暂时没发现什么错误,Mark一下,等起床了上板子试试
地板

MMzhang-319191

发表于 2012-11-24 08:20:12 | 只看该作者

Kite 发表于 2012-11-24 01:25
这不科学啊,暂时没发现什么错误,Mark一下,等起床了上板子试试

快啊
心中有曲自然嗨!!!
5#

MMzhang-319191

发表于 2012-11-24 08:20:37 | 只看该作者

exiao 发表于 2012-11-23 22:22
顶一下,请高手帮解决

心中有曲自然嗨!!!
6#

陈克雄

发表于 2012-11-24 16:59:54 | 只看该作者

应该是下降沿触发吧,试试把上拉改成浮空输入
7#

陈克雄

发表于 2012-11-24 17:10:07 | 只看该作者

已经解决了吗{:soso_e153:}
8#

MMzhang-319191

发表于 2012-11-25 10:00:48 | 只看该作者

Kite 发表于 2012-11-24 17:10
已经解决了吗

恩  呵呵
心中有曲自然嗨!!!
9#

MMzhang-319191

发表于 2012-11-27 14:23:28 | 只看该作者

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

开始我就那么写的  ,就是进不去中断。然后我改成后面的那样就好啦,可以进入中断。
心中有曲自然嗨!!!
10#

MMzhang-319191

发表于 2012-11-27 14:29:24 | 只看该作者

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

我这么理解啊。如果内部上拉,那么你按下按键,还是上拉,因为按键接3.3V和5V,所以一直进不去中断,不知这样理解对不啊?
心中有曲自然嗨!!!
您需要登录后才可以回帖 注册/登录

本版积分规则

本科生
2079 积分
41 主题
+ 关注
关闭

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