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

基于STM32F103C8T6的点灯设计

[复制链接]
STMCU小助手 发布时间:2021-8-10 13:28
学习目的:本设计是基于STM32F103C8T6单片机完成入门点灯设计。
6 }; U/ F* Z% w
/ X+ W# G$ V8 _1 N5 L0 Y
. p, L2 i+ e* d, M; D6 m
根据STM32F103C8T6的原理图,可知LED2与CPU的PC13相连,当PC13=1(高电平)时,LED2呈熄灭状态;当PC13=0(低电平)时,LED2呈点亮状态。
& N* N' o; c! ~! ^. k( ] 1.png 2 O  w) `% D: T0 P" ~
8 F% J) B7 t( l( e' R# W8 H
1 \/ k7 ?% K- g% I- {7 y& g
参考代码如下:$ Z/ U% ^" P. u& L9 N# r/ L
  1. <font face="微软雅黑" size="3">//main.c
    4 I3 o& ~0 L& @3 }

  2. 1 v1 R$ m; z( O1 ^) a8 f# B
  3. #include "stm32f10x.h"
    " C3 V& R& e9 r8 U8 [, l" e5 b/ X

  4. : [! c* ?; m. h% n" ?% u
  5. #include "led.h"0 Y) z! m4 ^$ v# u, _

  6. - s. ^3 y+ |0 W1 k# z8 D* M
  7. #include "delay.h"
    6 A9 |" [* w9 A5 s: s
  8.   v+ x7 {2 u" x) ~5 W; i
  9. int main(void)9 p2 g% q% |% O  a5 m
  10. . q3 i, e5 M7 Z7 A# w; u. {' K
  11. {
    ) U7 u$ r: E; ^+ |6 }" M

  12.   M1 n0 i& v% p% s
  13.         LED_Init();+ W/ \/ u- m) G2 U

  14. + `' E+ v' J2 m; Y( w
  15.         while(1)3 a. Q) a- [+ F+ ~( A( v

  16. - r9 X5 P  X+ c( c9 j
  17.         {
    9 z( s* v3 P) b5 e1 w& d3 X* Z

  18. - ?, D  \1 ]0 Q! K
  19.                 GPIO_ResetBits(GPIOC,GPIO_Pin_13);+ ]8 a) [" m! c$ u, o, `. g

  20. * ^9 ^, x/ u: i  _! s0 D
  21.                 delay(200);
    . U" I) H$ j! {" t* _+ p
  22. 6 {$ {4 q7 G) l$ M/ C* L  |
  23.                 GPIO_SetBits(GPIOC,GPIO_Pin_13);9 }& K$ M2 ~. b: y

  24. 5 n5 X  x, i$ x; a# d" y
  25.                 delay(200);/ m. D- D. X' f% K0 Q

  26. , _/ \/ A3 X8 |! h$ k
  27.         }
    8 z# H% ~1 y  U: F

  28. ; e- i  l+ n6 G% }( ]4 H3 f/ ^6 U7 [
  29. }</font>
复制代码

# {9 X6 I" T7 z9 v$ k. H3 n

, Q+ Z' @% Z; H  K4 I
  1. <font face="微软雅黑" size="3">//led.c, v' k6 r" X0 S* c0 ?$ L
  2. / O( |/ z9 v2 t
  3. #include "stm32f10x_rcc.h"1 F1 i6 [. _3 U/ [" j

  4. 1 r) }1 m& f2 ?$ Y6 y
  5. #include "stm32f10x_gpio.h"0 e. A6 Q2 }1 b" o
  6. 3 D% i/ X1 g. s) B
  7. void LED_Init(void)- Z7 V6 I' I2 b- |% C. R$ G
  8. / u* ?) P9 f% d2 o8 v# k$ l) S
  9. {
    # f7 k% C5 @, [  i: a
  10. % E/ X& i7 I& r  H
  11.         GPIO_InitTypeDef GPIO_InitStruct;
    ! O  R$ l8 I9 u+ t
  12. $ O" `1 x# w+ T9 _; J. `, A/ Z
  13.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);; w* l5 c1 Z5 _3 P7 T) {
  14. : m+ _1 R9 X/ v
  15.         GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
    7 q  g7 C1 f1 U/ x
  16. - x  `6 O% H0 v- y& x
  17.         GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13;3 `  D! o- I9 E9 \  @6 z; E6 z

  18. 6 |2 S2 L. m7 V  ]. F( H1 z$ U
  19.         GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
    5 l" i: R2 M4 k$ X8 d! {

  20.   @$ j. K: ^7 C/ b1 Y
  21.         GPIO_Init(GPIOC,&GPIO_InitStruct);$ d5 c' M7 [* ]1 I/ U& A' t) F
  22. * T! k) a2 G, H, n+ g
  23.         GPIO_SetBits(GPIOC,GPIO_Pin_13);
    + s$ d( [( }5 l
  24. , n- P: }1 V! x% M, @) D# ?4 Q
  25. }</font>
