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

用STM32F103RET的PB8来做外部中断的问题

[复制链接]
wqlalala 发布时间:2013-3-28 19:24
       我做的一个板子上用STM32F103RET6的PB8的IO管脚来接收外部轻触按键输入的中断。我将这个PB8初始化并使能后运行,不去按轻触按键时发现程序总是不断的触发中断,使程序总是处于中断服务当中服务当中。下面是我的中断初始化和中断处理函数的代码,显示输出的计数器在不断的加一计数。这个PB8的管脚只连接了轻触按键,PB8通过10K电阻上拉到3.3V。我用示波器探了这个PB8也没发现有触发中断的脉冲产生,是一个平稳的3.3V。不知道出了什么问题,还望路过的大侠指点小弟。
% f$ r' d. s$ w% ?! }- N7 U7 }: s5 e, [
    void Exti_IOPort_Init(void)
* N9 h& G- n( u1 W{
7 ~" l4 i% }) e0 f, n        EXTI_InitTypeDef EXTI_InitStructure;/ i3 ]% S; p/ q6 W/ r4 N" Z: A
        NVIC_InitTypeDef NVIC_InitStructure;) [3 d1 Q* V4 ]! `- R2 [+ y
          D  z# U" T1 t; W" z. K5 R( T
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource8);6 I4 }" W) z2 o1 k
0 J5 f/ d& z0 m9 Z
        EXTI_InitStructure.EXTI_Line =EXTI_Line8;0 F+ M- l1 N$ I) ?2 _: I' h
        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
6 o! s0 m% v& F, N        EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
9 L& X3 X7 D( c& m- c3 J        EXTI_InitStructure.EXTI_LineCmd = ENABLE;
! F' ^5 d+ ~# E: d# @        EXTI_Init(&EXTI_InitStructure);$ |! O& v$ x4 t7 \, w2 \
5 E9 r  w" C3 P0 u! [3 v2 I3 |
        NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
6 L. t) r# @2 Y0 t/ k8 f        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;
3 l  `2 @# }0 U% U+ o& x        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
0 {4 f# e, X1 `! @3 U: Q6 x5 j0 z        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;* Q9 I9 U2 z0 N- ]/ P& s
        NVIC_Init(&NVIC_InitStructure);
+ s! N4 X$ l2 p6 `}  V1 d" c3 w! n% O
0 z8 N$ P# @6 _% \: v9 w$ p8 D
void EXTI9_5_IRQHandler(void)' t# o" n' G4 e! B) Q
{
0 W" R' ]6 q# \( I1 v        unsigned short Itemp;
7 R: Y0 e# T  y  U! F4 K# j6 B! G        ITStatus ItState,FlagState;
9 k, Q  X. e+ [6 g
6 p% E) K6 C0 a        ItState = EXTI_GetITStatus(EXTI_Line8);( ?& K) @$ r0 |1 @
        FlagState = EXTI_GetFlagStatus(EXTI_Line8);
, B) p, M! m% D        
4 C$ F5 Z2 B) h        if((ItState != RESET) & (FlagState != RESET))" @+ ?' x, S2 Q1 m/ n
                {3 U7 m8 Q% E2 y. Y4 Q3 l
                KEY2_NUM++;
1 c' r2 U' ~& d& b$ d                EXTI_ClearITPendingBit(EXTI_Line8);
* |4 t  U% t# k- p                EXTI_ClearFlag(EXTI_Line8);/ t- X/ A2 ^' h6 Z6 \4 H
                ShowString88(3, 0, "K2 On!Count:");* i% D% ]4 u& b8 H, @
                ShowCharNum(3, 12, KEY2_NUM);7 w# w2 y( g1 Y
                }$ v! W. Z8 }* z! [% {9 l7 [+ y7 _
<span style="color: rgb(68, 68, 68); font-family: Tahoma, Helvetica, SimSun, sans-serif; line-height: 18px; background-color: rgb(238, 238, 238);">        for(Itemp=0;Itemp
赞 收藏 评论7 发布时间:2013-3-28 19:24

举报

7个回答
zykzyk-93033 回答时间:2013-3-28 20:35:03

RE:用STM32F103RET的PB8来做外部中断的问题

你的本意是按键按下中断,可是你设置的是EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;上升沿中断,这个就是原因了。换成EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;肯定可以了
wqlalala 回答时间:2013-3-29 08:58:18

回复:用STM32F103RET的PB8来做外部中断的问题

        这个 EXTI_InitStructure.EXTI_Trigger我也改成EXTI_Trigger_Falling试过,结果还是一样的现象。我在电路上另外还有个一个轻触按键,也是一样的电路,只是连接到了PA0上,用 EXTI_InitStructure.EXTI_Trigger = Rising是没问题的的,每次按下去就产生一次中断。另外从理论上来分析的话,上下沿触发应该都是可以的,只是触发的时间是不一样的,一个是在按键按下的时候触发,一个是在按键按下去后等弹回来的时候触发。就是设置成上升沿触发,我按键不按下去,也不会产生上升沿电平,应该一直都是3.3V电平,就不会触发中断产生才对。
' D9 M. \1 t# ?/ |3 y* _! p' b       不过还是谢谢二楼的建议。
wallwall1111 回答时间:2015-6-9 14:16:17
请问你的问题解决了吗?我也遇到一个类似的问题 7 ^2 H7 z; K/ N
我用到了GPIOG0-5一共6个按键,当我按下任意一个按键时   有可能其他按键的中断也会产生,我同样用示波器观察了STM32的引脚,都是稳定在3.3V。奇了怪了!/ s3 R! M/ _. Z1 N1 u) T- y
求指导!
novemer 回答时间:2015-6-21 00:43:50
wallwall1111 发表于 2015-6-9 14:166 o2 k1 I3 X, G% E9 e. H
请问你的问题解决了吗?我也遇到一个类似的问题
4 ?& ]/ y! u. r: U+ W: n' M我用到了GPIOG0-5一共6个按键,当我按下任意一个按键时    ...

5 y6 s: r- k: k3 D1 D8 I2 B3 A1 P- B我也遇到这个问题了,区别是一直进中断,每次都清标志了,还是不停的进,诶。
chuxiaobo 回答时间:2017-6-5 15:09:48
http://www.eeboard.com/bbs/thread-4763-1-1.html请参考该文,时钟问题
chuxiaobo 回答时间:2017-6-5 15:10:25
http://www.eeboard.com/bbs/thread-4763-1-1.html请参考该文,时钟问题
zhao.zhao 回答时间:2017-6-5 17:40:38
基本可以判断为PA8的上拉电阻没焊好

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版