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

【经验分享】STM32 LED闪烁控制设计与实现

[复制链接]
STMCU小助手 发布时间:2022-5-25 18:00
STM32的LED控制图在上一篇博客里,需要的话可以参考
/ k  |2 m+ e9 y5 Y3 f/ J; F, o5 U+ d. V. Y
LED闪烁控制的步骤
# f6 o$ }7 Q1 A- C4 Q; W3 ~: n) E! F8 M. {" u* P
1.PB8引脚输出低电平,LED点亮
. t5 P; _$ e" R1 q" p% g. {4 g! T, x9 D( l( w3 `2 m+ J  }3 K
2.延时0 L: z" N9 }) K) ?) M( b+ y  w

* t' v. Q% q; o; A2 Z/ [3 l3.PB8引脚输出高电平,LED熄灭: P* v( b$ f# W7 Y# y& T
( ~0 p9 P9 W2 r& H- p
4.延时
7 O5 [9 V1 |" T# ^8 y) m! v9 x6 ]0 ^& i/ o1 c; {8 c% n
5.重复第一步(循环)- M1 B( q  d, ~* I5 d5 u0 F) P

7 W- @8 }  [% j- `
  1. #include "stm32f10x.h"0 U& p' ?$ T; Z' n  X

  2. 1 |+ J7 w1 u9 W% f$ u
  3. void Delay(unsigned int count)               //延时函数
    ! N  m$ L( Q/ `1 p! T
  4. {+ _  `) ]$ Y, d0 N( D
  5.     unsigned int i;1 k" \$ I! q% I+ D7 x% |3 F
  6.     for(;count!=0;count--)& }* ]. B& @$ q+ P5 i
  7.     {
      P. e- G9 ^4 e4 \1 K5 n
  8.     i=5000;
    : n; w' w2 Y. E- n% }
  9.     while(i--);
    , B( {* P4 @! Q6 P  |( \5 a
  10.     }) _3 Z1 x: m* t/ N; b
  11. }2 B9 J0 G/ Y" e" T1 O, Z5 R$ S
  12. int main(void)" t" @6 K+ v" p; x4 ^: y! g
  13. {; I+ R' J4 t1 C
  14.                 GPIO_InitTypeDef GPIO_InitStructure;9 F2 }0 i" Y+ ~) h8 O& G6 [
  15.                 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);                 //使能GPIOB时钟' H5 _0 S% |+ Q7 T. `; Q( M
  16.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                   //PB8引脚配置
    7 s) r3 |# K* a
  17.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;            //配置PB8为推挽输出
    & o) t5 f0 @( s$ P5 e! E) s' B0 X
  18.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;           //GPIOB速度为50MHz
    ) Z( A* i, a, o4 Q6 t: z
  19.                 GPIO_Init(GPIOB, &GPIO_InitStructure);                      //初始化PB8) q0 J+ P5 z$ e  L( v4 D
  20.         GPIO_SetBits(GPIOB,GPIO_Pin_8);                    //PB8输出高电平,LED熄灭
    ' ~! u* t; x6 _! K9 I0 I
  21. ) }5 d3 V; Y0 }7 R8 c8 Q
  22.         while(1)
    $ E$ K2 F5 f% _  K, C
  23.         {
    0 Q! w1 ^1 Q" l4 N
  24.              GPIO_ResetBits(GPIOB,GPIO_Pin_8);             //PB8输出低电平,LED点亮
    ' W2 c$ a: {. h) W0 a
  25.              Delay(100);                                   //延时,保持点亮一段时间/ e# M5 f) F( a7 i( |! J2 `
  26.              GPIO_SetBits(GPIOB,GPIO_Pin_8);              ' z/ ]8 u3 g: N$ [1 c% Z9 c- d% w
  27.              Delay(100);                                   //保持熄灭一段时间5 ~; W4 z1 e7 A# C& o1 n. K) L, H  L
  28.         }
    8 m4 K3 b. H1 c, C1 t, D
  29. }
复制代码
0 z9 B4 P1 h* O: y0 D4 K7 I

: I4 C6 s  z) E( }6 n延时说明:因为stm32指令反应速度很快,人眼很难识别,所以需要延迟一段时间,这样就能看到闪烁效果
/ I5 _7 }- a1 i+ o2 h" G* P0 E  t3 }6 q9 |9 }* j  D

$ u; W2 {, n- K  H6 _& K
收藏 评论0 发布时间:2022-5-25 18:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版