请选择 进入手机版 | 继续访问电脑版

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

【STM32G4 NUCLEO G431RB】4.按键中断

[复制链接]
jundao721 发布时间:2019-9-14 18:52
   本来不想写这个测试了,在单片机应用中算是比较常规了,后来发现这一版库函数定义还是蛮复杂的,反正比我想的复杂。尤其是中断这块还得需要熟悉。这个测试为了实现按键中断翻转LED灯。这些资源板卡上都有。原理图截图如图1所示:
" h, S3 g. o+ f. k/ q, S2 c- @
   完成这个功能,就是初始化时钟,引脚定义,外部中断,写中断函数,基本就是这样。我研究了一下库函数,宏写的多,觉得读起来和移植都挺复杂的,就给改成原来熟悉的样子了,简化了一下。
     GPIO及中断初始化如下:
  
  1. GPIO_InitStruct.Pin = GPIO_PIN_13;
      E# k/ s* Y0 f8 ]2 N9 r
  2.     GPIO_InitStruct.Pull = GPIO_PULLDOWN;  K  F- k8 y/ p* X- v: ^
  3.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    1 X$ `9 `8 K/ u/ Y
  4.         /* Configure Button pin as input with External interrupt */1 f3 G+ e( e& j* _. q2 I
  5.     GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;; l1 ]' K0 V0 p  u( [. r

  6. . l3 q: K3 N. w2 X. {3 V% n8 t
  7.     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
    % d# J! R$ l2 y$ A
  8. 3 y' B  Y6 Z# {
  9.     (void)HAL_EXTI_GetHandle(&hpb_exti, EXTI_LINE_13);! Y2 r0 U& b/ I" e" }2 t. c
  10.     (void)HAL_EXTI_RegisterCallback(&hpb_exti, HAL_EXTI_COMMON_CB_ID,0);& i) F4 {0 L9 b+ @
  11. ! A; I' y9 X  X) g
  12.     /* Enable and set Button EXTI Interrupt to the lowest priority */. j2 D4 _' h( o4 S8 I5 [( C: y" D
  13.     HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0x00);. S' U2 J; z7 b6 r1 C0 d
  14.     HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
复制代码
, s( S* h' h0 T) T; x( u% k$ n
  调用外部中断Callback函数:
  1. void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)# E. X  Q2 f, t0 H# F' |. B
  2. {: Q: _  I- C8 }7 N
  3.   if (GPIO_Pin ==GPIO_PIN_13), C7 Q, q1 x) x5 m6 \
  4.   {( x' F& ~; V* C; U4 R, @6 f* g
  5. //    UserButtonStatus = 1;
    . y8 J% ?/ c5 _9 f3 n/ Q
  6.                 HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);' p* j" D% m3 ~* B- j6 [
  7.   }
    ) C$ e) c2 ]3 h
  8. }
复制代码
  哦,对了,在初始化main函数中,初始化一下LED引脚的初始状态。
  1. GPIOA->BSRR = GPIO_PIN_5;
复制代码
  这个测试主要就是熟悉外部中断的练习。
3 Z& f4 ]4 r% J: ^: p, F
  效果如图2所示:
$ ~0 ~' A5 }+ N. p) T" l

图1

图1

图2

图2
收藏 评论0 发布时间:2019-9-14 18:52

举报

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