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

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

[复制链接]
STMCU小助手 发布时间:2022-5-25 18:00
STM32的LED控制图在上一篇博客里,需要的话可以参考
) [( J1 o$ x& e$ E, G$ R, b
) o& i8 G1 p( l& {* l7 `LED闪烁控制的步骤
. L5 F* N' G! E8 n2 \  v2 S& V+ c/ T7 V! u8 r9 C% X
1.PB8引脚输出低电平,LED点亮
6 {& x4 H$ J2 x. t5 y- z5 c7 w
# v$ z+ n3 c* Y2.延时; W& ~4 Q: W7 \: Y: |

5 L; ^" X4 z- X) T, |3.PB8引脚输出高电平,LED熄灭
" e4 k" b8 j! v) _9 E; Z$ [8 i' ^. u  y- |4 }! s* ~
4.延时
! M% T$ ~, Q/ p( I) _. l  n2 R( H5 c4 Q) }2 i. `4 M
5.重复第一步(循环)
' [9 R, M( h8 _  ]. W! l" ?# d- J; a0 z3 U  ~( t; |0 P) [5 E- P6 ]
  1. #include "stm32f10x.h"/ K, {7 ]) k' a. W
  2. ' m5 f( c3 I" V: e: Z
  3. void Delay(unsigned int count)               //延时函数
    2 }0 `* }( \1 S1 {" b) Y/ S
  4. {
    - T0 `" U, p8 ~0 n( o
  5.     unsigned int i;
    ; v1 }/ h, \% y; ^# `
  6.     for(;count!=0;count--)3 _  F# m; J% \8 c5 O, F
  7.     {
    7 Q/ a+ E% x- [% R- X! g6 \9 {
  8.     i=5000;& B6 Z: r1 x' ]7 ]2 _6 S' d
  9.     while(i--);
    8 j, f; x2 b1 i! T9 w" O% }( \. g
  10.     }9 Y" ?; n+ V/ Z, L; P
  11. }
    * y0 I; O$ p& U# `# S5 d
  12. int main(void)% |4 w# j: m( E/ R) h5 `. o
  13. {
    ( x! a) s5 c) ]
  14.                 GPIO_InitTypeDef GPIO_InitStructure;# R2 C) p: m  _9 j
  15.                 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);                 //使能GPIOB时钟
    * E8 z2 q% n2 n3 Z  R, @) T7 D
  16.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                   //PB8引脚配置
    1 t6 ]5 @, D8 V
  17.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;            //配置PB8为推挽输出- S# J! O0 e! Q, g9 n
  18.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;           //GPIOB速度为50MHz/ O# j* h2 F+ n5 z! `! ]
  19.                 GPIO_Init(GPIOB, &GPIO_InitStructure);                      //初始化PB8. p* |5 G$ D/ Z. f" w3 `* \# {
  20.         GPIO_SetBits(GPIOB,GPIO_Pin_8);                    //PB8输出高电平,LED熄灭
    % y8 e, W0 ~3 U7 Z4 Y7 @4 r

  21. ; l6 V9 `0 u) x* x
  22.         while(1)
    0 T; |' k2 ^. p" F; b  ~6 G
  23.         {4 M4 G( E1 d, j) ?, h! v4 h
  24.              GPIO_ResetBits(GPIOB,GPIO_Pin_8);             //PB8输出低电平,LED点亮
    0 s# a. F% E7 u
  25.              Delay(100);                                   //延时,保持点亮一段时间' C" A* y& {) a9 i/ o. d% y! B
  26.              GPIO_SetBits(GPIOB,GPIO_Pin_8);              
    . f) T; d/ P( g( K  b
  27.              Delay(100);                                   //保持熄灭一段时间
    0 J) ?! N. v/ `# c2 s/ t
  28.         }% h' @: R: U. w4 ^: T3 s3 X- |* X
  29. }
复制代码

3 `* d/ R/ c0 A  A
9 e) o) q, m5 s0 H$ l延时说明:因为stm32指令反应速度很快,人眼很难识别,所以需要延迟一段时间,这样就能看到闪烁效果
2 K  ^5 ?: i6 X. h) _2 e: d: q. ^, m/ r* P

& {" P9 i9 P: e. y! Y& A9 T
赞 收藏 评论0 发布时间:2022-5-25 18:00

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版