|
在解决了pack问题后,我建了第一个工程,写了个呼吸灯。新建工程我参照的下面这个帖子,写的很详细,很好。https://www.stmcu.org.cn/module/ ... &highlight=f4117 R) d4 Y: V3 E. e) E 不多说,上代码:5 t4 }# B0 E& j 6 ^' p C& t* p( l1 O+ w; E; V /***************bsp_led.c**********************/ #include "bsp_led.h" void LED_GPIO_Config(void)4 O$ k' ?$ C$ R/ U* S! P0 B {" g: f" d$ G; }* p& s0 ^* _5 @ GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//??LED?IO??" R4 \8 K6 `- _( O. p! p GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP; , |8 o4 ~3 E( g3 j6 O2 h GPIO_Init(GPIOA,&GPIO_InitStructure);% O6 d* `/ \: R5 V } /*********************************************/ f. V: b" H! G) B7 v9 ] & ]* i( I6 P5 I: U: v, e7 j /***************bsp_led.h**********************/ 2 Y$ Y6 P: _: G1 h$ u, G3 r #ifndef _BSP_LED_H_ #define _BSP_LED_H_ #include "stm32f4xx.h"# ^- H2 b5 C. R0 o #define ON 1 #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 /*********************************************/1 _1 G( y2 C" [0 ` * J: T* g8 Q0 B0 P8 J' v main.c: }; ^% g1 U, b /***************main.c**********************/$ {. z% p; K% u, v4 P #include "stm32f4xx.h" #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) { const long num=4000; long i=1; char flag=0; LED_GPIO_Config();// LED IO --PA5 while (1) {2 X. s( `) e' K1 H* [2 T LED(ON); Delay((num-i)*N);) E9 A& L6 K+ X2 [9 U S8 |! r LED(OFF); Delay(i*N); 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 { 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) flag=0; } } /*********************************************/ ( l- k- H( b! i& T3 F( k 0 ~/ `. K) l9 \+ i( l7 t; J! e2 e) ` 4 R2 ]5 P7 I: Y; b |
å¼å¸ç¯20150804.rar
下载1.37 MB, 下载次数: 54
å¼å¸ç¯
微信公众号
手机版
失望了吧,第一个工程一般都是点个灯嘛,就像hello world一样
周期性改变延时的时间,就等同于周期性改变占空比
所以没有想象中那么高大上
只要能点亮一个led就行
还可以用pwm,定时器中断改占空比
和点亮一个led本质上没有区别
..点亮LED灯是GPIO操作啊~呼吸灯重点是PWM吧。。
用延时函数也可以达到同样的效果