当前位置: 首页 > news >正文

STM32--JQ8900语音模块

JQ8900是一款集成了16位MCU和专门针对音频解码的ADSP(Audio Digital Signal Processing)解码器的语音模块。它采用硬解码方式,保证了系统的稳定性和音质。模块内部含有一个FLASH存储器,用于存储语音音频。通过串口UART与JQ8900模块进行通信,可以控制语音模块播放指定的语音音频。

硬件连接

JQ8900模块与STM32单片机的连接非常简单。通常,只需要将模块的TX和RX引脚连接到STM32的对应串口引脚即可。如果使用一线串口通信,还需要将VPP引脚连接到STM32的一个GPIO引脚。

软件设计

1. 初始化串口

首先,需要初始化STM32的串口,设置波特率、数据位、停止位等参数,以确保与JQ8900模块的通信无误。

#include "stm32f1xx_hal.h"UART_HandleTypeDef huart1;void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART1_UART_Init(void);int main(void) {HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_USART1_UART_Init();// 发送AT指令测试模块char *at_cmd = "AT\r\n";HAL_UART_Transmit(&huart1, (uint8_t *)at_cmd, strlen(at_cmd), HAL_MAX_DELAY);while (1) {// 循环中可以添加代码,根据需要发送其他AT指令}
}static void MX_USART1_UART_Init(void) {huart1.Instance = USART1;huart1.Init.BaudRate = 9600;huart1.Init.WordLength = UART_WORDLENGTH_8B;huart1.Init.StopBits = UART_STOPBITS_1;huart1.Init.Parity = UART_PARITY_NONE;huart1.Init.Mode = UART_MODE_TX_RX;huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;huart1.Init.OverSampling = UART_OVERSAMPLING_16;HAL_UART_Init(&huart1);
}

2. 发送AT指令

通过串口发送AT指令,控制JQ8900模块播放语音。

void SendData(uint8_t *data, uint16_t size) {HAL_UART_Transmit(&huart1, data, size, HAL_MAX_DELAY);
}void PlayVoice(uint8_t track) {uint8_t cmd[4] = {0x0A, 0x02, track, 0x0B}; // 清空数字,设置音量为2,选曲播放SendData(cmd, sizeof(cmd));
}

3. 接收模块响应

在STM32的串口中断服务程序中,可以处理JQ8900模块的响应数据。

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {if (huart->Instance == USART1) {// 处理接收到的数据}
}

注意事项

  1. 确保JQ8900模块的固件支持AT指令集。
  2. 在发送AT指令时,确保指令格式正确,并且以正确的波特率发送。
  3. 在处理接收到的数据时,需要注意数据的完整性和错误处理。

通过上述步骤,我们可以在STM32单片机上通过AT指令控制JQ8900语音模块实现语音的播放。这种通信方式可以广泛应用于物联网设备的数据传输和远程控制。

✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进

❤欢迎关注我的知乎:对error视而不见

代码获取、问题探讨及文章转载可私信。

☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。

🍎获取更多嵌入式资料可点击链接进群领取,谢谢支持!👇

点击领取更多详细资料


http://www.mrgr.cn/news/57351.html

相关文章:

  • 美国FDA注册和FDA检测的区别
  • 01 - matlab 点云工具箱(Point cloud tools for Matlab)配置
  • 从新手到高手:map和set的使用技巧全攻略(C++)
  • 均匀随机掉落算法
  • 【数据结构】共计12万字!数据结构知识详细梳理汇总!
  • springboot057洗衣店订单管理系统(论文+源码)_kaic
  • 嘘,偷偷复制某客巴巴的少许文字……
  • keil新建工程HC32L176MATA
  • 基于Spring Boot+Vue的私人定制旅游系统(协同过滤算法、实时聊天)
  • 堆排序原理及代码
  • 关于使用 C# 处理水位数据多种格式的统一转换
  • input子系统的框架和重要数据结构详解
  • SpringBoot项目整合Mybatis-MySql数据库编程
  • 总集篇:环形链表(是否成环?环长度?入环点?)
  • 鸿蒙启航 | 搭建 HarmonyOS 开发环境来个 Hello World
  • Jenkins配置CI/CD开发环境(理论到实践的完整流程)
  • opencv 将相机图片转为视频 - python 实现
  • 计算机毕业设计Hadoop+大模型在线教育大数据分析可视化 学情分析 课程推荐系统 机器学习 深度学习 人工智能 大数据毕业设计
  • 信发软件之添加组件——未来之窗行业应用跨平台架构
  • 顺序表(一)(数据结构)
  • linux:线程id及线程互斥
  • python基础综合案例(数据可视化—折线图可视化)
  • 全栈面试题】模块5-1】Oracle/MySQL 数据库基础
  • Spring Cloud --- Sentinel 规则持久化
  • 前端-基础CSS总结常用
  • 七、数据库服务器(MySQL、PostgreSQL)的搭建