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

STM32F411【Nucleo】第四课--按键轮询模式(基于keil5.13)

[复制链接]
颩色四葉愺 发布时间:2015-2-4 19:38
本帖最后由 颩色四葉愺 于 2015-2-4 19:42 编辑
+ o* o2 {& k# y: |
) K) L* b+ ?; M' X3 y通过轮询的方式检测按键是否按下,若按键按下则板载led灯的状态就反转
$ J: M. W" O3 _% P* y9 m2 N4 I9 u/ E2 d% ~
(1)建立工程,新建工程的步骤就不说了!请参考我之前的帖子:STM32F411【Nucleo】第一课--新建工程(基于keil 5.13)' a3 u: [3 D. q! A, z
(2)添加led相关文件,参考我写的led驱动
, |# G+ E; P# B1 i& HSTM32F411【Nucleo】第二课--led灯(基于keil5.13)
. q1 G, p8 c. _( ]添加延时相关函数,利用SysTick定时器精确延时,参考帖子8 \) |4 _* W  N9 Z' T9 N  ~
STM32F411【Nucleo】第三课--sysTick定时器(基于keil5.13)
) n' G( f; L( y% d(3)新建bsp_key.c 和bsp_key.h
7 B* C$ P/ l) l4 L2 j/ c0 R* {9 Obsp_key.c
7 A: j3 _! g0 {+ l) [" p
  1. #include "bsp_key.h"
    - H( n8 v6 a( P! N; J+ M. K
  2. ) C, Z( E- n. v
  3. void KEY_Init(void)
    1 n+ T" D2 Z. i. z8 e
  4. {6 Q6 f, C+ G0 p+ h/ _
  5.         GPIO_InitTypeDef GPIO_InitStructure;! H7 o& X% L4 m% F) X9 D4 b
  6.         ( _  `7 f7 Y6 k3 L+ J
  7.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE);+ ?1 {& a( H. ~! X2 X
  8.         /******使能GPIOC时钟*****/- K; t" L0 p  d5 S
  9.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;! T0 Y5 |/ g6 b' S
  10.         /******KEY对应引脚*****/& j( d9 K% K; z
  11.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;0 s* y$ G1 e# w: C9 S& P( d* {
  12.         /******普通输入模式*****/% w' i% N% ]; M6 W
  13.         GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;3 G; W% z* q& G: ^3 \& ?
  14.         /*****上拉******/- @! k. j/ H  M
  15.         GPIO_Init(GPIOC,&GPIO_InitStructure);
    , w* I0 B/ V! d* H1 ], h
  16.         /******初始化PC13*****/
    0 R6 D- p8 v/ ?
  17. }
复制代码

+ e, T, [* D& j6 F0 }6 W; absp_key.h* ^9 v5 o- q9 A
  1. #ifndef _BSP_KEY_H_& B- N6 ^$ H4 A- o1 \
  2. #define _BSP_KEY_H_4 M* K( y( ^* L' _6 d7 ]
  3. #include "stm32f4xx.h"& Q. {  a) {& D# V
  4. 7 P) I) M, Q- V' }- K  f* \
  5. #define KEY GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)7 k& ~6 T8 q- m& T* `

  6. - k. m- w1 D# L; f9 @4 T! C/ ?$ n
  7. void KEY_Init(void);! k3 h% H( b$ ]3 d* D
  8.         ( m( s1 [! G2 F+ X' D" ~* J
  9. #endif
复制代码

+ y1 {0 ?. s; f# n- l2 r: C* I编译下载后,按下按键就能看到led灯状态反转了, i7 |1 \$ r- J9 u/ _) w" p+ Y
4.按键(轮询方式).zip (8.96 MB, 下载次数: 226)
赞 收藏 1 评论5 发布时间:2015-2-4 19:38

举报

5个回答
湮灭-422015 回答时间:2015-2-4 19:56:18
顶!!!!
沐紫 回答时间:2015-2-5 09:51:46
非常好,谢谢楼主
112207301219 回答时间:2015-7-28 13:40:57
感谢分享/ B3 e9 a: e* {& J" i
yanhaijian 回答时间:2015-7-28 18:14:26
来劲了,真的停不下来。
huaimaoatangge 回答时间:2018-8-20 17:32:37
顶一个!!!!!

所属标签

相似技术帖

官网相关资源

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