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

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

[复制链接]
STMCU小助手 发布时间:2022-5-25 18:00
STM32的LED控制图在上一篇博客里,需要的话可以参考
( }$ j; Y5 h. r3 D1 J/ D
0 y- T7 Q# D  B+ T8 TLED闪烁控制的步骤
- s  F. @+ Y. B; h  T' t$ _; ^" `8 c# M
9 ?2 Q9 _: `! g# A1.PB8引脚输出低电平,LED点亮
/ |6 t; D: y$ P/ X4 q+ t& Z, k1 ~: m$ _0 |
2.延时7 r- H% Z9 N5 _8 @$ m7 w
& Y) M1 z1 ~5 W# x! q- v* j- x. g0 }
3.PB8引脚输出高电平,LED熄灭' ?0 ~  A+ \. y& S

  S  j/ k: ?5 q4 j: f# H1 R4.延时( Z7 x1 G# ?! C: K& @
% O$ N2 Z% F  x- j( E+ F. x8 u
5.重复第一步(循环)
8 k( r6 {$ _' H; h) G( ]5 _( j: ^1 n0 j
  1. #include "stm32f10x.h"  A3 {. W: ?$ h5 p+ D  _4 w
  2. ' R; `0 u0 Q. R
  3. void Delay(unsigned int count)               //延时函数
    : o( q1 Q+ U( o( I% x0 Y( v
  4. {
    ( p/ L- I. c$ B* w% x2 k
  5.     unsigned int i;
    , e# L& U' J+ B3 n8 o  c
  6.     for(;count!=0;count--): y$ x7 y" y. I# O/ \
  7.     {. f5 T) [8 J1 z+ F. @% a* l0 D
  8.     i=5000;# `8 Y( i& ~& q  l" ~% d/ V
  9.     while(i--);2 Q! n" e( F. Y: ~" c
  10.     }
    % I' J* \5 N' S
  11. }; E5 O0 F, n9 a& Y" I
  12. int main(void)# J4 c- n4 Y0 n$ k) O# u/ O& F7 p
  13. {3 z% t4 l/ B, J1 F* t$ W+ d  u
  14.                 GPIO_InitTypeDef GPIO_InitStructure;
    , q) ^$ L& t/ p, c
  15.                 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);                 //使能GPIOB时钟4 k* @- W' m" y- S
  16.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                   //PB8引脚配置; r! ?7 \+ q- {: A5 e) w) x- x
  17.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;            //配置PB8为推挽输出
    # f3 x1 W1 i1 T# q" C8 |2 J
  18.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;           //GPIOB速度为50MHz
    1 u2 J" p8 j1 d# \7 y
  19.                 GPIO_Init(GPIOB, &GPIO_InitStructure);                      //初始化PB8
    8 k, O2 M( R6 V% j1 A
  20.         GPIO_SetBits(GPIOB,GPIO_Pin_8);                    //PB8输出高电平,LED熄灭4 @* w* \* x6 W+ z* T2 Q

  21. ; e4 _4 y, y0 z/ z' W
  22.         while(1)
    6 t- ]7 Q8 W# ]- g/ y( @# y5 M
  23.         {
    ) q7 x. u8 \$ T! }7 _( I' q
  24.              GPIO_ResetBits(GPIOB,GPIO_Pin_8);             //PB8输出低电平,LED点亮
    9 r+ k8 w/ x$ u! T
  25.              Delay(100);                                   //延时,保持点亮一段时间: a& q5 h) e" ?( B" Z
  26.              GPIO_SetBits(GPIOB,GPIO_Pin_8);              
    & G. v2 @! K% r
  27.              Delay(100);                                   //保持熄灭一段时间
    ) t# d, x4 A. U7 H( Y9 H, {3 g
  28.         }3 p& f- G9 _# T
  29. }
复制代码
9 i& J* Y3 b5 j1 g( z

  ^, [; K8 R" i延时说明:因为stm32指令反应速度很快,人眼很难识别,所以需要延迟一段时间,这样就能看到闪烁效果6 G  v( A0 L9 `9 `+ k

3 l$ |1 w; u( O
& `! Q( s; i& O+ t: d' D! R# W
收藏 评论0 发布时间:2022-5-25 18:00

举报

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