找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9909|回复: 13
打印 上一主题 下一主题
收起左侧

STM32语音存储回放源码(信号采集、存储、重现)

  [复制链接]
跳转到指定楼层
楼主
基于stm32F4 的语音存储回放系统设计
平台:STM32F407ZGT6

功能:语音存储回放(信号采集、存储、重现)

硬件链接: KEY1 —> PF3
           KEY2 —> PF4
         
           LED2 —> PF7
           LED3 —> PF8
           LED4 —> PF9
           LED5 —> PF10
         
           AD输入 —> PA0
           DA输出 —> PA3

使用说明:
        按以上说明连接好电路,
        按下KEY1开始录音(信号采集并存储),此时LED2点亮,此时表示录音正在进行,录音结束后,LED2自动熄灭
        录音结束(LED2熄灭)后,按下KEY2开始播放(对之前采集存储的信号进行回放),此时LED4点
        亮,表示正在播放,播放结束后,LED4自动熄灭。此时录音回放完成。若要继续使用,按下Reset 键,重复以上步骤。

注意:按键KEY2只有在KEY1按下并等到LED2熄灭后才有效。

不足之处:录音,播放过程当中没有暂停,播放功能。必须等待 Flash 中数据写满,一次存储才完成。
          一次录音播放完成之后,不能自动擦除 Flash 中的数据,必须 Reset 后方能进行下次存储。

说明:此代码作者学习STM32入门的实例,只是简单实现了基础功能,因此有很多不足之处。对于初学者来讲可以练习到常用到的外设,如果朋友有兴趣,可以再在此基          础上增加更多的功能并且完善。
        
        例如:
             在录音,播放过程中增加暂停,停止,继续(录音)播放功能;
             用PCM算法等压缩编码,使同样大小的Flash,录音时间更长;
             结合LCD,实现友好的人机交互界面。
             凡是你能想得到的......
            
stm32单片机源程序(主程序):
  1. /*********************************************************************************
  2.    *      Copyright:  (C) 2016 SCUEC
  3.    *                  All rights reserved.
  4.    *
  5.    *       Filename:  main.c
  6.    *    Description:
  7.    *
  8.    *      ChangeLog:  1, Release initial version on "5/11/16 10:52:13"
  9.    *
  10.    ********************************************************************************/
  11.          
  12. #include "stm32f4xx.h"
  13. #include "stm32f4_flash.h"
  14. #include "stm32f4_timer.h"
  15. #include "stm32f4_adc.h"
  16. #include "stm32f4_dac.h"
  17. #include "stm32f4_key.h"
  18. #include "stm32f4_led.h"

  19. extern uint32_t g_writeAdder;
  20. extern uint32_t g_readAdder;
  21. volatile u16 g_flag = 0;
  22. void Record(void);
  23. void  Play(void);

  24. int main(void)
  25. {
  26.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  27.   key_config();       //按键初始化
  28.   Init_LED_GPIO();    //LED初始化
  29.   TIM2_config();      //TIM2定时器配置
  30.         TIM3_config();      //TIM3定时器配置,
  31.         ADC_config();       //ADC配置
  32.         DMA_config();       //DMA配置
  33.         DAC_config();       //DAC配置
  34.         
  35.         while(1)
  36.   {               
  37.                 if(key_pressed(KEY1) && !g_flag)
  38.                 {
  39.                         Record();
  40.                 }
  41.                
  42.                 if(g_flag && key_pressed(KEY2))
  43.                 {
  44.                         Play();//开始执行Play函数
  45.                         if(g_readAdder == 0x0800C004)
  46.                         {
  47.                          TIM_Cmd(TIM2,DISABLE);
  48.                         }
  49.                 }
  50.   }

  51. }



  52. /***************采集并且存储**************/               
  53. void Record(void)
  54. {
  55.         turn_led(LED2,ON);//LED相关参数配置,点亮LED3
  56.         TIM_Cmd(TIM3,ENABLE);
  57. }


  58. /*****读取flash中的值并通过DAC输出*/
  59. void Play(void)


  60. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码


完整资料下载:
Voice_Record_Play-master.rar (403.71 KB, 下载次数: 213)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:235925 发表于 2017-9-28 21:34 | 只看该作者
厉害厉害
回复

使用道具 举报

板凳
ID:146874 发表于 2017-10-6 17:02 | 只看该作者
感谢分享,不错的参考资料
回复

使用道具 举报

地板
ID:258960 发表于 2017-12-8 10:23 | 只看该作者

感谢分享,不错的参考资料,下载学习下
回复

使用道具 举报

5#
ID:269427 发表于 2017-12-31 11:45 | 只看该作者
拿来参考一下
回复

使用道具 举报

6#
ID:298297 发表于 2018-3-28 14:29 | 只看该作者
好帖,最近正在做这样一个项目
回复

使用道具 举报

7#
ID:337316 发表于 2018-5-24 15:04 | 只看该作者
不错不错,厉害
回复

使用道具 举报

8#
ID:337316 发表于 2018-5-24 15:05 | 只看该作者
不错不错,厉害厉害啊
回复

使用道具 举报

9#
ID:337316 发表于 2018-5-24 15:05 | 只看该作者
想试试,可惜没金币,回帖还要审核
回复

使用道具 举报

10#
ID:296231 发表于 2018-6-3 16:24 | 只看该作者
你这DAC输出总是3.3呀,楼主
回复

使用道具 举报

11#
ID:330769 发表于 2018-6-11 17:09 | 只看该作者
谢谢分享,收藏一波
回复

使用道具 举报

12#
ID:342829 发表于 2018-6-15 11:17 | 只看该作者
编译都无法通过
回复

使用道具 举报

13#
ID:352624 发表于 2018-6-15 17:33 | 只看该作者
正好参考一下,点赞!
回复

使用道具 举报

14#
ID:330544 发表于 2018-7-8 14:57 | 只看该作者
谢谢楼主,现在正好在做这个,参考一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表