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

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

[复制链接]
STMCU小助手 发布时间:2022-5-25 18:00
STM32的LED控制图在上一篇博客里,需要的话可以参考
, N& @0 ]+ O1 j0 K* ~& P" b
; q& v: l: H3 }7 v2 [$ u  `* ^LED闪烁控制的步骤
+ |5 `" P- [3 S' P9 S
' n1 ~2 J! t9 j- O  W1.PB8引脚输出低电平,LED点亮$ i. |1 w# J+ ], g8 S' B

- n/ `& b; ^6 Z. W& b2.延时
% n1 i: D( r0 J7 g. j( a/ e4 |- R7 r1 H& E  M# Q
3.PB8引脚输出高电平,LED熄灭
, ^  w& p0 {$ M" c& e/ o! }4 s4 M
4.延时
( F5 W6 y! v$ y, K) p; R5 q( \9 F5 @# |% |0 W6 d5 N. Y
5.重复第一步(循环)4 B) k2 l0 X; k3 a

# C% L, t- Y( q! m) {* c
  1. #include "stm32f10x.h"0 q7 k$ W+ q) q0 O- _

  2. ' b- a- A. B0 a3 E5 ?
  3. void Delay(unsigned int count)               //延时函数
    3 p7 \, F+ s! V) N/ I  P' G
  4. {
    , ~. l8 c7 _8 u: q9 d$ j# R
  5.     unsigned int i;2 B; K# ~% ?* B) i; \) x
  6.     for(;count!=0;count--)
    : p( A( z- ?' P
  7.     {
    7 E2 u8 G. I. ^7 ~2 |7 g- U& g! y
  8.     i=5000;# E! Q" z& S6 V! S) A# S
  9.     while(i--);% L& E: j6 o, r4 H( r* s& K
  10.     }- l, f" r# M) e
  11. }
    ' }% K1 M1 {" J3 R- C9 Q( y
  12. int main(void)) s) ^- f; j( r6 y" F  f9 V
  13. {
    6 @4 b9 X6 z7 P
  14.                 GPIO_InitTypeDef GPIO_InitStructure;% Z# @- Y: M: `
  15.                 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);                 //使能GPIOB时钟, X) `" M. ], Q- H- c$ D. A
  16.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                   //PB8引脚配置
    * M- Y8 [$ A" C! h6 l0 g4 ^$ t$ Q
  17.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;            //配置PB8为推挽输出8 m$ ]1 u6 E4 g5 @
  18.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;           //GPIOB速度为50MHz9 \: Z0 u. w+ T, K8 e
  19.                 GPIO_Init(GPIOB, &GPIO_InitStructure);                      //初始化PB8
    . o& ^5 f  y- ~5 J* i& h
  20.         GPIO_SetBits(GPIOB,GPIO_Pin_8);                    //PB8输出高电平,LED熄灭
    $ y, u6 @2 X4 G+ c* j. L

  21. 7 H* e" _. l& j! L* e; Y
  22.         while(1)% P5 x! U) t5 Z8 x! y8 Y. k" o
  23.         {
    ( C' Y# R) ~. J3 k/ s. _4 G
  24.              GPIO_ResetBits(GPIOB,GPIO_Pin_8);             //PB8输出低电平,LED点亮
    * E: ~* Q- c3 k+ M; J# I5 o
  25.              Delay(100);                                   //延时,保持点亮一段时间
    6 {/ n9 o/ I, F  q
  26.              GPIO_SetBits(GPIOB,GPIO_Pin_8);              
    2 o  E7 @. n# @. h
  27.              Delay(100);                                   //保持熄灭一段时间* P, n; q1 D3 @" b- F7 S1 Q
  28.         }& T. q* O! ^9 t  d
  29. }
复制代码

" x) L# S% z8 A* Y# ^2 G
2 h3 \$ ?8 c9 Y5 ~% w延时说明:因为stm32指令反应速度很快,人眼很难识别,所以需要延迟一段时间,这样就能看到闪烁效果
/ T8 t4 Y& V& x
3 |4 G$ i1 o( @1 S( [
6 n+ ], y; A) J* w
收藏 评论0 发布时间:2022-5-25 18:00

举报

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