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

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

[复制链接]
STMCU小助手 发布时间:2022-5-25 18:00
STM32的LED控制图在上一篇博客里,需要的话可以参考1 a/ `: O0 w2 S- w( a

& \* ?, w! m3 V% L3 }LED闪烁控制的步骤& y$ S  J' d, t& T: k+ G7 w

2 Z. q0 _& c1 ~/ W4 v# k5 B! i9 b% [, m( t1.PB8引脚输出低电平,LED点亮
0 P$ k4 ?/ N) v4 i
$ J4 |- Z" }/ z7 S1 w5 `2.延时
- o2 F1 p# d( q0 @+ L' ]9 K  B0 f: {0 `+ z. Z; L
3.PB8引脚输出高电平,LED熄灭& v. ?5 y: f9 l: ~: P( r8 d

% u- S6 G2 ]: }: i' X6 T1 G. v4.延时1 u# g$ [0 n% i; _" @0 {  r/ R

! Y8 h) C, n3 O0 ~! [8 u4 ^2 I5.重复第一步(循环)
2 E# _, U7 x, V( `1 D6 n) x) y$ R2 P6 Y4 W& K1 ?0 K% j2 [1 [: y
  1. #include "stm32f10x.h"% V  S& K) G8 W  G

  2. : R' Z$ X8 |1 g! B9 v; I8 ~- _% e
  3. void Delay(unsigned int count)               //延时函数
    1 o3 y  h% }) U6 D/ d  L/ O& P
  4. {% B, O+ }7 w3 W; V3 S
  5.     unsigned int i;; J, I' ]6 |" A8 D: w9 O
  6.     for(;count!=0;count--)& ^, |, K- o7 s6 Q: a8 x& X! n
  7.     {6 k) p  T" _" G; B
  8.     i=5000;
    " k5 Z5 P* @" a* \, |! ^5 K
  9.     while(i--);
    . S1 I  H; L, o& \- `! u7 Z
  10.     }
    " n4 @* U9 n* b+ @7 {
  11. }0 q& v8 B7 L* M1 F/ \2 e
  12. int main(void)
    % Y0 f1 t$ y" M8 @, I
  13. {8 p- O& P0 N- y- g5 M+ w% m( b
  14.                 GPIO_InitTypeDef GPIO_InitStructure;
    ) {% }* R/ W/ h" H
  15.                 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);                 //使能GPIOB时钟
    5 h& @/ j- A  c+ j5 @
  16.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                   //PB8引脚配置
    2 u1 W5 e2 Y2 |6 x: \& d% ~7 V
  17.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;            //配置PB8为推挽输出& }+ u6 l) K( I; q/ {3 T; @( Y
  18.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;           //GPIOB速度为50MHz
    ; u% b" i# @  {1 C. l. B! S
  19.                 GPIO_Init(GPIOB, &GPIO_InitStructure);                      //初始化PB8
    / }* s1 s# g9 f
  20.         GPIO_SetBits(GPIOB,GPIO_Pin_8);                    //PB8输出高电平,LED熄灭
    8 e; v# s+ ~1 V" D
  21. ! L0 z9 P. _4 D, ^
  22.         while(1)
    4 K1 e3 X  [5 C+ W
  23.         {; X% o* Y2 Z* t) N7 F% t
  24.              GPIO_ResetBits(GPIOB,GPIO_Pin_8);             //PB8输出低电平,LED点亮/ x+ j1 }; Y* r/ ?
  25.              Delay(100);                                   //延时,保持点亮一段时间2 P, N- k6 @: P9 x
  26.              GPIO_SetBits(GPIOB,GPIO_Pin_8);              
    : X6 U# Z0 N) I  l' Q9 U( g' p
  27.              Delay(100);                                   //保持熄灭一段时间, K3 [1 V1 s7 B% O' y( p3 y
  28.         }
    7 I/ S  b+ [& ?/ n% {8 e3 ]
  29. }
复制代码

" a* x( z$ v3 z7 p2 K8 [0 N& t: ~# _: L& w/ s4 e# i) e; P
延时说明:因为stm32指令反应速度很快,人眼很难识别,所以需要延迟一段时间,这样就能看到闪烁效果
7 C/ |+ Q- i# |* s9 K
; |$ ?+ Z$ Z) E2 \/ u+ [5 S! H
, q' n0 {* i+ a' \5 ~: g  v! O
收藏 评论0 发布时间:2022-5-25 18:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版