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

STM32入门之呼吸灯

[复制链接]
STMCU小助手 发布时间:2022-8-20 17:00
呼吸灯的实现,主要是利用开个Led灯的时间不同,利用人眼睛的视觉残留效果以达到呼吸灯的效果/ T% _; r+ F4 T# A
4 m8 U" {# ~5 }' Y% d
  1. #include "stm32f10x.h"# m2 \# [2 O' i8 T: T: y( I: ^$ T
  2. # b" c; N  V' u. g% Z/ r
  3. void delay_us(u32 time) // 延时函数
    . n0 N9 W0 C+ E
  4. {$ H' F& N  B, C! x* F5 S: g
  5.         SysTick->LOAD = 72 * time;
    * @, k" o7 V4 ?$ v
  6.         SysTick->VAL = 0x00;
    + c: p+ F2 [6 r4 }- s
  7.         SysTick->CTRL = 0x00000005; //打开时钟源
    ; w9 k; i) H7 u( M; y5 b
  8.         while( !(SysTick->CTRL & 0x00010000));
    0 j6 f1 h' h9 _9 O3 I% K+ H
  9.         
    2 R! x* Z" F; _+ N4 L  a4 B
  10.         SysTick->CTRL = 0x00000004; //关闭时钟源0 I* K) w7 w; M1 o6 N
  11.   Y+ o) x5 T, q
  12. }6 }2 ?; y$ t+ A9 B, j* O

  13. - E  s( F0 R2 N. y! S8 g
  14. void LED_Init()" y# g4 d# v( f) C% ^
  15. {
    ! K% ^, l5 @; y; r8 S  f
  16.         GPIO_InitTypeDef gpio;4 H7 z7 g. f0 f7 k( t2 ~/ R0 Z% {1 }
  17.         
    ! K# e2 \7 C6 p. C% Q2 N. h
  18.         gpio.GPIO_Pin = GPIO_Pin_1;
    & g& V, ~. w# g2 |- P% a* m" t! c
  19.         gpio.GPIO_Mode = GPIO_Mode_Out_PP;
    : H0 j; Q( {6 _1 q8 r) t
  20.         gpio.GPIO_Speed = GPIO_Speed_50MHz;
    * G2 C& L+ s  i  c' A, ]
  21.         - K7 ^: e. _7 `% V, P5 k- N: L
  22.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    # `8 i8 Y4 A/ ~6 k' r3 ^, l' M
  23.         4 `/ v$ |' K" Y% l: n6 ^
  24.         GPIO_Init(GPIOB,&gpio);) ~( n3 {- j0 X: k
  25.         1 K2 i* S/ ^0 M0 \% f
  26. }$ W: S. u6 c) ?( v8 |
  27. int main(void)* W5 P, k) F+ w& e( @
  28. {        ( a5 d( v# x" u! T1 A. @
  29.         int i=1;
    , y4 B3 K# m7 N7 _
  30.         LED_Init();
    / q( |; W0 \$ v* ^
  31.         int flag = 0;
    & f% {0 T) B. f
  32.         while(1); [- f4 i4 J& {$ k* q$ x0 S
  33.         {
    ' E- Z) `- h4 L9 u' P
  34.                 for(i=1 ;i<100;i++) //暗到明& G  f2 v9 t: d; f
  35.                 {4 p* B8 A/ s+ W$ P+ h( u
  36.                 GPIO_WriteBit(GPIOB,GPIO_Pin_1,(BitAction)(1));/ h4 l+ ^0 l: L* i, W
  37.                 delay_us(i*10);* P. N& B  N' J0 j  y' b( T$ k
  38.                 GPIO_WriteBit(GPIOB,GPIO_Pin_1,(BitAction)(0));5 _) W, D% N! x! J& c6 s- \
  39.                 delay_us(2000-i*10);                                : q; W. l* K* o$ ]8 S+ i
  40.                 }) G% i$ |! s5 H
  41.         }: Q/ w3 j2 H# b
  42.         
    % p7 J" J) B3 [: e7 g4 u+ e4 J
  43. }% G1 ~4 S7 U- S; @/ I- k2 |
复制代码
" i9 O" X# G" q. S( }2 l
6 k" o' ~4 Y: w% c) h2 R
赞 收藏 评论0 发布时间:2022-8-20 17:00

举报

0个回答

所属标签

相似技术帖

官网相关资源

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