做了个音乐盒用蓝牙模块HC02控制,芯片是STM32C8T6,语音模块是JQ8400-TF。用手机控制没有反应
部分代码如下图
#include "stm32f10x.h"
#include "delay.h"
#include "mp3.h"
#include "blue_teeth.h"
extern int state_flag;
extern int vol_count;
extern int light_flag;
extern int beep_flag;
extern int start_stop_flag;
extern int Temp_cap;
extern int Humi_cap;
extern int beep_alarm;
int init_vol_flag=1;
void Usart1_Init(unsigned int baud)//mp3
{
GPIO_InitTypeDef gpio_initstruct;
USART_InitTypeDef usart_initstruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
//PA9 TXD
gpio_initstruct.GPIO_Mode = GPIO_Mode_AF_PP;
gpio_initstruct.GPIO_Pin = GPIO_Pin_9;
gpio_initstruct.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOA, &gpio_initstruct);
//PA10 RXD
gpio_initstruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
gpio_initstruct.GPIO_Pin = GPIO_Pin_10;
gpio_initstruct.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOA, &gpio_initstruct);
usart_initstruct.USART_BaudRate = baud;
usart_initstruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
usart_initstruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
usart_initstruct.USART_Parity = USART_Parity_No;
usart_initstruct.USART_StopBits = USART_StopBits_1;
usart_initstruct.USART_WordLength = USART_WordLength_8b;
USART_Init(USART1, &usart_initstruct);
USART_Cmd(USART1, ENABLE);
}
void USART2_init(unsigned int baud)
{
GPIO_InitTypeDef GPIO_InitStruct;
USART_InitTypeDef USART_InitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_2;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_Ini
MP3.c
#include "sys.h"
#include "delay.h"
#include "blue_teeth.h"
#include "mp3.h"
uint16_t vol[] = {0xAA, 0x13, 0x01, 0x0F, 0xC8};/*ÒôÁ¿10 */
uint16_t start[]={0xAA, 0x02, 0x00, 0xAC};//²¥·Å
uint16_t stop[]={0xAA, 0x03, 0x00, 0xAD};//ÔÝÍ£
uint16_t next[]={0xAA, 0x06, 0x00, 0xB0};//ÏÂÒ»Çú
uint16_t Prev[]= {0xAA, 0x05, 0x00, 0xAF};//ÉÏÒ»Çú*/
uint16_t add_vol[]= {0xAA, 0x14, 0x00, 0xBE};//ÒôÁ¿¼Ó*/
uint16_t sub_vol[]= {0xAA, 0x15, 0x00, 0xBF};//ÒôÁ¿¼õ*/
extern int vol_count;
//mp3µÄbusy IO³õʼ»¯
void MP3_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //ʹÄÜPA¶Ë¿ÚʱÖÓ
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //MP3-->PB.0 ¶Ë¿ÚÅäÖÃ
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //¸¡¿ÕÉÏÀÊäÈë
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO¿ÚËÙ¶ÈΪ50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOB.8
}
void start_music()//¿ªÊ¼²¥·Å
{
int t;
for(t=0;t<4;t++)
{
USART1->SR;
USART_SendData(USART1, start[t]);//Ïò´®¿Ú1·¢ËÍÊý¾Ý
delay_ms(30);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//µÈ´ý·¢ËͽáÊø
USART_ClearFlag(USART1,USART_FLAG_TC);
}
}
void stop_music()//ÔÝÍ£²¥·Å
{
int t;
for(t=0;t<4;t++)
{
USART1->SR;
USART_SendData(USART1, stop[t]);//Ïò´®¿Ú1·¢ËÍÊý¾Ý
delay_ms(30);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//µÈ´ý·¢ËͽáÊø
USART_ClearFlag(USART1,USART_FLAG_TC);
}
}
void prev_music()//ÉÏÒ»Çú
{
int t;
for(t=0;t<4;t++)
{
USART1->SR;
USART_SendData(USART1, Prev[t]);//Ïò´®¿Ú1·¢ËÍÊý¾Ý
delay_ms(30);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//µÈ´ý·¢ËͽáÊø
USART_ClearFlag(USART1,USART_FLAG_TC);
}
}
void next_music()//ÏÂÒ»Çú
{
int t;
for(t=0;t<4;t++)
{
USART1->SR;
USART_SendData(USART1, next[t]);//Ïò´®¿Ú1·¢ËÍÊý¾Ý
delay_ms(30);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//µÈ´ý·¢ËͽáÊø
USART_ClearFlag(USART1,USART_FLAG_TC)
如果您的STM32C8T6芯片和HC02蓝牙模块都能够正常工作,但是您无法通过手机控制音乐盒,可能有以下几种原因:
蓝牙连接未成功:在手机上搜索蓝牙设备时,确保您已经正确地配对了HC02蓝牙模块。如果蓝牙连接未成功,则无法发送指令。
通信协议不匹配:HC02蓝牙模块使用串口通信协议,而JQ8400-TF语音模块可能使用其他通信协议。确保您使用的通信协议与您的语音模块兼容。
指令格式不正确:确保您发送的指令符合蓝牙模块的要求,并且已正确地格式化和编码。您可以查阅HC02蓝牙模块的文档以获得更多指令和编码细节。
硬件连接问题:确保所有的硬件连接都正确地接好,包括蓝牙模块、语音模块和STM32C8T6芯片。如果有任何一个连接出现了问题,都有可能导致无法控制音乐盒。
软件程序问题:最后,如果以上所有问题都没有得到解决,那么问题可能是出在您的软件程序中。确保您的程序逻辑正确,并且已正确地实现了蓝牙模块和语音模块之间的通信。您可以在程序中添加调试信息以帮助确定问题所在。
可以把代码用文本贴上来吗
该回答引用GPTᴼᴾᴱᴺᴬᴵ
很抱歉,由于提供的代码不完整,我无法了解您的程序的完整情况,从而给出明确的答案或解决方案。以下是一些建议,您可以尝试它们以解决问题。
基于最新版ChatGPT4的回答,望采纳!!!有其他问题也可以询问我哦、”(最新版更智能,功能更加强大)
首先,我建议您检查以下几点,以确保硬件和软件设置正确:
如果以上步骤都已检查并确认无误,但仍然没有反应,请考虑以下建议: