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

STM32F411【Nucleo】第二课--led灯(基于keil5.13)  

[复制链接]
颩色四葉愺 发布时间:2015-2-1 12:38

% X) k0 D  M$ l3 W- u
% ]7 Q$ v3 q* O% w2 d3 w(1)查看板子的原理图,板子上的led灯即led2接的是PA5.* G. x- e; U, x4 Q) F2 H

& x% g8 G/ \+ L8 w' N  P(2)建立工程,新建工程的步骤就不说了!请参考我之前的帖子:* R( c( z( v) f6 ?3 `  B5 n) \% Z
STM32F411【Nucleo】第一课--新建工程(基于keil 5.13)1 _  `" `% _% `/ L- C0 c8 k6 {+ E& n
(3)新建两个文件  分别为bsp_led.c    bsp_led.h 记得要把C文件加载到工程中,还有头文件路径要加上不然会出现编译出错的!代码如下:
( q" }) x$ p/ T) {bsp_led.c:
" `9 b) B# N# A
  1. #include "bsp_led.h"
    1 f5 X7 I8 G8 }9 n) f% ?& M* _  ^

  2. : `8 I* A' v$ b/ H- N8 E8 y
  3. void LED_GPIO_Config(void), n& U8 J; ?' H* q2 }! i
  4. {0 h6 G( ^: a- U$ \* R- c# v
  5.         GPIO_InitTypeDef GPIO_InitStructure;
      x3 m1 ]5 F3 y% u3 p4 F9 i
  6.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//使能LED灯IO时钟
    / K- Q+ S3 P' l% v3 \
  7.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;                                //选定引脚
    , C4 N. \: G8 h/ x, Q
  8.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;                        //设置为普通输出
    & k- J. M3 x9 a# n
  9.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;        //输出频率为100MHz
    5 D8 ?6 O+ Q+ O# I1 e
  10.         GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;                        //设置为上拉& t9 H# K  N! S& F- _& H
  11.         GPIO_Init(GPIOA,&GPIO_InitStructure);5 j. [: D2 i! w/ w0 y, H8 }( w
  12. }
    , J/ q& E4 Q; ]0 L# c
复制代码
bsp_led.h
3 _( o/ i7 }/ s
  1. #ifndef _BSP_LED_H_
    2 a( D( r, J+ U
  2. #define _BSP_LED_H_
    1 S) l  o/ `; O7 L
  3. ; r+ M( u* w, f" c: m/ B# w
  4. #include "stm32f4xx.h"! l( X: f/ E: V( d8 ~/ `; ~
  5. 1 ^" p: p* k4 V
  6.                 /******************************+ C6 G: L3 P& \7 _
  7.                         板载led采用控制led阳极
    1 M, [) _! ^. a5 P5 e9 A3 R3 i' {( T
  8.                 *******************************/
    9 N1 D5 }2 }; o1 t
  9. #define ON 18 q" }  |. R6 V, I  {) l
  10. #define OFF 0
    ! d% h! N6 x2 H! T
  11.                        
      w8 T4 @( p0 M3 b) T1 P
  12. #define LED(a) if(a) \7 e4 Y, b( L0 V3 F& k( x- q7 n
  13.                                 GPIO_SetBits(GPIOA,GPIO_Pin_5);\
    ; T5 y3 l) Q4 v
  14.                                 else \
    * J; \: U& e4 m" y, |; n+ k
  15.                                 GPIO_ResetBits(GPIOA,GPIO_Pin_5)
    ' M/ b$ R9 T! e, }; R- P- j
  16.                                 # p" o( Y( y: I# s* x* \. M
  17. void LED_GPIO_Config(void);" L0 r+ [6 `4 v6 g% I& F% i
  18. #endif
