SmartSpeaker 项目教程
1. 项目的目录结构及介绍
SmartSpeaker 项目的目录结构如下:
SmartSpeaker/
├── Audio/
├── Fatfs/
├── File/
├── FreeRTOS/
├── Led/
├── Libraries/
├── MDK/
├── Network/
├── Peripherals/
├── Public/
├── Shell/
├── LICENSE
└── README.md
目录介绍
- Audio: 存放音频相关的代码,包括 wm8978 的驱动、解码、播放和录制音频的功能。其中包含了一个第三方的 mp3 解码库“HelixMP3Decoder”。
- Fatfs: 存放 Fatfs 文件系统的代码,需要基于 SD 卡实现。
- File: 存放系统的原理图,同时还有一个“SmartSpeaker”目录,需要将这个目录拷贝到 SD 卡根目录下,这个目录里都是些用来提示的 wav 文件。
- FreeRTOS: 存放 FreeRTOS 的代码。
- Led: 存放一个根据识别结果操作 Led 的实例,在播放音乐时,还会对音乐进行频谱分析,从而改变 Led 的颜色。
- Libraries: 存放 stm32f4 系列的一些库文件。
- MDK: 工程文件的目录。
- Network: 存放与网络操作相关的代码,比如 esp8266 的串口驱动的封装、编解码、网络通信等。
- Peripherals: 存放 stm32f4 相关的外设的驱动代码,其中一些与 FreeRTOS 结合相当紧密,例如串口的驱动。
- Public: 存放一些基础的功能函数,比如日志功能等。
- Shell: 存放一个简单的人机交互的实现,可以借助 Xshell 等通过串口登陆 stm32,并且可以实现一些简单的命令操作,就像操作 Linux 系统一样。
- LICENSE: 项目的许可证文件。
- README.md: 项目的说明文件。
2. 项目的启动文件介绍
项目的启动文件位于 MDK
目录下,主要包含以下几个文件:
- startup_stm32f407xx.s: 这是 STM32F407 的启动汇编文件,负责初始化系统时钟、堆栈等。
- system_stm32f4xx.c: 这是系统初始化文件,负责配置系统时钟和其他系统级别的初始化。
- main.c: 这是主程序文件,包含了程序的主循环和初始化代码。
启动流程
- 启动汇编文件:
startup_stm32f407xx.s
首先执行,初始化堆栈和系统时钟。 - 系统初始化文件:
system_stm32f4xx.c
配置系统时钟和其他系统级别的初始化。 - 主程序文件:
main.c
进入主循环,初始化各个模块,并开始执行主要功能。
3. 项目的配置文件介绍
项目的配置文件主要位于 Network
目录下,包含以下几个文件:
- network.c: 配置 WiFi 网络的文件,需要在这里配置你的 WiFi 网络信息。
- netvoc.c: 配置百度云语音识别服务的文件,需要在这里配置百度语音的开发者账号和 token。
配置步骤
-
WiFi 配置: 在
network.c
文件中,找到以下代码段并配置你的 WiFi 网络信息:const char* ssid = "your_SSID"; const char* password = "your_PASSWORD";
-
百度云语音识别配置: 在
netvoc.c
文件中,找到以下代码段并配置你的百度语音开发者账号和 token:const char* baidu_token = "your_BAIDU_TOKEN";
通过以上配置,项目就可以连接到你的 WiFi 网络并使用百度云的语音识别服务。