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

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

[复制链接]
STMCU小助手 发布时间:2022-5-25 18:00
STM32的LED控制图在上一篇博客里,需要的话可以参考
! u# z/ _9 c) w$ q0 `8 c
& h3 J- ~* b" [( Z) d- }7 }5 ^LED闪烁控制的步骤, C5 D3 z2 S. i; Y, B6 @7 r

7 [4 C, a: X) {2 o+ m! D! @7 ~4 b. P1.PB8引脚输出低电平,LED点亮
8 t' G5 w0 C: T
6 V+ S5 n% ^* u% {- Q9 x! H( A2.延时' o1 e1 [* E" b

  C9 {$ h3 X: p; \. S9 D3.PB8引脚输出高电平,LED熄灭# u  L- v0 \% U* U$ J7 p, U

( C. s+ S& n9 H8 Z- l& Q4.延时
7 H( t; M3 Q3 b# x) p8 K, l
1 a  C" t: s0 v) z( n5.重复第一步(循环)
% E- }6 v- p+ a# N: V: F7 m1 p
1 r; S5 O% `* ~3 R; I
  1. #include "stm32f10x.h"" i% E% _7 T. e1 x- m
  2. " K/ N) D8 ]' q6 _4 _5 W
  3. void Delay(unsigned int count)               //延时函数( b! v( ?: z6 P7 H# s% V
  4. {5 ?* N. Y4 T4 x+ o# g
  5.     unsigned int i;
    + D7 p6 P* b% m' Y& Q6 y$ @, m& R
  6.     for(;count!=0;count--)5 I/ Q6 T; P& H, ?6 c+ m
  7.     {: ^! j" @7 |% h) s4 g
  8.     i=5000;
    6 `% i0 _% Q, |
  9.     while(i--);# n1 t/ S/ [) }; h& n! W' B
  10.     }
    : h* F$ G* f' a. c9 h& r! G: h
  11. }6 ~, f0 Q6 T0 U" ]$ ?. l
  12. int main(void); C1 Y; R, p+ {# U- p$ H
  13. {
    ) ^+ m# [4 w0 A* K% r" K. h* \2 ]
  14.                 GPIO_InitTypeDef GPIO_InitStructure;/ a# n3 y  {) z5 _1 q
  15.                 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);                 //使能GPIOB时钟
      a  I4 t# }6 m9 @" g
  16.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                   //PB8引脚配置
    % V& I9 j- i  S$ {  j8 A
  17.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;            //配置PB8为推挽输出
    9 {8 q" A' ^7 |3 c# c* ?" f
  18.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;           //GPIOB速度为50MHz& [$ L) a' h4 X  T
  19.                 GPIO_Init(GPIOB, &GPIO_InitStructure);                      //初始化PB8  L* V9 C* o4 f7 l3 z
  20.         GPIO_SetBits(GPIOB,GPIO_Pin_8);                    //PB8输出高电平,LED熄灭
    * K( N8 D. R" M% v

  21. ; Z; ?6 N& S4 v; i, ~; T
  22.         while(1)" N+ U9 v  I" h+ [' V8 q+ i
  23.         {
    ' l) R7 i$ I2 k
  24.              GPIO_ResetBits(GPIOB,GPIO_Pin_8);             //PB8输出低电平,LED点亮+ L* G, [( {" H8 M
  25.              Delay(100);                                   //延时,保持点亮一段时间5 n. a, v, H: G4 k: y+ N) m
  26.              GPIO_SetBits(GPIOB,GPIO_Pin_8);              # o9 e! `5 o4 a8 ?, h
  27.              Delay(100);                                   //保持熄灭一段时间
    - C  A& k- H8 P1 U$ U$ l3 Y
  28.         }
    , M% y8 f% T9 m1 O; _# z
  29. }
复制代码

% z6 ^/ d, P2 y1 j9 k) D+ o8 u" L9 m- W! J; j
延时说明:因为stm32指令反应速度很快,人眼很难识别,所以需要延迟一段时间,这样就能看到闪烁效果
/ I; Q3 m2 a' m. @. Q- t
+ K: m* D# l" M* v2 ?# K4 r6 {% ~$ n4 b9 [  ?
收藏 评论0 发布时间:2022-5-25 18:00

举报

0个回答

所属标签

相似技术帖

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