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

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

[复制链接]
STMCU小助手 发布时间:2022-5-25 18:00
STM32的LED控制图在上一篇博客里,需要的话可以参考& o- Y% C, Z; B# ^5 S& w1 N$ e: u/ Y3 H

8 B7 c" g0 y& s, XLED闪烁控制的步骤9 S% p2 C1 K) a! D, `- O
& {: U% M! R' z  |! }, T
1.PB8引脚输出低电平,LED点亮" l7 r% u. Y: s
) Q, B2 i$ `- {) r! Y
2.延时
- V8 _1 D+ s) w9 S+ f" c7 V2 v" l; U) E
3.PB8引脚输出高电平,LED熄灭  K# \7 R1 P5 t) k  M( M  V

+ B3 b& H% o6 p) L# b: e' s  T4.延时4 n( |/ x& O3 ]; W
; i8 W! O- n4 i2 ?
5.重复第一步(循环)/ B1 m" z, j; M+ K5 e9 n* A) r' b  B

$ g; Z7 Y2 x2 l
  1. #include "stm32f10x.h"
    0 I( j) p* w# U. x$ b, k

  2. / j: L, l( L6 t* ?7 F. t
  3. void Delay(unsigned int count)               //延时函数/ X0 T1 S8 G/ P6 ]5 _2 C3 a
  4. {
    # t- A" f* m5 S/ ?, S3 x
  5.     unsigned int i;
    $ h6 J% X- u: ^  \
  6.     for(;count!=0;count--)
    ( w8 m; l, a9 S3 U& Z& }" X
  7.     {8 D# a4 y( }; \" t3 B1 P2 c+ x
  8.     i=5000;) a5 Q2 r$ b0 @9 d0 a9 v0 A2 x) B
  9.     while(i--);& |( Y" v* A: ]/ C
  10.     }
    & B# F* Q# z: [" Q( c
  11. }; _* q+ \0 ^8 o4 H+ G  h
  12. int main(void)
    ! T1 R6 N4 |+ k6 w5 M8 V; _& c
  13. {
    * P! Q) l5 ]& P$ x' R$ \. [# `
  14.                 GPIO_InitTypeDef GPIO_InitStructure;  H+ T# o2 ~. i
  15.                 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);                 //使能GPIOB时钟
    $ {  x& ^" j- {  Y1 w9 S/ n: y
  16.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                   //PB8引脚配置2 y: Q2 F, I! @, z4 q1 O$ K
  17.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;            //配置PB8为推挽输出6 y* ~2 S$ I- Y+ S
  18.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;           //GPIOB速度为50MHz+ N" r6 B! U9 W- i
  19.                 GPIO_Init(GPIOB, &GPIO_InitStructure);                      //初始化PB8* F% X( t4 @. V7 f4 ?
  20.         GPIO_SetBits(GPIOB,GPIO_Pin_8);                    //PB8输出高电平,LED熄灭
    , I4 d% v# e* C, g' l( @: b+ \
  21. 4 T4 Y2 p0 x+ |) }' B8 h7 {) n& j
  22.         while(1)+ {8 h* ]! V; ~. a- G; [( ?
  23.         {, X- s7 H) i5 y$ `% Z5 h( q
  24.              GPIO_ResetBits(GPIOB,GPIO_Pin_8);             //PB8输出低电平,LED点亮
    8 H, @8 v8 P! F
  25.              Delay(100);                                   //延时,保持点亮一段时间# m0 p( U$ M; s2 R1 D9 @
  26.              GPIO_SetBits(GPIOB,GPIO_Pin_8);              
    1 F. P+ @* ]2 s" Z7 K6 i
  27.              Delay(100);                                   //保持熄灭一段时间/ ?2 M3 x3 R; K8 p8 a: P5 G- ]
  28.         }, ?. i- _/ {" d, ]
  29. }
复制代码
3 l- r" }4 S9 E- F3 e9 _

2 u( o$ j4 L8 J! a( N0 t延时说明:因为stm32指令反应速度很快,人眼很难识别,所以需要延迟一段时间,这样就能看到闪烁效果# A, C* ^5 u0 G: ~, Z" k6 n% L6 }

: I' i* o  g+ r- h: W, N0 S- l; n" [0 k
赞 收藏 评论0 发布时间:2022-5-25 18:00

举报

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