|
在解决了pack问题后,我建了第一个工程,写了个呼吸灯。新建工程我参照的下面这个帖子,写的很详细,很好。https://www.stmcu.org.cn/module/ ... &highlight=f4115 X. t9 _$ r x& B' j4 \( R 不多说,上代码: , x3 E4 b1 A+ k- y+ i0 ^ ' l4 Z- l( c* B& G' K /***************bsp_led.c**********************/- m/ B4 E: O6 Q' d6 h #include "bsp_led.h" void LED_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure;3 M2 }* D) s6 ` RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//??LED?IO?? GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; 7 z* v* E5 `8 n/ i1 @- [0 r) u4 \ GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP; GPIO_Init(GPIOA,&GPIO_InitStructure); }. k- v$ ^# n7 n% }4 T 2 m4 H. i" Z; y /*********************************************/8 R0 O% @& p8 d3 e- x x# S ) I. K5 `2 m2 @& i$ q; Q 5 S- U3 W9 i7 l' Y) K. h, Y /***************bsp_led.h**********************/4 E( I* B9 R9 u- b4 _* { " M; M" `' H* r2 {3 { #ifndef _BSP_LED_H_ #define _BSP_LED_H_ #include "stm32f4xx.h" #define ON 1 #define OFF 0 #define LED(a) if(a) GPIO_SetBits(GPIOA,GPIO_Pin_5); else GPIO_ResetBits(GPIOA,GPIO_Pin_5)6 L7 |0 d3 O( Z% I# ~ N void LED_GPIO_Config(void);6 i: @* P3 O2 j6 j7 ?2 u #endif' c2 P: v8 O4 ^: ~! t, s /*********************************************/ 8 y1 p' O# o P* u9 ~, k main.c /***************main.c**********************/# ]9 B0 F$ `' O" M3 r& D #include "stm32f4xx.h": A1 J5 D$ J& D% f5 K #include "bsp_led.h" #define N 1 void Delay(__IO uint32_t nCount)* S4 h2 i% X9 U H ; Q; v" H( E V. V2 i/ E {# @/ k( f; F8 {8 ~& v. r1 r! T5 b; T while(nCount--){} }) ]6 ^5 I" s b; h% q9 G int main(void)& J4 Z+ B3 n5 p. |9 V( n: S { const long num=4000; long i=1; char flag=0;9 f6 w8 B) m4 C; F! O; e; A f LED_GPIO_Config();// LED IO --PA5) I: G! l0 [& [5 v2 ~ while (1)! f6 @5 s. M& v- P { LED(ON); Delay((num-i)*N); LED(OFF); Delay(i*N);8 W2 F$ Z% C; Q/ a4 s if(flag==0)5 A# V2 w$ q' Y" ]' a8 _; A { i++; } else if(flag==1) { i--; }9 `9 L, L- R6 f if(i>=(num-1))+ S ^" p J, D T* B* g4 M2 J flag=1; else if(i<=1)6 p. s% [5 E% e, y- }' [# h, Z: j4 g flag=0; }: K ~7 q% l0 y0 {, E" |7 n } /*********************************************/ 0 F- y! b, t) M) b5 ~ / j+ ^9 _) z" b! U$ J. G" |# Y " h' J/ ]( @: @! \; J6 O& M0 F! V) } % t6 N1 z5 Y- [+ R2 O" W ' o% g! V; \$ a |
å¼å¸ç¯20150804.rar
下载1.37 MB, 下载次数: 54
å¼å¸ç¯
微信公众号
手机版
失望了吧,第一个工程一般都是点个灯嘛,就像hello world一样
周期性改变延时的时间,就等同于周期性改变占空比
所以没有想象中那么高大上
只要能点亮一个led就行
还可以用pwm,定时器中断改占空比
和点亮一个led本质上没有区别
..点亮LED灯是GPIO操作啊~呼吸灯重点是PWM吧。。
用延时函数也可以达到同样的效果