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

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

[复制链接]
STMCU小助手 发布时间:2022-5-25 18:00
STM32的LED控制图在上一篇博客里,需要的话可以参考
3 ]4 A8 `* u( B9 e  h' j. g+ M+ {
LED闪烁控制的步骤
* E6 P- E4 r  Y7 v* L5 c
! t& m8 s& R0 R1.PB8引脚输出低电平,LED点亮
( F3 [+ n1 X. w+ q6 x, }% n5 F# Z* F4 m$ Y  \7 X- \7 ^
2.延时
: J7 G/ h  c+ T1 S0 t8 c) f- [
+ d+ E( k; E: |3.PB8引脚输出高电平,LED熄灭; y  N1 b9 q# D* T3 ~

+ M( w! x/ _) P) L4.延时+ O: K3 z% I! ^) Z
1 Y. M% P+ X. X4 X
5.重复第一步(循环)
6 J- |/ u& @3 Y" e5 e# W# l" o. r, z/ e6 F: b# R: {; a
  1. #include "stm32f10x.h"+ ^. H  _- W$ B4 ?2 r* O) o* B# N5 l
  2. % M1 V  t7 x( O# ?# j; g/ w
  3. void Delay(unsigned int count)               //延时函数
    2 }! a0 D# Q5 w6 O
  4. {/ w- q( K1 f- q9 C  K' r
  5.     unsigned int i;) H9 Z6 l$ j3 [# b0 ~/ `" k
  6.     for(;count!=0;count--)/ Z0 U) b" |, ~5 b  M
  7.     {; F( e2 X- x+ V4 s8 n9 m4 M0 x6 z
  8.     i=5000;  k( m8 X( T( j" J% n* _
  9.     while(i--);! I) A) g8 w/ a/ W
  10.     }& n7 l! b+ K% V! U, g
  11. }/ `- k1 g) f6 s& [8 ~
  12. int main(void)/ @% n3 K- L/ i0 T# U
  13. {
    " Q# W! F/ d3 u7 c
  14.                 GPIO_InitTypeDef GPIO_InitStructure;
    ) _- z0 x5 q  ?# d6 L7 N
  15.                 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);                 //使能GPIOB时钟
    $ ^. `& g! Z; m
  16.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                   //PB8引脚配置+ J8 P9 `% |* f, t% c
  17.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;            //配置PB8为推挽输出+ r8 p0 C+ I- p$ V
  18.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;           //GPIOB速度为50MHz
    0 V; d/ ?- u$ k# I' F9 e
  19.                 GPIO_Init(GPIOB, &GPIO_InitStructure);                      //初始化PB8
    ( i9 S) `# N, H$ @  n+ L
  20.         GPIO_SetBits(GPIOB,GPIO_Pin_8);                    //PB8输出高电平,LED熄灭
    4 M! Z2 k2 P: |# c
  21. " x; c# }5 e2 T  p
  22.         while(1)
    6 R+ N* k/ q% v; @& y
  23.         {
    7 ^0 x* C" v1 z, G/ v, T
  24.              GPIO_ResetBits(GPIOB,GPIO_Pin_8);             //PB8输出低电平,LED点亮
    * h1 d/ ?0 ]/ `  B
  25.              Delay(100);                                   //延时,保持点亮一段时间
    8 B8 q# T5 T0 d' u# N( s! L
  26.              GPIO_SetBits(GPIOB,GPIO_Pin_8);              
    0 Y# ?) `2 f2 G8 k; C
  27.              Delay(100);                                   //保持熄灭一段时间
    ( O+ L$ ~% W/ ~3 s/ |! O
  28.         }3 g7 j& M1 I8 A- O3 R4 X$ Q' ?
  29. }
复制代码
5 b+ {8 m# b8 |5 Y+ J
% _( e. A( e" o0 D9 z
延时说明:因为stm32指令反应速度很快,人眼很难识别,所以需要延迟一段时间,这样就能看到闪烁效果
* _( l! q/ `7 [2 `: |  j! Q$ ^4 f9 `; U) c+ \# s+ a) K: o
5 p7 v8 R5 ]6 p& \/ k9 P
收藏 评论0 发布时间:2022-5-25 18:00

举报

0个回答

所属标签

相似技术帖

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