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

【经验分享】stm32单片机 代码实现歌曲——红尘情歌

[复制链接]
STMCU小助手 发布时间:2022-5-26 21:01
mian.c
1 w6 G9 F4 s/ B% a9 t4 p
2 Q( R1 m3 f6 v, a
  1. #include "sys.h"        
    , h/ l* u8 h; w
  2. #include "delay.h"        , R$ y7 V! B( G' a- R$ V
  3. #include "led.h" 9 q( o- P7 A+ @4 T0 Y
  4. #include "beep.h"- v. V7 ?. n6 h+ ]4 T9 r8 X
  5. u8 music[]={8 f' V$ v3 J& p% A, c# f' V% v
  6.         5,10,10,5,5,9,9,16,8,8,8,9,10,5,5,16, //???????,???????
    & `* n" q( v# K- I/ l; v
  7.         6,8,8,6,5,10,10,16,9,8,8,6,9,16, //???????,?????8 H  v" X+ c/ z6 V+ v
  8.         5,10,10,5,5,9,9,16,8,8,8,6,5,10,10,16, //???????,???????
    ( s) u/ ?; J- J8 H
  9.         6,11,11,6,5,10,10,16,9,8,8,6,8,16, //???????,?????) l" ~% T) `/ m! j/ N# f
  10.         5,12,5,5,12,5,9,16,8,6,8,8,8,10,12,16, //???????,???????!
    ) |' l# z7 f0 h/ R( i/ U$ n
  11.         8,6,8,8,8,13,12,10,9,8,6,8,8,10,9,16, //??????,?????,?????2 d5 ^" B; [7 V) ~1 C5 F( \$ k% h2 [
  12.         5,12,5,5,12,5,9,16,8,6,8,8,13,12,16, //???????,??????
    . j: ^; f- }. a6 T$ o' T
  13.         8,8,8,13,12,10,9,8,6,8,8,9,8,16, //?????????,??????
    ' z4 p, x5 Z( ?, F) e, Q
  14. };- m! k* e2 e/ ^) X
  15. u8 time[] = {
    8 Z8 }8 Z' E9 s
  16.         4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, //???????,???????
    9 f8 z# ?7 A- h5 W0 A
  17.         4,4,4,4,4,4,4,4,4,4,4,4,8,4, //???????,?????
    " u% M* W- ]# G
  18.         4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, //???????,???????
    & g3 b- \1 H3 J- j4 x! ~- Z; e& b
  19.         4,4,4,4,4,4,4,4,4,4,4,4,8,4, //???????,?????/ d; a9 Z7 U- r' j& H( ^* n8 l
  20.         4,4,2,2,4,4,4,4,4,4,2,2,4,4,8,4, //???????,???????!
    / T* ^& @7 x1 v4 p, C* N
  21.         4,4,2,2,4,4,4,4,4,4,4,4,4,4,8,4, //??????,?????,?????' w1 O+ }1 B! e& N# X# o9 P
  22.         4,4,2,2,4,4,4,4,4,4,4,4,4,8,4, //???????,??????0 Z, D9 H7 L9 K
  23.         4,4,4,4,4,4,4,4,4,4,4,4,8,4, //?????????,??????* d4 ~" u# C: B$ h/ O- @
  24. };
    : c; i4 k. M3 ^7 O
  25. void Sound(u16 frq)$ v# w+ u3 \6 h
  26. {   
    ' w1 T& Q9 y3 `1 a+ u& k
  27.     u32 n;
      g$ {- h) r, K& L/ q9 h  ~$ v
  28.     BEEP = 0;
    . s$ l( Y9 N5 R) U
  29.     if(frq != 1000) + A! _3 O7 }. r, q+ h
  30.     {( K( x3 \! W; g( X! E: G8 q! i
  31.         n = 500000/((u32)frq);
    * Y+ d7 N' a5 F
  32.         BEEP = 0;* {5 ~+ m# R* @9 c; _0 e0 V
  33.         delay_us(n);
    " H7 s- j  }" _  ~; x
  34.         BEEP = 1;6 W' U4 b( M) R. [
  35.         delay_us(n);
    * ^$ v& m4 N) d" l$ h  Z; S7 p
  36.     }' x$ h. R! Y% x5 W
  37.     else
    % n8 `' E/ N' F1 p- O/ G
  38.     {" ^1 n- j) y6 }( M
  39.             delay_us(1000);
    - T$ j' F' Q6 ~
  40.     }         
    / W5 E) }# K$ v+ j' a$ ?, g9 [
  41. }
    ; v% {" q* y; w7 }" V# ~2 s: u
  42. void play(void)  h, j- |2 d! S
  43. {
    * p( |* T! c( _! n: M7 C
  44.          uc16 tone[] = {247,262,294,330,349,392,440,494,523,587,659,698,784,1000};//?????
    ' s. |; s+ O% ^' b9 q/ `) I% {- \
  45. u8 music[]={      
    : a% c6 |. S7 k" h3 h
  46.         5,5,6,8,7,6,5,6,13,13,//??
    4 b  |4 t! u' M. J
  47.         5,5,6,8,7,6,5,3,13,13,6 B; Y; g1 D1 i: q. O5 y
  48.         2,2,3,5,3,5,6,3,2,1,
    * R2 J( b  J6 q+ k
  49.         6,6,5,6,5,3,6,5,13,13,3 Y" t( d! {+ \$ p
  50.         5,5,6,8,7,6,5,6,13,13,% [. U, {$ K4 q4 H( i# \
  51.         5,5,6,8,7,6,5,3,13,13,
    ! Q# a* \4 ^- x9 E9 f
  52.         2,2,3,5,3,5,6,3,2,1,
    " p+ c& N: U/ H' i
  53.         6,6,5,6,5,3,6,1,   6 w1 @. C- [% D, G+ i
  54.         13,8,9,10,10,9,8,10,9,8,6,2 t4 Y1 I# C, Q7 n1 I
  55.         13,6,8,9,9,8,6,9,8,6,5,; s$ Z. v) G! b0 |) d7 {
  56.         13,2,3,5,5,3,5,5,6,8,7,6,; O, t' B, I2 `/ a$ u( n* ?" ?
  57.         6,10,9,9,8,6,5,6,8; A9 ?9 ^: j* c: u- ^. q0 u! r+ D
  58. };     
    # a- `0 |& i: o3 p5 \$ v( l9 k
  59. u8 time[] = {       ( Q  F  z8 _" i1 \
  60.         2,4,2,2,2,2,2,8,4, 4, //??. u, y+ ?6 Y& I/ G! y+ }: C
  61.         2,4,2,2,2,2,2,8,4, 4,
    * z) K9 n2 k' @4 T/ W0 N/ R( W4 }
  62.         2,4,2,4,2,2,4,2,2,8,
    ' u, _2 v/ \& r  s2 O
  63.         2,4,2,2,2,2,2,8,4 ,4,# X* T- y4 C: Z3 A# H1 ]
  64.         2,4,2,2,2,2,2,8,4, 4,
    , _6 m8 b, m. ~' `; f' x; g+ r
  65.         2,4,2,2,2,2,2,8,4, 4,5 j. X4 M& N( C7 p
  66.         2,4,2,4,2,2,4,2,2,8,# x* n5 T( v. a7 o& s3 m0 L
  67.         2,4,2,2,2,2,2,8,
    9 V  u/ K/ t# O6 C2 X
  68.         4, 2,2,2, 4, 2,2,2, 2,2,8,
    5 a- o2 V$ y& `. e' z
  69.         4, 2,2,2,4,2,2,2,2,2,8,
    6 e# t* Z1 r4 I/ ^  c' m. r, j
  70.         4, 2,2,2,4,2,2,5,2,6,2,4,* a1 z  s% [. B, y4 r
  71.         2,2 ,2,4,2,4,2,2,123 X; ~0 i# A5 V3 L
  72. };     
    # K8 S3 K6 [1 d+ L# a
  73.     u32 yanshi;
    ; P3 B% F, p# a7 [
  74.     u16 i,e;
    : p" c( m( I7 @8 `$ d0 L
  75.     yanshi = 10;3 \' l& z2 E* I& O1 u  b
  76.     for(i=0;i<sizeof(music)/sizeof(music[0]);i++)- o" z& c5 ]- B* k
  77.     {; b7 D; G; ]( y. a: j- S# ?
  78.          for(e=0;e<((u16)time<i>)*tone[music<i>]/yanshi;e++)
    " x! G5 H- M$ N' p; {# h
  79.          {1 i7 o) J, j7 d! l4 }
  80.                  Sound((u32)tone[music<i>]);6 c& W' d4 J5 {8 K! D
  81.          }      # j* i2 h  Y9 F/ b4 U% O
  82.     }( E, A  t: o$ [, r- x& ?' |
  83. }. n. g5 c' U! C' m
  84. int main(void)/ J  [' ^/ |0 T# K1 }) l- r8 _
  85. {
    % C  n& x8 z7 L" h$ j7 z& n. x; u
  86.         delay_init();                     
    $ }$ N) ?2 I; r" k' P* D0 N( g$ ]' Z1 K
  87.         LED_Init();                          
    3 @3 Z7 I* n: i4 J. y/ X3 U
  88.         BEEP_Init();                 
    1 c3 P7 Q2 v7 T% S9 l# R  K+ V  t
  89.         BEEP = 0;
    - C4 Y" V( r0 p
  90.         play();; Q6 d9 X" {3 h% G; u
  91.     while(1);                        
    1 r% g( o! K# @- D
  92. }</i></i></i>
复制代码
" p% ^0 G0 L' N, K  Y( i# |
beep.c7 [4 _4 d& H4 o0 b% ~! V+ r

$ ]; t! I7 s% G2 j8 x4 T/ v6 g
  1. #include "beep.h"# p& F; M: ~3 D, s
  2. void BEEP_Init(void)0 a/ ?; D& D. I0 _- y% g
  3. {9 u% w' @3 S! _0 {. h+ s! [
  4.         GPIO_InitTypeDef  GPIO_InitStructure;
    " k* e! y4 f1 j6 w8 A5 V5 w
  5.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);        ) U5 o8 L9 y/ y4 J
  6.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                                 ; c& I- v( z+ N# p, Z
  7.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                 ; j; ]& j) E1 u1 |
  8.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         
    1 G" o, c3 x6 \
  9.         GPIO_Init(GPIOB, &GPIO_InitStructure);         
    ; D% T# m/ S; ?) D8 S& W8 `: A8 P
  10.         GPIO_ResetBits(GPIOB,GPIO_Pin_8);3 x' Q2 @# ~* n7 Q1 ?) h6 S# o/ \
  11. }
复制代码
, O( b! k" e9 M2 _% [
beep.h
+ I8 j- M1 T: M6 F' s6 c1 G7 b  w" |, S9 h4 o2 W, D$ O) B) ~
  1. #ifndef __BEEP_H# d$ W! {/ G7 C+ a% z) Z& o+ j8 J
  2. #define __BEEP_H         / w& O& z% l, L5 F  i8 @
  3. #include "sys.h"! W  L1 c7 C' q0 g; {+ z
  4. #define BEEP PBout(8)
    ( w+ k4 O* G& @8 h5 P/ s  w, Y
  5. void BEEP_Init(void);                            6 X4 S0 r) ^6 _  N
  6. #endif
复制代码
6 z; `. y+ R. X, X/ [* m5 @
1 h9 x. ?7 T: V% s1 L0 P1 X

' b  ~, i) Q: N; G6 t
收藏 评论0 发布时间:2022-5-26 21:01

举报

0个回答

所属标签

相似分享

官网相关资源

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