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

【STM8-SO8-DISCO】+ (2)EXIT中断中做按键去点灯

[复制链接]
damiaa 发布时间:2019-1-22 15:54
本帖最后由 damiaa 于 2019-1-23 15:43 编辑 % U- u) `+ c8 n( Q
0 w- i! \; S2 x) @! u$ K
                                          【STM8-SO8-DISCO】+(2) EXIT做按键点灯4 ^+ v5 b6 @2 B* Q+ V; B9 C  g) V% c
- ]# ]9 M1 ~8 Q( W/ ~
目的:为了验证STM8S001的IO EXTI功能,做个实验就是按下键改变灯的状态。0 V$ Z+ Q) s1 e/ i
1,在上个项目【STM8-SO8-DISCO】+ 基本定时器四中点灯的基础上改写
- r5 {9 v9 t% q0 g; e1 _1 S
# i8 `- T0 c' N6 L. r/ S
2,根据原理图和资料定义按键
  1. #define USER_BUTTON_GPIO_PORT  (GPIOC)) e2 R$ K  I$ v
  2. #define USER_BUTTON_GPIO_PINS (GPIO_PIN_3) //这里可以设置为PC3,PC4,PC5中任何一个。
复制代码
3,定义一个EXIT的初始化函数:
2 Y' K+ W: O/ V  t3 m( r+ \) _
  1. void Exit_Init()4 \$ n/ [& F9 ]1 c. J& Q+ y$ s
  2. {
    4 B0 L- d& ]5 w# k& q5 |. \" G
  3.   GPIO_Init(USER_BUTTON_GPIO_PORT, (USER_BUTTON_GPIO_PINS),GPIO_MODE_IN_FL_IT);//GPIO初始化7 j: r. O3 W( K1 z) t! p( \0 Z
  4. /* Initialize the Interrupt sensitivity */4 i3 M+ J6 s" f! d% ?; ?. M$ T
  5.   EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOC, EXTI_SENSITIVITY_FALL_ONLY);//EXIT 外部中断触发设置下降沿触发
    2 {8 O/ v" J1 s  `1 U; k- _' a1 z$ p
  6.   //EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_FALL_ONLY); stm8s001 没有最高外部中断IO PD7
    . N7 H' W! c6 N6 ^) O* b
  7.   enableInterrupts();
      x7 _) W4 u6 X% p0 C! r8 S! t
  8. }  
复制代码

- i' t% j7 s  v& F: J% B. o1 j4,中断里找到下面函数加入LED1_Toggle();
( q3 `' `9 p. W" L' V8 _, z3 C8 @
  1. INTERRUPT_HANDLER(EXTI_PORTC_IRQHandler, 5)
    3 S. O2 O7 S) y* {+ d* }% h# X
  2. {
    4 f6 g$ Y* H0 d: W
  3.   /* In order to detect unexpected events during development,8 S! F" u/ x, O3 u5 j* O+ y: T
  4.      it is recommended to set a breakpoint on the following instruction.
    6 m8 y. G. b5 B% s2 w
  5.   */
    5 I! O5 H# P. ?4 i; G
  6.     LED1_Toggle();. }' ^3 t- A/ R3 R9 n& E
  7. }
复制代码
5,注销到原来TIM4中断中的内容(避免效果不好)。/ q' c) z) {+ |
  1. INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23)
    , H$ |. y* i. m  ]( O: P3 N
  2. {" l7 K' a, o, y9 Y& s; l7 V  i
  3.   /* In order to detect unexpected events during development,
    4 J2 D  B. d- u: S) S
  4.      it is recommended to set a breakpoint on the following instruction.# }5 R- ?( F3 U
  5.   */" E9 j5 N- A4 x; p7 Z. h' Z$ A
  6. // static uint16_t tims=0;2 T. w; E4 v  y8 }/ n, H/ f
  7. // tims++;- `9 d2 ^3 \3 b  [. }
  8. // if(tims >5000)
    0 ]% S/ U/ A: x( x. i
  9. // { & A& F3 B2 _% t) Y
  10. //   tims =0;* X* I* Z! V- v* A( A5 B
  11. //   LED1_Toggle();
    3 @2 {' F( z, F7 ~' U1 i+ p0 P
  12. // }) U" g" H0 Y  i, A7 M# a* @4 k% }
  13. }
复制代码
/ H2 w3 v8 F0 s0 `
QQ图片20190122155339.png - v3 G( k3 x$ z* m/ a* i' l1 M
& C; y) a3 F. R8 ~
6,编译调试试验。
; g: |& [  Y& y% [3 U' K- | 微信图片_20190122155459.jpg - X5 \- N. z/ R$ A
微信图片_20190122155503.jpg / N6 m. N1 K/ P( k  C# x/ p6 H8 C/ R
7,代码
& y: V- E/ o  j+ w# U7 [ stm8s001test.zip (4.37 MB, 下载次数: 6)
赞 收藏 1 评论0 发布时间:2019-1-22 15:54

举报

0个回答

所属标签

相似技术帖

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