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

stm32f411上手试玩第一个工程----呼吸灯

[复制链接]
112207301219 发布时间:2015-8-8 16:57
在解决了pack问题后,我建了第一个工程,写了个呼吸灯。新建工程我参照的下面这个帖子,写的很详细,很好。https://www.stmcu.org.cn/module/ ... &highlight=f4117 R) d4 Y: V3 E. e) E

' R0 A! y/ @( ~3 I3 t2 z不多说,上代码:5 t4 }# B0 E& j
6 ^' p  C& t* p( l1 O+ w; E; V

5 c1 |  A5 J* J% s5 c+ O7 F7 {: G7 N/***************bsp_led.c**********************/
/ Z% K* `" x, Q: C! Q. c, c6 @#include "bsp_led.h"
# ]% [6 g% t8 A: L- Hvoid LED_GPIO_Config(void)4 O$ k' ?$ C$ R/ U* S! P0 B
{" g: f" d$ G; }* p& s0 ^* _5 @
        GPIO_InitTypeDef GPIO_InitStructure;
( E" G" y3 B8 s0 `, o4 b        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//??LED?IO??" R4 \8 K6 `- _( O. p! p
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;                              
" ?7 o( E8 R1 K( a, K- S        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;      
" f5 _0 R# D% ^# g; u% u" P% A        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;      
6 s; l: V0 B+ C        GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;                 , |8 o4 ~3 E( g3 j6 O2 h
        GPIO_Init(GPIOA,&GPIO_InitStructure);% O6 d* `/ \: R5 V
}
' Q4 v! S# Z5 p
, w' }. ^: T6 X* z4 Q/*********************************************/
7 ^4 J9 ^; X, d9 s) q  f. V: b" H! G) B7 v9 ]

4 j% L# V; I$ j8 `. o  F& ]* i( I6 P5 I: U: v, e7 j
/***************bsp_led.h**********************/
) P4 l: ^2 f) O/ y9 x% B& K3 e
, f% t+ z; X- E2 Y$ Y6 P: _: G1 h$ u, G3 r
#ifndef _BSP_LED_H_
9 l) n+ w5 {8 m#define _BSP_LED_H_
' A7 ]5 }, }& _0 k8 X#include "stm32f4xx.h"# ^- H2 b5 C. R0 o
#define ON 1
: d0 n& z# `3 h: {! k#define OFF 0  [3 G! F1 G2 a0 T+ i
#define LED(a) if(a) GPIO_SetBits(GPIOA,GPIO_Pin_5); else GPIO_ResetBits(GPIOA,GPIO_Pin_5)4 p% C4 R% e9 z' N
void LED_GPIO_Config(void);% x% a9 U7 N" c5 @9 \4 N
#endif! }( j$ U* i" b7 i/ l0 K

2 c; ?" R( v; _. b) W! G; m/*********************************************/1 _1 G( y2 C" [0 `

! n$ T" |$ c( G9 b: P- Q* J: T* g8 Q0 B0 P8 J' v
main.c: }; ^% g1 U, b
/***************main.c**********************/$ {. z% p; K% u, v4 P
#include "stm32f4xx.h"
5 c; E( u. x0 O! B. W& g#include "bsp_led.h"" Y0 r  t" v# t9 x
#define N 12 j: y$ z6 v/ Q
void Delay(__IO uint32_t nCount)0 }! y; P+ r5 m' O' G; c
. ?. f, G% S, f4 Q" `* z2 q
{- X& c& R5 @3 e: k* a  l
         while(nCount--){}* |" l1 A- Q& |0 C4 o  U- N3 g
}2 U: @+ @( R6 `, c- ?- \9 S4 K* f0 B# _1 }
int main(void)
' n: t) t8 h$ y1 g* ^! k  F' Z5 |{   
# a! `5 h3 C) ^7 z  ?: R        const long num=4000;
1 o' z* g5 F) `. C: Y        long i=1;
7 X  M+ F4 j7 \" G, T) A8 _        char flag=0;
8 f7 |$ w- z$ E% k; }, I$ z        LED_GPIO_Config();// LED IO --PA5
9 q" ]8 i) X. {: u0 e. D        while (1)
% K$ B2 j6 z: J# g7 K9 r, @        {2 X. s( `) e' K1 H* [2 T
                LED(ON);
+ b* A" q; E: h                Delay((num-i)*N);) E9 A& L6 K+ X2 [9 U  S8 |! r
                LED(OFF);
. s* J  f& x; G* b                Delay(i*N);
4 B& k  y3 }! T& D5 K                if(flag==0)% y2 M% i! M' m2 E8 `$ K: V
                {$ X4 i# a" q" R  T, B
                        i++;6 U5 P+ J; s/ s3 I5 k* E
                }3 j+ s3 F0 [$ R. l
                else if(flag==1). N- d3 a: C% F( x* o$ m
                {
. B5 i3 x/ o/ y3 A3 ~                        i--;/ W" v* ]/ N. Z9 C+ s  y  ]
                }1 s* [1 p- v# v3 K5 l4 Q
                if(i>=(num-1))" \5 ]5 z+ l" ~! _( C8 ]) _
                        flag=1;  \' I6 v* G2 _
                else if(i<=1)
8 m1 Y4 |/ o5 n$ p                        flag=0;
% h! j  ]' u7 [* c+ q/ [. n, u        }
$ T+ |; m9 r! V% l: T}
9 f7 q  O6 z* N, b$ e0 B# ?& C/*********************************************/
3 o$ ^) e' r8 J9 S! ?5 n
- p3 j3 h( S8 h) i  H4 C/ W( l- k- H( b! i& T3 F( k

9 p. w" \/ k8 |' i
+ O5 }0 ~& p8 `# U$ ~: k( C
* i% |8 v: p% W) _9 N2 W/ o# A9 p
& e% B0 f/ j! l  M4 _0 ~/ `. K) l9 \+ i( l7 t; J! e2 e) `
4 R2 ]5 P7 I: Y; b

! C. b* t0 T% `' ?) [" W
& d1 M! ?9 A) U7 S2 l

