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

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

[复制链接]
damiaa 发布时间:2019-1-22 15:54
本帖最后由 damiaa 于 2019-1-23 15:43 编辑
2 B0 ~- ^- |2 l% a" Y
* \5 K. d6 }" Y+ L& E                                          【STM8-SO8-DISCO】+(2) EXIT做按键点灯
! X9 G, w( J5 i; x( F
8 S; C+ p& s/ [" G9 c$ f目的:为了验证STM8S001的IO EXTI功能,做个实验就是按下键改变灯的状态。
: W( j) Y/ I2 P' \4 Y" j1,在上个项目【STM8-SO8-DISCO】+ 基本定时器四中点灯的基础上改写
0 y) p0 r" A3 [+ A" B" i7 B6 y6 y
( k0 U* K) m9 l* e' a. _
2,根据原理图和资料定义按键
  1. #define USER_BUTTON_GPIO_PORT  (GPIOC)
    ' _2 h* q7 g( y6 p8 ^: [+ L7 ]
  2. #define USER_BUTTON_GPIO_PINS (GPIO_PIN_3) //这里可以设置为PC3,PC4,PC5中任何一个。
复制代码
3,定义一个EXIT的初始化函数:) n7 }3 N9 x- J  @. p
  1. void Exit_Init()
    + a8 f# w  i% `6 ?5 }, v0 C* Q0 _- B
  2. {# U/ S; H/ [3 ~, C3 ~* a
  3.   GPIO_Init(USER_BUTTON_GPIO_PORT, (USER_BUTTON_GPIO_PINS),GPIO_MODE_IN_FL_IT);//GPIO初始化7 Y! [+ d" D9 H
  4. /* Initialize the Interrupt sensitivity */
    8 p/ c& Q" T  j( D. I. r9 ^
  5.   EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOC, EXTI_SENSITIVITY_FALL_ONLY);//EXIT 外部中断触发设置下降沿触发
    " t' e7 \1 f. w( c. V6 M6 a
  6.   //EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_FALL_ONLY); stm8s001 没有最高外部中断IO PD7 & ]1 V  m* A5 J8 o2 F  p( W  F: _
  7.   enableInterrupts();
    2 t. k9 [0 Q& l! H, e- ]1 b5 A
  8. }  
复制代码
( _4 M6 N# o! ~7 J9 l9 O
4,中断里找到下面函数加入LED1_Toggle();
( _1 E9 z3 f7 m  n$ z0 j+ i2 R
  1. INTERRUPT_HANDLER(EXTI_PORTC_IRQHandler, 5)
    & Z9 S' j  Z  l  m: h
  2. {2 l8 l; Z$ H, R: L; S: v
  3.   /* In order to detect unexpected events during development,
    ' X- O9 M) A: Y  P
  4.      it is recommended to set a breakpoint on the following instruction.$ m" T& d# Z# E  T! L" m2 z
  5.   */9 W  }7 @. T* q. c2 |# x
  6.     LED1_Toggle();3 O. a; `* h5 a3 p+ a  y
  7. }
复制代码
5,注销到原来TIM4中断中的内容(避免效果不好)。/ I, m  r: b& M8 t. X
  1. INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23)$ \/ F2 j4 N5 |( Y. G  C6 `# p
  2. {
    3 y. G! [, n) L4 W% D
  3.   /* In order to detect unexpected events during development,
    ( p( t' }+ o2 ~6 s% `$ y
  4.      it is recommended to set a breakpoint on the following instruction.4 J0 |9 e% d( \$ Z4 a7 c6 G( b$ N; Z
  5.   */& T0 H/ D4 O& Z- s, I- |5 g. X
  6. // static uint16_t tims=0;
      {6 k+ ?" ?" L, j: t  I4 a& l7 e
  7. // tims++;5 v8 u( `0 p8 H% N
  8. // if(tims >5000)( K- e, w0 `9 v) c6 k! E) R
  9. // { ! f* k" M6 y  l" E6 f
  10. //   tims =0;: K2 H; z6 a/ ~& m2 g* X. _* ~+ f
  11. //   LED1_Toggle();
    " b# j4 M3 U3 G; r3 U3 ^- `  ]
  12. // }8 Z: Z8 R6 V; ]" K( n* K. m8 \! ^
  13. }
复制代码
/ t6 m$ x( m( E$ H
QQ图片20190122155339.png
2 i  k! j2 v1 ~$ T! z
% `4 l  n  R7 m$ E& J, H6,编译调试试验。
2 z6 ?/ Z% a( Z. a4 N 微信图片_20190122155459.jpg
7 q; S. K& O) q. i: N& }2 T 微信图片_20190122155503.jpg
& v; }0 a. C1 k& S2 ~% |7,代码- J" [; \/ g1 l6 |, H$ F( H  X9 v1 F
stm8s001test.zip (4.37 MB, 下载次数: 4)
收藏 1 评论0 发布时间:2019-1-22 15:54

举报

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