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

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

[复制链接]
damiaa 发布时间:2019-1-22 15:54
本帖最后由 damiaa 于 2019-1-23 15:43 编辑
9 _$ \, H6 O8 ~' [+ r& k0 K1 T$ r7 H9 e5 w) ~
                                          【STM8-SO8-DISCO】+(2) EXIT做按键点灯
! [- C! i. C4 q' m6 Q& p$ J
: Y0 L. k- G2 _4 U  p7 p目的:为了验证STM8S001的IO EXTI功能,做个实验就是按下键改变灯的状态。
: K7 r( N1 C! J. m7 N1,在上个项目【STM8-SO8-DISCO】+ 基本定时器四中点灯的基础上改写
2 A5 {! D7 J# w3 D/ K
: {2 [+ c8 f. l- }
2,根据原理图和资料定义按键
  1. #define USER_BUTTON_GPIO_PORT  (GPIOC)
    9 t& J& Q3 V" Y5 Z: U
  2. #define USER_BUTTON_GPIO_PINS (GPIO_PIN_3) //这里可以设置为PC3,PC4,PC5中任何一个。
复制代码
3,定义一个EXIT的初始化函数:
2 ^2 m/ V" {. S4 Z
  1. void Exit_Init()" p5 M. @7 {+ P4 \7 Q- h
  2. {
    1 \" m  Q/ \1 z
  3.   GPIO_Init(USER_BUTTON_GPIO_PORT, (USER_BUTTON_GPIO_PINS),GPIO_MODE_IN_FL_IT);//GPIO初始化- }1 w! g9 F  B, N& n% d5 |4 s4 w" |
  4. /* Initialize the Interrupt sensitivity */" p1 |) C+ `! h+ `
  5.   EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOC, EXTI_SENSITIVITY_FALL_ONLY);//EXIT 外部中断触发设置下降沿触发
    ' Q8 ~: ^& e0 r- c9 q- ~: `
  6.   //EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_FALL_ONLY); stm8s001 没有最高外部中断IO PD7 4 ?3 O8 J7 c. w
  7.   enableInterrupts();
    5 H) D  G2 N- d; W; Q4 u* \/ L$ A
  8. }  
复制代码

8 J! I0 I; _2 E/ {" c! T5 ?4,中断里找到下面函数加入LED1_Toggle();
, p2 @4 {$ M: F* h- o2 b  ]+ ?
  1. INTERRUPT_HANDLER(EXTI_PORTC_IRQHandler, 5)/ @# R. F3 z8 L# S2 E
  2. {6 h8 l" l+ O0 C+ X
  3.   /* In order to detect unexpected events during development,
    9 x" h, a+ a4 M7 c
  4.      it is recommended to set a breakpoint on the following instruction.+ z+ y* O) p0 P% R% F6 I/ G( F7 K6 C
  5.   */4 Q6 Y/ A+ x$ `3 C4 w
  6.     LED1_Toggle();0 i3 r" t7 ?- c/ `, r, t
  7. }
复制代码
5,注销到原来TIM4中断中的内容(避免效果不好)。; b/ K9 j, I0 V% N; b1 N
  1. INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23), m4 t; B+ G3 Z6 }- q
  2. {3 L) y3 a) m* E( a- w4 b& \' E
  3.   /* In order to detect unexpected events during development,: c, r/ C: w) M# h" j* m8 f
  4.      it is recommended to set a breakpoint on the following instruction.
    3 u3 [; e0 [) p) s0 r
  5.   */
    + X8 b  p5 M6 L, b' @$ ~: k
  6. // static uint16_t tims=0;9 s4 u& Y/ x" r. J3 W
  7. // tims++;8 J2 A; c& _& F: W: ~0 B
  8. // if(tims >5000)
    " k8 Q0 r8 Y' _( b" k  L
  9. // {
    4 g0 n# b. a$ W( m, L
  10. //   tims =0;& m5 G* N- c% u7 p8 i" Y
  11. //   LED1_Toggle();9 P8 F+ L! o, {0 a3 L% T$ j
  12. // }  S% @% G; c/ F5 ]' ]. \0 g1 n; f
  13. }
复制代码
+ Q  i+ m; P. f. ?8 s7 b
QQ图片20190122155339.png
$ x) ^( m1 J% z; ?1 |# a1 L% l1 [9 K7 B
6,编译调试试验。/ @8 r; @3 m+ o) M- n2 s
微信图片_20190122155459.jpg
+ I2 O, O7 a( q! @! N: x 微信图片_20190122155503.jpg   `2 s- J, h: J# b
7,代码
5 |- I8 s" A/ l7 i' Y, U stm8s001test.zip (4.37 MB, 下载次数: 4)
收藏 1 评论0 发布时间:2019-1-22 15:54

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版