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

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

[复制链接]
STMCU小助手 发布时间:2022-5-25 18:00
STM32的LED控制图在上一篇博客里,需要的话可以参考' n. c) \" y) y; d. G" T' B
0 X$ b  Q( l9 E+ I0 H) o5 A
LED闪烁控制的步骤
# F. i) J& a& U9 D7 o( x- x7 u( s3 V) B* R
1.PB8引脚输出低电平,LED点亮
% ~) |) ~( T8 ]. r. E& [& Y
( s* K- B* z0 C3 V2.延时
3 C8 F+ |6 ]6 D, k  G& S# \
" X8 b- F! ~; z3.PB8引脚输出高电平,LED熄灭
* }2 ?8 v/ u! u. y6 f* S
3 [. D, [8 G" ?4.延时0 O+ |% W! _3 K
9 }/ D% N; N1 U, Z8 i0 Y- f
5.重复第一步(循环)
4 M+ B. k% j9 e9 Q) J
5 o9 i' K4 K/ n% }7 k
  1. #include "stm32f10x.h"
    ( f" h& O2 D6 R& k* Y. m

  2. 5 v! ?  Z" v' O; c" \1 y* W$ o
  3. void Delay(unsigned int count)               //延时函数& _9 n# g. m  X6 t. I
  4. {* V5 x1 F, X0 Q# f2 v
  5.     unsigned int i;
    $ d. l, W( Y+ v5 D. P: d
  6.     for(;count!=0;count--)
    - P; ?1 [* A9 S! C" R9 c
  7.     {
    2 y6 R7 i5 z: ]1 `8 S) {: P& K
  8.     i=5000;
    4 K  e7 l  f' F& R- K) k
  9.     while(i--);
    ( {5 ?2 M! R7 `5 I7 d2 d
  10.     }- J/ o! k$ ^5 U
  11. }- T. u) p6 o& r) p8 t
  12. int main(void)
    7 N. E: P0 T+ e* {
  13. {: l! ~' |, U8 L
  14.                 GPIO_InitTypeDef GPIO_InitStructure;
    8 x# U% n: ~/ ~
  15.                 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);                 //使能GPIOB时钟
    : a; u! f) i! c) x( ?8 w5 [
  16.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                   //PB8引脚配置# F: n3 L: x- C& W, b$ K5 Q
  17.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;            //配置PB8为推挽输出
    ; F* s0 [3 H6 i! O3 s" u8 U- a
  18.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;           //GPIOB速度为50MHz
    4 C$ \. l9 y/ i4 M  K! [; @) @
  19.                 GPIO_Init(GPIOB, &GPIO_InitStructure);                      //初始化PB8, L9 I% Y0 T/ c4 D+ H
  20.         GPIO_SetBits(GPIOB,GPIO_Pin_8);                    //PB8输出高电平,LED熄灭% w8 |1 {) W( o" _' `$ `4 s

  21. 8 m% V$ w# a0 u
  22.         while(1)9 H2 D1 H6 Y  q+ \
  23.         {- Z5 S4 K5 q# ^- F
  24.              GPIO_ResetBits(GPIOB,GPIO_Pin_8);             //PB8输出低电平,LED点亮
    1 K8 q* a7 }( ~8 t& u1 A* J
  25.              Delay(100);                                   //延时,保持点亮一段时间1 ?& g: z0 T. {
  26.              GPIO_SetBits(GPIOB,GPIO_Pin_8);              ) S4 m" G+ T. s! l5 s' @8 u
  27.              Delay(100);                                   //保持熄灭一段时间
    ; H7 J' b8 |5 t9 m6 D; z
  28.         }. _  V3 B6 h# u
  29. }
复制代码

( N6 x/ [9 N: s! P. ]' B
/ r2 J% k7 M2 B4 Z延时说明:因为stm32指令反应速度很快,人眼很难识别,所以需要延迟一段时间,这样就能看到闪烁效果. h4 q3 m- d% u& d
' f  H- y8 B- d- ?( r, A9 i; F" l
% i/ F1 R) E6 H& i4 y1 u2 k$ B
收藏 评论0 发布时间:2022-5-25 18:00

举报

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