ESP32+TFTLCD实现WiFi天气语音播报(六)

该博客介绍了如何使用ESP32和MY1680U-12P语音模块实现WiFi天气语音播报。内容涉及MY1680U模块的概述、参数说明,以及代码实现,包括MY1690.c、MY1690.h和main.c的代码部分。此外,还提供了软件和音频文件的下载资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ESP32+MY1680U实现语音播报



前言

在这一章将实现MY1680U语音模块播放MP3,语音播报存入的语句。
需要用到的资料 提取码:lwm2


一、MY1680U-12P 语音模块

1、概述

MY1680U-12P 是深圳市迈优科技有限公司自主研发的一款小巧的集成MP3模块。采用MY1680U-16S MP3主控芯 片,支持MP3、WAV格式双解码,模拟U盘下载。模块内置FLASH存储芯片,1-16M容量可选;也可外接U盘或USB数据线连接电脑更换FLASH的音频文件。该模块内置3W功放,可以直接驱动3W的喇叭,使用更方便。

产品特性

  • 支持 MP3 、WAV 高品质音频格式文件,声音优美。
  • 24 位 DAC 输出,动态范围支持 93dB,信噪比支持 85dB。
  • 完全支持 FAT16、FAT32 文件系统,最大支持 16M FLASH,32G 的 U 盘。
  • 支持 UART 异步串口控制:支持播放、暂停、上下曲、音量加减、选曲播放、插播等。
  • ADKEY 功能,通过电阻选择可实现标准 MP3 功能的 5 按键控制和其他功能。
  • 内置音量、曲目掉电记忆功能。  支持 USB 连接电脑下载声音。
  • 自带 3W 的功放,直接外接喇叭即可完成播放;音量不够客户也可外接功放。
  • MY1690-12P 插 SD 卡模块与这款管脚兼容,需要升级大存储空间方便更换

2、参数说明

在这里插入图片描述
在这里插入图片描述
MY1680U-12P内置标准UART异步串口接口,为3.3V TTL电平接口,波特率9600。可通过MAX3232芯片转换成RS232电平或者通过 USB转TTL模块与PC通讯进行调试。通讯数据格式是:
起始位:1位;数据位:8位;奇偶位:无;停止位:1位。
向语音模块里面传入音频文件可以通过USB连接电脑传输也可以通过USB转TTL模块,使用电脑串口调试助手,传输音频文件
USB转TTL模块与MY1680U-12P的连接图
在这里插入图片描述
这里是串口调试助手的下载地址 提取码:lwm2

使用普通安卓手机数据线连接模块,第一次连接会自动安装驱动。安装成功后电脑弹出可移动磁盘,直接将声音命名好然后拖进磁盘内便可
在这里插入图片描述

照歌曲命名规则

  • 存根目录时按以下方式命名,四位数字开头命名,后面可以带中文也可以不带。
  • 建文件夹时按以下方式命名,文件夹以两位数字开头命名,文件夹内歌曲以三位数字命名后面可以带中文也可以不带。

朗读女 提取码:lwm2
这个软件可以把你输入的文本合成语音生成音频文件

二、代码实现

1.MY1690.c

代码如下:

#include "MY1690.h"

VOICE_DEV voice1={
   
   .frame_head = 0x7E,.frame_end = 0xEF};
//0 1 2 3 4 5 6 7 8 9 10 100 1000 10000
u8 Voice_Table[] = {
   
   1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21};
	
//MY1690通信接口初始化
void MY1690_UARTConfig(u32 brr)
{
   
   
	GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef USART_InitStructure;
	//开时钟
	RCC_APB2PeriphClockCmd(MY1690_TX_CLK | MY1690_RX_CLK, ENABLE);
	MY1690_UART_CLKCMD(MY1690_UART_CLK, ENABLE);
	//结构体赋值
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	
	GPIO_InitStructure.GPIO_Pin = MY1690_TX_PIN;
	GPIO_Init(MY1690_TX_PORT, &GPIO_InitStructure);
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
	GPIO_InitStructure.GPIO_Pin = MY1690_RX_PIN;
	GPIO_Init(MY1690_RX_PORT, &GPIO_InitStructure);
	
	//初始化USART  波特率brr 打开发送和接收器  无奇偶校验  一个停止位  8个数据位
	USART_InitStructure.USART_BaudRate = brr;
	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
	USART_InitStructure.USART_Parity = USART_Parity_No
### 使用 ESP32 控制 TFT-LCD 的示例代码与教程 #### 配置开发环境 为了使 ESP32 能够成功控制 TFT-LCD 显示屏,首先需要设置好开发环境。这通常涉及到安装 Python 和配置 ESP-IDF 工具链[^1]。 #### 初始化显示控制器 对于特定型号如 ST7735S 的 TFT 屏幕,在 `Kconfig` 文件中有专门针对此类型的配置选项: ```c config LV_TFT_DISPLAY_USER_CONTROLLER_ST7735S bool "ST7735S" select LV_TFT_DISPLAY_CONTROLLER_ST7735S select LV_TFT_DISPLAY_PROTOCOL_SPI ``` 这段配置表明选择了 SPI 协议来通信,并启用了对 ST7735S 控制器的支持[^2]。 #### 编写初始化程序 下面是一个简单的 C 语言函数用来初始化 TFT 屏幕并清除其内容至黄色背景颜色的例子: ```c void Gui_Main(void) { LCD_Clear(YELLOW); } ``` 该片段来自一个更复杂的 GUI 主循环函数的一部分,其中调用了 `LCD_Clear()` 函数以填充整个屏幕为指定的颜色(这里是黄色),这是创建任何视觉输出前常见的第一步操作[^5]。 #### 绘制文本到屏幕上 继续上面提到的 `Gui_Main()` 方法,还可以向屏幕添加更多元素,比如绘制字符串: ```c Draw_Text_8_16_Str(10, 288, YELLOW, BLACK, "WiFi语音气象站"); ``` 这条语句会在坐标 (10, 288) 处用黑色字体打印白色背景下的一串汉字 “WiFi语音气象站”。注意这里的参数顺序分别是 X 坐标、Y 坐标、前景色、背景色以及要显示的文字串。 #### 利用第三方库简化编程过程 除了直接编写底层硬件接口外,也可以借助现成的 Arduino 或者其他框架下的图形库来进行更高层次的操作。例如,使用 `TFT_eSPI` 库可以让开发者更容易地完成诸如画线、圆圈或是加载位图图像的任务[^3]: ```cpp #include <TFT_eSPI.h> // Hardware-specific library TFT_eSPI tft = TFT_eSPI(); /* Create a TFT class object */ void setup() { tft.init(); } void loop() {} ``` 上述代码展示了如何利用 `TFT_eSPI` 类快速启动一块连接着 ESP32 的 TFT 屏幕。只需几行简洁明了的命令就能让设备准备好接收进一步指令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值