最近在玩通過藍牙控制手機APP播放音樂,藍牙模塊用的是BT401.測試的時候是通過電腦串口發指令控制二款手機APP播放和停止都沒有問題。用單片機控制的話,其中有一款APP有時正常,有時不能執行指令,隨機性很大。藍牙模塊能是正常接收AT命令,返回都是OK的,但手機不正常執行是沒有返回信息。請教一下大佬,這可能存在什么問題。
/*********************************************UART初始化 波特率115200/24MHz***********************************/
void UART_Init() {
SCON = 0x50; //8位數據,可變波特率
AUXR |= 0x40; //定時器時鐘1T模式
AUXR &= 0xFE; //串口1選擇定時器1為波特率發生器
TMOD &= 0x0F; //設置定時器模式
TL1 = 0xCC; //設置定時初始值
TH1 = 0xFF; //設置定時初始值
ET1 = 0; //禁止定時器中斷
TR1 = 1; //定時器1開始計時
}
/*********************************************發送一個字符*********************************************/
void UART_SendChar(char c) {
SBUF = c;
while (!TI);
TI = 0;
}
/*********************************************發送字符串*********************************************/
void UART_SendString(char *str) {
while (*str) {
UART_SendChar(*str++);
}
}
/*********************************************藍牙初始化*********************************************/
void Bluetooth_Init() {
UART_SendString("AT+BD8888\r\n"); // 設置藍牙名稱
delay_ms(100);
UART_SendString("AT+CA30\r\n"); // 設置藍牙音量為最大30
delay_ms(100);
UART_SendString("AT+B400\r\n"); // 關閉BLE功能,只用藍牙,不用數傳
delay_ms(100);
UART_SendString("AT+CZ\r\n"); // 重啟藍牙
}
/*************************** 藍牙控制 ******************************/
void Bluetooth_StartTalking()
{
UART_SendString("AT+BA08\r\n"); //發送播放命令
}
void Bluetooth_Stop()
{
UART_SendString("AT+CB\r\n"); //發送停止命令
}
|