标题: STC8G1K08和蓝牙的串口问题 [打印本页]

作者: bd5fna    时间: 2025-8-13 14:14
标题: STC8G1K08和蓝牙的串口问题
本帖最后由 bd5fna 于 2025-8-13 14:18 编辑

最近在玩通过蓝牙控制手机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");                  //发送停止命令
        }


作者: lkc8210    时间: 2025-8-15 22:06


作者: bd5fna    时间: 2025-8-16 07:35
lkc8210 发表于 2025-8-15 22:06

AI查的:高速通信(如115200bps以上):建议严格控制在 ±1%~±2%。误差0.16%应该没多大问题吧?
作者: weisc6955    时间: 2025-8-17 08:19
实验APP INVENTOR 对手机编程,蓝牙通讯有如下几个基本经验1绝不要在模块最快的通信速率上长时间通讯,很容易掉线。手机一定要简单使用,开过多程序容易掉线。HC06模块经实验比较好用,一次传输500字节反复多次成功率较高。速率误差决定了可靠传输的长度,想可靠不能存在。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1