复制代码

+ l: a6 i& d  E2 e2 ~
% c! W) o0 {4 C4 M
  1. <font face="微软雅黑" size="3">//led.h
    & i% V1 _- v1 J+ H

  2. * @- Q  b" I7 a2 C& g3 D, U& Y/ p
  3. #ifndef _LED_H. s& I5 p, @/ Y+ ]* k1 f
  4. 4 m: G! z: x8 S% A
  5. #define _LED_H# x' R  I0 @4 l& ^7 Z; N
  6. - u: Q+ K5 o* K- |7 \2 u
  7. void LED_Init(void);  T- u6 M" Z& P/ a& W/ m+ d
  8. 9 Z6 j2 ^' F: ]; I
  9. #endif</font>
复制代码
+ g* Q9 }0 r# `8 C
' k, A) {# o' F  }6 M
  1. <font face="微软雅黑" size="3">//delay.c
    6 [. c1 _0 R  J
  2. * C9 q9 q6 c$ y1 \
  3. #include "stdint.h"
    / I2 H9 O$ N1 V+ a
  4. " y$ u8 h+ e$ E  q/ l" D
  5. void delay(uint16_t timers)
    1 b' Q% V$ B" W5 U& \9 [/ e
  6. 0 y* J) w' v7 U7 g0 {; u& B
  7. {4 t, N' B7 `  h1 N% ~
  8. 9 f/ X' V5 o4 w9 A/ X
  9.         uint16_t i,j;9 V5 z5 T3 U, y1 z; p/ ?1 T, M
  10. ) u, f0 K5 L$ W- z' C1 b
  11.         for(i=0;i<timers ;i++)
    ' _$ k# w& B1 \9 p

  12. + v" S! Y, x" f* A; U3 G
  13.         {' h8 Y: X( T' q5 q( t9 r6 |
  14. / @1 Q) X9 p+ q! q7 @! \5 q3 l) d
  15.                 for(j=0;j<0xffff;j++)
    8 @- g' A& [! j1 f( ]

  16. " z+ M( b5 p, p0 j+ u
  17.                 {}+ u. M! }* I1 ]: Y: d

  18. 3 U9 m- z+ ]) U5 F7 e" h1 E
  19.         }
    ) y  v- M) r. z+ s* w1 Q6 y6 K
  20. . _' ]4 y5 h. p. s* H+ _$ [
  21. }</font>
复制代码
; |- B& d% e. K" u. ^8 D- T

4 r$ q7 t# W. m3 t' L. H# ?  {
  1. <font face="微软雅黑" size="3">//delay.h/ [! W  a+ Q8 W4 j* r" l( u7 U4 J
  2. / i$ U2 Z( ~+ d
  3. #ifndef _DELAY_H
    ( L2 \9 @1 g% u  T/ i, `: s
  4. % r% T1 e; U# c2 Y: c+ G
  5. #define _DELAY_H
    * e- m, a+ p7 S  t& U3 E! X) n! M

  6. 8 |, y6 q( e* h1 Q
  7. #include "stdint.h"/ s+ l  B; W7 M/ [3 z
  8. 6 B, S3 [  Q+ J9 ^4 g
  9. void delay(uint16_t timers);/ h# g5 q$ i9 U4 e$ d. @! k8 n
  10. / ~: k( ]# x$ j4 s
  11. #endif</font>
复制代码
4 R2 |4 P0 z0 j
% x# C  i0 \) L$ d3 `7 q) I6 i8 ]
收藏 评论0 发布时间:2021-8-10 13:28

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版