《stm32f103通用定时器pwm应用例程蜂鸣器演奏乐曲.doc》由会员分享,可在线阅读,更多相关《stm32f103通用定时器pwm应用例程蜂鸣器演奏乐曲.doc(13页珍藏版)》请在三一办公上搜索。
1、STM32F103通用定时器PWM应用例程:蜂鸣器演奏乐曲一 说明:本例程是将流明LM3SLib_Timer.pdf文档中的例程9及例程10(PWM应用:蜂鸣器演奏乐曲),移植到STM32F103上。二流明LM3SLib_Timer.pdf例程9及例程10的拷贝:例程9 Timer PWM应用:蜂鸣器发声如图1.1所示,为EasyARM1138开发板上的蜂鸣器驱动电路。蜂鸣器类型是交流蜂鸣器,也称无源蜂鸣器,需要输入一列方波才能鸣响,发声频率等于驱动方波的频率。图1.1 蜂鸣器驱动电路程序清单1.9是Timer模块16位PWM模式的一个应用,可以驱动交流蜂鸣器发声,运行后蜂鸣器以不同的频率叫两
2、声。其中buzzer.h和buzzer.c是蜂鸣器的驱动程序,仅有3个驱动函数,用起来很简捷。程序清单1.9 Timer PWM应用:蜂鸣器发声文件:main.c #include systemInit.h #include buzzer.h/ 主函数(程序入口) int main(void) jtagWait(); / 防止JTAG失效,重要! clockInit(); / 时钟初始化:晶振,6MHz buzzerInit(); / 蜂鸣器初始化 buzzerSound(1500); / 蜂鸣器发出1500Hz声音 SysCtlDelay(400* (TheSysClock / 3000);
3、 / 延时约400ms buzzerSound(2000); / 蜂鸣器发出2000Hz声音 SysCtlDelay(800* (TheSysClock / 3000); / 延时约800ms buzzerQuiet( ); / 蜂鸣器静音 for (;) 文件:buzzer.h #ifndef _BUZZER_H_ #define _BUZZER_H_ / 蜂鸣器初始化extern void buzzerInit(void); / 蜂鸣器发出指定频率的声音extern void buzzerSound(unsigned short usFreq); / 蜂鸣器停止发声extern void
4、buzzerQuiet(void); #endif / _BUZZER_H_文件:buzzer.c #include buzzer.h #include #include #include #include #include #define PART_LM3S1138 #include #define SysCtlPeriEnable SysCtlPeripheralEnable #define GPIOPinTypeOut GPIOPinTypeGPIOOutput / 声明全局的系统时钟变量extern unsigned long TheSysClock; / 蜂鸣器初始化void buz
5、zerInit(void) SysCtlPeriEnable(SYSCTL_PERIPH_TIMER1); / 使能TIMER1模块 SysCtlPeriEnable(CCP3_PERIPH); / 使能CCP3所在的GPIO端口 GPIOPinTypeTimer(CCP3_PORT, CCP3_PIN); / 设置相关管脚为Timer功能 TimerConfigure(TIMER1_BASE, TIMER_CFG_16_BIT_PAIR | / 配置TimerB为16位PWM TIMER_CFG_B_PWM); / 蜂鸣器发出指定频率的声音/ usFreq是发声频率,取值 (系统时钟/655
6、36)+1 20000,单位:Hz void buzzerSound(unsigned short usFreq) unsigned long ulVal; if (usFreq 20000) buzzerQuiet( ); else GPIOPinTypeTimer(CCP3_PORT, CCP3_PIN); / 设置相关管脚为Timer功能 ulVal = TheSysClock / usFreq; TimerLoadSet(TIMER1_BASE, TIMER_B, ulVal); / 设置TimerB初值 TimerMatchSet(TIMER1_BASE, TIMER_B, ulVa
7、l / 2); / 设置TimerB匹配值 TimerEnable(TIMER1_BASE, TIMER_B); / 使能TimerB计数 / 蜂鸣器停止发声void buzzerQuiet(void) TimerDisable(TIMER1_BASE, TIMER_B); / 禁止TimerB计数 GPIOPinTypeOut(CCP3_PORT, CCP3_PIN); / 配置CCP3管脚为GPIO输出 GPIOPinWrite(CCP3_PORT, CCP3_PIN, 0x00); / 使CCP3管脚输出低电平例程10Timer PWM应用:蜂鸣器演奏乐曲程序清单1.10是Timer模块
8、16位PWM模式的一个应用,能驱动交流蜂鸣器演奏一首动听的乐曲化蝶(乐谱参见图1.2)。music.h和music.c是演奏乐曲的驱动程序。图1.2 乐谱化蝶简谱是大众化的音乐记谱方式,比较容易理解和掌握。我们可以把一首乐谱(score)看成是由若干个基本的音符(note)单元组成。一个音符由音名和时值组成。音名就是低音、中音、高音的1234567(唱作do re mi fa sol la si),其本质是音符的发声频率。在头文件music.h里,用L1L7、M1M7、H1H7定义了低音、中音、高音所对应的发声频率。时值是音符的发声时间长短,有全音符、二分音符、四分音符等等。音符可以后缀一个“
9、符点”,表示时值增加1/2,特殊地,二分音符加符点时用“”代替圆点。参见表1.26的描述。表1.26 常见简谱音符示例音 符 名 称 相 对 时 值 5 全音符 T 5 二分音符 T/2 5 四分音符T/4 5 八分音符 T/8 5 十六分音符 T/16 5 符点二分音符 T/2+T/4 5 符点四分音符 T/4+T/8 5 符点八分音符 T/8+T/16 在头文件music.h里定义有一个音符结构体tNote,有两个数据成员:音名mName和时值mTime。在C文件music.c里定义有一个tNote型常量数表MyScore ,用来保存实际乐谱转换成tNote格式的数据。有了上述一点点乐谱基
10、础知识,我们就可以很方便地编辑这个数表了。比如音符“3”转换为“M3, T/4”,音符“3”转换为“M3, T/4+T/8”,等等。在music.c里,已经在数表MyScore 里给出了乐谱化蝶开头一部分音符转换结果,其余部分请感兴趣的读者补充完整。程序清单1.10 Timer PWM应用:蜂鸣器演奏乐曲文件:main.c #include systemInit.h #include buzzer.h #include music.h / 主函数(程序入口) int main(void) jtagWait(); / 防止JTAG失效,重要! clockInit(); / 时钟初始化:晶振,6M
11、Hz buzzerInit(); / 蜂鸣器初始化 for (;) musicPlay(); SysCtlDelay(4000 * (TheSysClock / 3000); 文件:music.h #ifndef _MUSIC_H_ #define _MUSIC_H_ / 定义低音音名(数值单位:Hz) #define L1 262 / c #define L2 294 / d #define L3 330 / e #define L4 349 / f #define L5 392 / g #define L6 440 / a1 #define L7 494 / b1 / 定义中音音名#def
12、ine M1 523 / c1 #define M2 587 / d1 #define M3 659 / e1 #define M4 698 / f1#define M5 784 / g1 #define M6 880 / a2 #define M7 988 / b2 / 定义高音音名#define H1 1047 / c2 #define H2 1175 / d2 #define H3 1319 / e2 #define H4 1397 / f2 #define H5 1568 / g2 #define H6 1760 / a3 #define H7 1976 / b3 / 定义时值单位,决
13、定演奏速度(数值单位:ms) #define T 3600 / 定义音符结构typedef struct short mName; / 音名:取值L1L7、M1M7、H1H7分别表示低音、中音、高音的/ 1234567,取值0表示休止符 short mTime; / 时值:取值T、T/2、T/4、T/8、T/16、T/32分别表示全音符、/ 二分音符、四分音符、八分音符,取值0表示演奏结束tNote; / 演奏乐曲extern void musicPlay(void); #endif / _MUSIC_H_ 文件:music.c #include music.h #include buzzer
14、.h #include systemInit.h / 定义乐曲:化蝶(梁祝) const tNote MyScore = L3, T/4, L5, T/8+T/16, L6, T/16, M1, T/8+T/16, M2, T/16, L6, T/16, M1, T/16,L5, T/8, M5, T/8+T/16, H1, T/16, M6, T/16, M5, T/16, M3, T/16, M5, T/16, M2, T/2, / 省略后续乐曲数据,请感兴趣的读者补充完整 0, 0 / 结束 ; / 演奏乐曲void musicPlay(void) short i = 0; for (;
15、) if (MyScorei.mTime = 0) break; buzzerSound(MyScorei.mName); SysCtlDelay(MyScorei.mTime * (TheSysClock/ 3000); i+; buzzerQuiet( ); SysCtlDelay(10 * (TheSysClock/ 3000); 三 移植到STM32F103上:Timer3部分重映射 TIM3_CH2-PB5:PB5作为PWM输出。/ 定义低音音名(数值单位:Hz)#define L1 262#define L2 294#define L3 330#define L4 349#defi
16、ne L5 392#define L6 440#define L7 494/ 定义中音音名#define M1 523#define M2 587#define M3 659#define M4 698#define M5 784#define M6 880#define M7 988/ 定义高音音名#define H1 1047#define H2 1175#define H3 1319#define H4 1397#define H5 1568#define H6 1760#define H7 1976/ 定义时值单位,决定演奏速度(数值单位:ms)#define TT 2000typed
17、ef struct short mName; / 音名:取值L1L7、M1M7、H1H7分别表示低音、中音、高音的1234567,取值0表示休止符 short mTime; / 时值:取值T、T/2、T/4、T/8、T/16、T/32分别表示全音符、二分音符、四分音符、八分音符.,取值0表示演奏结束tNote;int main(void) delay_init(); /延时函数初始化 NVIC_Configuration(); /设置NVIC中断分组2:2位抢占优先级,2位响应优先级TIM3_PWM_Init(14399,10); /分频。PWM频率=72000/14400/11(Khz)fo
18、r (;) musicPlay(); delay_ms(1500); delay_ms(1500); /PWM输出初始化/arr:自动重装值/psc:时钟预分频数void TIM3_PWM_Init(u16 arr,u16 psc) GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); RCC_APB2Pe
19、riphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); /使能GPIO外设和AFIO复用功能模块时钟使能GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); /Timer3部分重映射 TIM3_CH2-PB5 /设置该引脚为复用输出功能,输出TIM3 CH2的PWM脉冲波形GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; /TIM_CH2GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; /
20、复用推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);TIM_TimeBaseStructure.TIM_Period = arr; /设置在下一个更新事件装入活动的自动重装载寄存器周期的值 80KTIM_TimeBaseStructure.TIM_Prescaler =psc; /设置用来作为TIMx时钟频率除数的预分频值 不分频TIM_TimeBaseStructure.TIM_ClockDivision = 0; /设置时钟分割:TDTS = Tck_tim
21、TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /TIM向上计数模式TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); /根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; /选择定时器模式:TIM脉冲宽度调制模式2TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; /比较
22、输出使能TIM_OCInitStructure.TIM_Pulse = 0; /设置待装入捕获比较寄存器的脉冲值TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; /输出极性:TIM输出比较极性低TIM_OC2Init(TIM3, &TIM_OCInitStructure); /根据TIM_OCInitStruct中指定的参数初始化外设TIMxTIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); /使能TIMx在CCR2上的预装载寄存器TIM_ARRPreloadConfig(TIM3,
23、 ENABLE); /使能TIMx在ARR上的预装载寄存器TIM_Cmd(TIM3, ENABLE); /使能TIMx外设/ 蜂鸣器停止发声void buzzerQuiet(void) GPIO_InitTypeDef GPIO_InitStructure; TIM_Cmd(TIM3, DISABLE); /停止TIM3GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; /PB.5 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /推挽输出 GPIO_InitStructure.GPIO_Speed =
24、 GPIO_Speed_50MHz;/IO口速度为50MHz GPIO_Init(GPIOB, &GPIO_InitStructure); /根据设定参数初始化GPIOB.5GPIO_ResetBits(GPIOB,GPIO_Pin_5);/PB.5 输出低/ /蜂鸣器发出指定频率的声音/usFreq是发声频率,取值 (系统时钟/65536)+1 20000,单位:Hzvoid buzzerSound(unsigned short usFreq) GPIO_InitTypeDef GPIO_InitStructure; unsigned long ulVal; if(usFreq20000)
25、buzzerQuiet();/ 蜂鸣器静音 else GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); /Timer3部分重映射 TIM3_CH2-PB5 /设置该引脚为复用输出功能,输出TIM3 CH2的PWM脉冲波形GPIOB.5GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; /TIM_CH2GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; /复用推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;G
26、PIO_Init(GPIOB, &GPIO_InitStructure);/初始化GPIO ulVal=8000000/usFreq; TIM3-ARR =ulVal ;/设置自动重装载寄存器周期的值(音调) TIM_SetCompare2(TIM3,ulVal /2);/音量 TIM_Cmd(TIM3, ENABLE); /启动TIM3 / 演奏乐曲void musicPlay(void) u8 i=0; while(1) if (MyScorei.mTime = 0) break; buzzerSound(MyScorei.mName); delay_ms(MyScorei.mTime);
27、i+; buzzerQuiet(); / 蜂鸣器静音delay_ms(10);/ 10 ms / 定义乐曲:刘德华恭喜发财const tNote MyScore= L3,TT/8,M6,TT/4,M5,TT/4,M6,TT/4,M5,TT/8,M3,TT/8,M3,TT/4,L3,TT/8,M6,TT/4,M5,TT/4,M6,TT/4,M5,TT/8,M6,TT/8,M6,TT/2,M3,TT/8,M2,TT/8+TT/16,M3,TT/16,M2,TT/8, M1,TT/8,L6,TT/4,M3,TT/8,M2,TT/8+TT/16,M3,TT/16,M2,TT/8,M1,TT/8,M2,
28、TT/4,M2,TT/8+TT/16,M1,TT/8,M1,TT/4,M2,TT/4,M3,TT/4,M5,TT/4,M6,TT,M6,TT/8+TT/16,M5,TT/16, M3,TT/8,M5,TT/8,M6,TT/4, /恭喜你发财。礼多人不怪 L3,TT/8,L6,TT/4,L6,TT/8,L5,TT/8,L6,TT/8,L3,TT/8,L3,TT/8,L5,TT/8,L6,TT/8,M1,TT/8,L6,TT/8,L5,TT/8,L6,TT/4,L3,TT/8,L5,TT/8,M1,TT/4,M1,TT/8,M1,TT/8,M2,TT/8, M2,TT/8,M1,TT/8,M2,T
29、T/8,M3,TT/2,L3,TT/8,M2,TT/4,M2,TT/8,M1,TT/8,M2,TT/8,L6,TT/8,L6,TT/8,M1,TT/8,M2,TT/8,M3,TT/8,M2,TT/8,M1,TT/8,M2,TT/8,M1,TT/8,L6,TT/8, M1,TT/8,M3,TT/8,M3,TT/8,M2,TT/8,M1,TT/8,M3,TT/4,L5,TT/4,L6,TT/2,/我祝满天下的女孩。智商充满你脑袋 L3,TT/8,L6,TT/4,L6,TT/8,L5,TT/8,L6,TT/8,L3,TT/8,L3,TT/8,L5,TT/8,L6,TT/8,M1,TT/8,L6,TT
30、/8,L5,TT/8,L6,TT/4,L3,TT/8,L5,TT/8,M1,TT/4,M1,TT/8,M1,TT/8,M2,TT/8, M2,TT/8,M1,TT/8,M2,TT/8,M3,TT/2,L3,TT/8,M2,TT/4,M2,TT/8,M1,TT/8,M2,TT/8,L6,TT/8,L6,TT/8,M1,TT/8,M2,TT/8,M3,TT/8,M2,TT/8,M1,TT/8,M2,TT/8,M1,TT/8,L6,TT/8, M1,TT/8,M3,TT/8,M3,TT/8,M2,TT/8,M1,TT/8,M3,TT/4,L5,TT/4,L6,TT/2,/我祝满天下的女孩。智商充满你
31、脑袋 L5,TT/4,M1,TT/2+TT/4,M1,TT/8,M2,TT/8,M3,TT/2+TT/4,M3,TT/8,M5,TT/8,M5,TT/4+TT/8,M3,TT/8,M2,TT/4,M1,TT/4,M2,TT/2,M2,TT/4+TT/8,L6,TT/8,M2,TT/4,M3,TT/4, M4,TT/8+TT/16,M5,TT/16,M4,TT/8,M3,TT/8,M2,TT/2,M5,TT/8,M5,TT/8,M3,TT/8,M2,TT/8,M1,TT/4,L5,TT/8,L6,TT/2,/大摇大摆。要喊得够豪迈 L3,TT/8,M6,TT/4,M5,TT/4,M6,TT/4,
32、M5,TT/8,M3,TT/8,M3,TT/4,L3,TT/8,M6,TT/4,M5,TT/4,M6,TT/4,M5,TT/8,M6,TT/8,M6,TT/2,M3,TT/8,M2,TT/8+TT/16,M3,TT/16,M2,TT/8, M1,TT/8,L6,TT/4,M3,TT/8,M2,TT/8+TT/16,M3,TT/16,M2,TT/8,M1,TT/8,M2,TT/4,M2,TT/8+TT/16,M1,TT/8,M1,TT/4,M2,TT/4,M3,TT/4,M5,TT/4,M6,TT,M6,TT/8+TT/16,M5,TT/16, M3,TT/8,M5,TT/8,M6,TT/4,
33、/恭喜你发财。礼多人不怪 L3,TT/8,L6,TT/4,L6,TT/8,L5,TT/8,L6,TT/8,L3,TT/8,L3,TT/8,L5,TT/8,L6,TT/8,M1,TT/8,L6,TT/8,L5,TT/8,L6,TT/4,L3,TT/8,L5,TT/8,M1,TT/4,M1,TT/8,M1,TT/8,M2,TT/8, M2,TT/8,M1,TT/8,M2,TT/8,M3,TT/2,L3,TT/8,M2,TT/4,M2,TT/8,M1,TT/8,M2,TT/8,L6,TT/8,L6,TT/8,M1,TT/8,M2,TT/8,M3,TT/8,M2,TT/8,M1,TT/8,M2,TT/
34、8,M1,TT/8,L6,TT/8, M1,TT/8,M3,TT/8,M3,TT/8,M2,TT/8,M1,TT/8,M3,TT/4,L5,TT/4,L6,TT/2,/我祝满天下的女孩。智商充满你脑袋 L5,TT/4,M1,TT/2+TT/4,M1,TT/8,M2,TT/8,M3,TT/2+TT/4,M3,TT/8,M5,TT/8,M5,TT/4+TT/8,M3,TT/8,M2,TT/4,M1,TT/4,M2,TT/2,M2,TT/4+TT/8,L6,TT/8,M2,TT/4,M3,TT/4, M4,TT/8+TT/16,M5,TT/16,M4,TT/8,M3,TT/8,M2,TT/2,M5,
35、TT/8,M5,TT/8,M3,TT/8,M2,TT/8,M1,TT/4,L5,TT/8,L6,TT/2,/大摇大摆。要喊得够豪迈 L3,TT/8,M6,TT/4,M5,TT/4,M6,TT/4,M5,TT/8,M3,TT/8,M3,TT/4,L3,TT/8,M6,TT/4,M5,TT/4,M6,TT/4,M5,TT/8,M6,TT/8,M6,TT/2,M3,TT/8,M2,TT/8+TT/16,M3,TT/16,M2,TT/8, M1,TT/8,L6,TT/4,M3,TT/8,M2,TT/8+TT/16,M3,TT/16,M2,TT/8,M1,TT/8,M2,TT/4,M2,TT/8+TT/
36、16,M1,TT/8,M1,TT/4,M2,TT/4,M3,TT/4,M5,TT/4,M6,TT,M6,TT/8+TT/16,M5,TT/16, M3,TT/8,M5,TT/8,M6,TT/4, /恭喜你发财。礼多人不怪 L3,TT/8,M6,TT/4,M5,TT/4,M6,TT/4,M5,TT/8,M3,TT/8,M3,TT/4,L3,TT/8,M6,TT/4,M5,TT/4,M6,TT/4,M5,TT/8,M6,TT/8,M6,TT/2,M3,TT/8,M2,TT/8+TT/16,M3,TT/16,M2,TT/8, M1,TT/8,L6,TT/4,M3,TT/8,M2,TT/8+TT/16
37、,M3,TT/16,M2,TT/8,M1,TT/8,M2,TT/4,M2,TT/8+TT/16,M1,TT/8,M1,TT/4,M2,TT/4,M3,TT/4,M5,TT/4,M6,TT,M6,TT/8+TT/16,M5,TT/16, M3,TT/8,M5,TT/8,M6,TT/4, /恭喜你发财。礼多人不怪 0,0,;/ 定义乐曲:荷塘月色const tNote MyScore= M1,TT/8,M1,TT/4,L6,TT/8,L5,TT/4,L6,TT/4,M1,TT/4,M1,TT/8,M2,TT/8,M3,TT/2,M2,TT/8,M2,TT/4,M1,TT/8,M2,TT/4,M2,
38、TT/8,M5,TT/8,M5,TT/8,M3,TT/8, M3,TT/8,M2,TT/8,M3,TT/2,M1,TT/8,M1,TT/4,L6,TT/8,L5,TT/4,M5,TT/4,M3,TT/8,M2,TT/8,M3,TT/8,M2,TT/8,M1,TT/2,M2,TT/8,M2,TT/4,/苍茫的天涯是我的爱。最呀最摇 M1,TT/8,M2,TT/8,M2,TT/4,M3,TT/8,M2,TT/8,M1,TT/8,L6,TT/8,M2,TT/8,M1,TT/2,/剪一段时光。美丽的琴音就落在我身旁 M1,TT/8,M1,TT/4,L6,TT/8,L5,TT/4,L6,TT/4,M1,
39、TT/8,M1,TT/4,M2,TT/8,M3,TT/2,M2,TT/8,M2,TT/4,M1,TT/8,M2,TT/4,M2,TT/8,M5,TT/8,M5,TT/8,M3,TT/8, M3,TT/8,M2,TT/8,M3,TT/2,M1,TT/8,M1,TT/8,M1,TT/8,L6,TT/8,L5,TT/4,M5,TT/4,M3,TT/8,M2,TT/8,M3,TT/8,M2,TT/8,M1,TT/2,M2,TT/8,M2,TT/4,/苍茫的天涯是我的爱。最呀最摇 M1,TT/8,M2,TT/8,M2,TT/4,M3,TT/8,M2,TT/8,M1,TT/8,L6,TT/8,M2,TT/
40、8,M1,TT/2,/萤火虫。谁采下那一朵昨夜的忧伤 M3,TT/8,M5,TT/4,M5,TT/8,M5,TT/4,M5,TT/4,M6,TT/8,M5,TT/8,M3,TT/8,M2,TT/8,M1,TT/2,M6,TT/8,H1,TT/8,M6,TT/8,M5,TT/8,M3,TT/8,M2,TT/8,M1,TT/8, L6,TT/8,M2,TT/4,M2,TT/8,M3,TT/8,M3,TT/8,M2,TT/4+TT/8,M3,TT/8,M5,TT/4,M5,TT/8,M5,TT/4,M5,TT/4,M6,TT/8,M5,TT/8,M3,TT/8,M2,TT/8,/苍茫的天涯是我的爱。最呀最摇 M1,TT/2,L6,TT/8,M1,TT/8,L6,TT/8,L5,TT/8,M2,TT/4,M3,TT/4,M1,TT/2+TT/4,/我像只鱼儿。等你宛在水中央 M1,TT/4+TT/8,M5,TT/8,M1,TT/8,M5,TT/8,M1,TT/8,M2,TT/8,M3,TT,M1,TT/4+TT/8,M5,TT/8,M1,TT/8,M5,TT/8,M1,TT/8,M2,TT/8,M2,TT,M1,TT/4+TT/8,M5,T