找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 174|回复: 3
打印 上一主题 下一主题
收起左侧

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");                  //发送停止命令
        }

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:161164 发表于 2025-8-15 22:06 | 只看该作者

回复

使用道具 举报

板凳
ID:76027 发表于 2025-8-16 07:35 | 只看该作者

AI查的:高速通信(如115200bps以上):建议严格控制在 ±1%~±2%。误差0.16%应该没多大问题吧?
回复

使用道具 举报

地板
ID:1153607 发表于 2025-8-17 08:19 | 只看该作者
实验APP INVENTOR 对手机编程,蓝牙通讯有如下几个基本经验1绝不要在模块最快的通信速率上长时间通讯,很容易掉线。手机一定要简单使用,开过多程序容易掉线。HC06模块经实验比较好用,一次传输500字节反复多次成功率较高。速率误差决定了可靠传输的长度,想可靠不能存在。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表