复制代码
) j! e. n; y+ H$ U3 R6 I
(4)修改main.c 代码如下:1 s2 x: ^0 w5 @# w
  1. #include "stm32f4xx.h"
    ; S. y$ i- e# S& z4 P% p6 j- f
  2. #include "bsp_led.h"" ~9 g" U2 t/ t: J
  3. . k3 t( z: L6 U: a4 X5 Q

  4. 0 U7 e: s0 T- z2 u5 b
  5. /**************粗略延时**************/- u* ]# g6 N& Q5 K, {( `
  6. void Delay(__IO uint32_t nCount)
    9 x3 _6 e: k+ w1 B: o) r9 w% P- Y
  7. {
    * Z3 d6 b& ]* H( S
  8.                 while(nCount--){}
    1 M) i, f9 |5 b9 @+ C8 \
  9. }
    . ^5 ?/ n/ U8 \+ [, E
  10. ! ?) Y) m' B# l, G+ D2 H$ f5 `, J( ^
  11. 4 K- G6 V0 g1 X# s! P0 X
  12. int main(void)
    9 O9 ]1 R: ]6 s- W' C4 |
  13. {    % t/ J3 ]' A6 `; r0 N/ I7 |
  14.   LED_GPIO_Config();//初始化LED灯IO口--PA5
    , U; Y" Q2 S, X( J* k1 w
  15.   while (1)
    . Z1 u( X1 z/ c% M2 z% \
  16.   {
    ( j- Q9 W: d: n. Q  c% M- W: I
  17.           LED(ON);) O; G# f1 `& t  D
  18.           Delay(0x7FFFFF);
    / M* D2 g; q1 d- q5 C  ]& S
  19.           LED(OFF);
    & U. C0 j& ~( l- T1 f  {, m& ~
  20.           Delay(0x7FFFFF);) q  X7 ?8 f# w$ v' U, V
  21.   }
    - _# d' C, B+ k% F) ~
  22. }. Y# O* B* x! ~/ _! ?0 r- l

  23. ' R. v7 Q" l/ Y% y5 l$ @
  24. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
      ~+ I* s+ V- p) @  `
复制代码
. Q2 k. h7 t; z
下载到板子之后就能看到led灯一闪一闪的跑着了2 S7 H. |: K# p4 T) ^8 \

& v  h3 n0 K/ K6 h  |还有系统时钟的话,我们可以不用配置,因为启动文件已经把系统时钟默认配置为100MHz了1 f- r; X* G2 W. j# c9 h6 o1 N
  1. Reset_Handler    PROC
    " Z, n: p- s9 f- f, x; J$ R
  2.                  EXPORT  Reset_Handler             [WEAK]
    4 Q7 x% a& }+ {8 G, Q. n, K3 U
  3.         IMPORT  SystemInit
    * O0 l, E6 m* `# l. K2 g4 R; a3 y
  4.         IMPORT  __main" ^  l, k9 j( J* B7 X; K- ~

  5. % n* h6 m# @: e2 `) t
  6.                  LDR     R0, =SystemInit7 k5 O5 L4 `- h: V
  7.                  BLX     R0
    " A; r. A' [$ R- \3 ~  Y0 X: b
  8.                  LDR     R0, =__main
    / G5 ]  N; ~5 G
  9.                  BX      R0
    ) w# ^/ Y& i6 \& O; x3 f
  10.                  ENDP( O- }. h1 S6 \; d. C5 g/ K' @2 H
复制代码
  1. #if defined (STM32F411xE)! f7 j! D6 V* Y4 D& W" k
  2.   uint32_t SystemCoreClock = 100000000;
    . H5 ?2 z  m) M. ]$ k) r& V( s
  3. #endif /* STM32F401xx */
复制代码
附上代码源文件和原理图
' `; f0 V6 r- Z3 }9 q9 x 2.LED灯测试.zip (8.54 MB, 下载次数: 765)
赞 收藏 3 评论30 发布时间:2015-2-1 12:38

举报

30个回答
xuyi 回答时间:2015-6-25 21:31:19
你好楼主,请问你的这块板子的原理图是在官网下的吗,我怎么没找到,能不能发个链接给我让我知道下在哪里找,以后就知道了。谢谢
颩色四葉愺 回答时间:2015-2-1 15:56:00
大秦正声 发表于 2015-2-1 13:40
) q- P; U5 {8 b8 \  J+ O谢谢!官方的f4例程比f0少多了!

' _, M- ^4 v! Z) X啥?为什么要回三次呢    等会管理员以为我灌水咋办
大秦正声 回答时间:2015-2-1 16:32:24
颩色四葉愺 发表于 2015-2-1 15:56
8 D# V5 q" P* e' o& C0 o- R1 f5 T啥?为什么要回三次呢    等会管理员以为我灌水咋办
/ N( X7 G9 v. K9 @: d
对不起,网络不好!
星辰一方 回答时间:2015-2-1 12:49:37
不错,感谢分享!
大秦正声 回答时间:2015-2-1 13:40:15
谢谢!官方的f4例程比f0少多了!
大秦正声 回答时间:2015-2-1 13:40:38
谢谢!官方的f4例程比f0少多了!
大秦正声 回答时间:2015-2-1 13:40:57
谢谢!官方的f4例程比f0少多了!
sting 回答时间:2015-2-1 20:13:30
谢谢
lkl0305 回答时间:2015-2-1 21:45:33
多谢多谢
lkl0305 回答时间:2015-2-1 23:09:43
多谢多谢
181wh 回答时间:2015-2-2 07:53:43
多谢多谢!!
拼命三郎 回答时间:2015-2-2 08:44:19
stm32.jpg
sirius65 回答时间:2015-2-2 09:12:51
跟着学习了。
wn1900 回答时间:2015-2-2 10:18:15
支持一下
化石翼龙 回答时间:2015-6-20 20:02:54
很好的帖子,最近正在用f411
123下一页

所属标签

相似技术帖

官网相关资源

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