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

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

[复制链接]
damiaa 发布时间:2019-1-22 15:54
本帖最后由 damiaa 于 2019-1-23 15:43 编辑   v! b$ o9 ~; x& q. h8 z$ Q4 ~7 r8 }6 o
- |4 S# ~& C; y1 {6 w3 F
                                          【STM8-SO8-DISCO】+(2) EXIT做按键点灯4 A2 l& `7 S; ]* D
! n/ J1 Y1 o/ W* s/ x
目的:为了验证STM8S001的IO EXTI功能,做个实验就是按下键改变灯的状态。8 q3 x" B8 y! D& F8 Y
1,在上个项目【STM8-SO8-DISCO】+ 基本定时器四中点灯的基础上改写
! p$ B1 u4 k/ _, B9 K! S% H

8 b4 m& p. \/ Q  {( u2,根据原理图和资料定义按键
  1. #define USER_BUTTON_GPIO_PORT  (GPIOC)2 Z$ {2 ]$ F( v! y
  2. #define USER_BUTTON_GPIO_PINS (GPIO_PIN_3) //这里可以设置为PC3,PC4,PC5中任何一个。
复制代码
3,定义一个EXIT的初始化函数:
5 y6 ], X+ t* H  Z% k8 V
  1. void Exit_Init()
    4 ~# c% j6 p. G
  2. {/ V  E9 ], [& \4 L# ?3 A
  3.   GPIO_Init(USER_BUTTON_GPIO_PORT, (USER_BUTTON_GPIO_PINS),GPIO_MODE_IN_FL_IT);//GPIO初始化
    . ]& K* q4 F' T; F( b1 t+ N* g8 w8 f
  4. /* Initialize the Interrupt sensitivity */
    * C& [5 h0 J5 \3 H, I9 V
  5.   EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOC, EXTI_SENSITIVITY_FALL_ONLY);//EXIT 外部中断触发设置下降沿触发
    $ Q4 I+ D1 j7 U8 _: ~0 \6 ?
  6.   //EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_FALL_ONLY); stm8s001 没有最高外部中断IO PD7
    & Q! S$ i+ T7 O6 u
  7.   enableInterrupts();
    % u7 P- t6 j+ j0 K/ o/ S
  8. }  
复制代码

4 B9 Q% K0 S8 h$ \! d* _: @7 t4,中断里找到下面函数加入LED1_Toggle();
& z% B5 S! p9 q+ t
  1. INTERRUPT_HANDLER(EXTI_PORTC_IRQHandler, 5)
    * P0 q6 B$ x8 q7 g) [. i( {4 h
  2. {: Y3 p, f6 g0 j& u) Y4 S
  3.   /* In order to detect unexpected events during development,
    ; O9 r+ A" r9 l4 t
  4.      it is recommended to set a breakpoint on the following instruction.) a+ A& A& L1 t
  5.   */
    3 P7 F) L; e9 Q1 `" c
  6.     LED1_Toggle();  r% t$ _" I# T: B
  7. }
复制代码
5,注销到原来TIM4中断中的内容(避免效果不好)。
* y% f( E9 _0 n0 A1 B6 z
  1. INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23)
    , B- k  z+ W8 W1 N' a0 C- D) F5 l
  2. {
    ! r- ?0 l) \4 q3 G% o1 y
  3.   /* In order to detect unexpected events during development,% o0 ~/ `5 b  B6 W  G$ Z& s: K
  4.      it is recommended to set a breakpoint on the following instruction.
    - W  C7 O! r7 m; V  N
  5.   */
    1 U8 A9 s7 T3 |7 ^- p4 m
  6. // static uint16_t tims=0;
    2 B; a4 a3 ^0 A4 E: Z3 D( B' b
  7. // tims++;  b2 n! ]' I) u1 a4 A/ P. |
  8. // if(tims >5000)8 ]" ^! h+ v# Z
  9. // {
    " T- c( f! G6 w, ?& y
  10. //   tims =0;1 l' _, m6 T5 A  [% s% ~# O( Y
  11. //   LED1_Toggle();2 I$ t8 O: ?- o, [$ C4 C
  12. // }
    , U# A' h9 G  D( X
  13. }
复制代码
4 x% {/ W5 `+ q
QQ图片20190122155339.png - h- k  ~' m, J$ @  z

% p0 I7 B7 j) J6,编译调试试验。
: X  K* n9 o- h  r2 o$ \ 微信图片_20190122155459.jpg " ^& S3 f. j# X, f& \( v
微信图片_20190122155503.jpg
4 q  E( `! z/ Q8 v" Z7 x7,代码/ M/ ?2 z# y0 G7 `7 N& D: W6 D
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 手机版