呼吸灯20150804.rar

下载

1.37 MB, 下载次数: 54

呼吸灯

赞 收藏 1 评论18 发布时间:2015-8-8 16:57

举报

18个回答
112207301219 回答时间:2015-9-6 19:14:35
wu1169668869 发表于 2015-9-1 20:25; k, X0 b) |% }0 m4 l8 w
所以竟然是软件模拟的呼吸灯orz

& M, U5 J; X6 x7 D- r0 Y3 q失望了吧,第一个工程一般都是点个灯嘛,就像hello world一样
112207301219 回答时间:2015-9-6 19:20:10
112207301219 发表于 2015-9-6 19:19
7 V: W4 U  e1 V$ Y用延时函数也可以达到同样的效果

& y! U. |6 b3 l; @7 ~周期性改变延时的时间,就等同于周期性改变占空比
112207301219 回答时间:2015-9-6 19:20:56
112207301219 发表于 2015-9-6 19:203 T5 I5 |2 r6 \# g, w
周期性改变延时的时间,就等同于周期性改变占空比

5 m1 o, N# o9 {& V- i; \& I所以没有想象中那么高大上
沐紫 回答时间:2015-8-10 09:59:46
谢谢楼主
嵌入式wcb 回答时间:2015-8-31 21:43:46
楼主,你好,请问有没有用stm32f429做过呼吸灯呢,请教!
拉肚肚 回答时间:2015-9-1 08:59:54
楼主,呼吸灯还有别的方式么
yanhaijian 回答时间:2015-9-1 09:10:27
同志仍需努力。
皈依 回答时间:2015-9-1 09:38:10
上手就玩呼吸灯~高大上啊
112207301219 回答时间:2015-9-1 20:13:14
嵌入式wcb 发表于 2015-8-31 21:43* w+ q& N: h/ n. p) F) c! s
楼主,你好,请问有没有用stm32f429做过呼吸灯呢,请教!
+ ]# I9 \+ U) P: M
只要能点亮一个led就行
112207301219 回答时间:2015-9-1 20:15:26
拉肚肚 发表于 2015-9-1 08:59  m( }" \' U! H/ X
楼主,呼吸灯还有别的方式么

; o3 c. b  q2 Y6 u5 @6 o还可以用pwm,定时器中断改占空比
112207301219 回答时间:2015-9-1 20:16:06
guiyi 发表于 2015-9-1 09:382 W1 N! i8 `6 h: y, O( W. G
上手就玩呼吸灯~高大上啊
4 {+ g+ P/ y! F+ l2 x  N) O
和点亮一个led本质上没有区别
wu1169668869 回答时间:2015-9-1 20:25:51
所以竟然是软件模拟的呼吸灯orz
皈依 回答时间:2015-9-2 08:07:15
112207301219 发表于 2015-9-1 20:168 O; R9 m, G; S, e* ]+ o
和点亮一个led本质上没有区别

" R$ W4 ]( R( b+ M..点亮LED灯是GPIO操作啊~呼吸灯重点是PWM吧。。
112207301219 回答时间:2015-9-6 19:12:16
用延时函数也可以达到同样的效果
天涯水乡 回答时间:2015-9-6 19:17:29
不错不错啊
112207301219 回答时间:2015-9-6 19:19:09
guiyi 发表于 2015-9-2 08:07
4 W! ]7 s( P9 ]: D& R1 u..点亮LED灯是GPIO操作啊~呼吸灯重点是PWM吧。。

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