找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求助:52单片机蓝牙接收数据后只发回0x82 是波特率错了吗?

[复制链接]
跳转到指定楼层
楼主
最近在做的一个小玩意,基于单片机的智能光控系统,老师要求加上蓝牙控制,各位大佬帮我看看是不是模式和波特率设计出错了

3.png (21.29 KB, 下载次数: 46)

3.png

2.jpg (120.14 KB, 下载次数: 36)

2.jpg

1.png (23.92 KB, 下载次数: 32)

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

使用道具 举报

沙发
ID:504036 发表于 2019-12-15 09:45 | 只看该作者
后来发现晶振是12M的, 要如何修改程序  有没有大佬啊
回复

使用道具 举报

板凳
ID:213173 发表于 2019-12-16 06:52 | 只看该作者
czm23 发表于 2019-12-15 09:45
后来发现晶振是12M的, 要如何修改程序  有没有大佬啊

12M晶振的波特率不要超过2400,最高4800但要设置加倍,否则误差太大不能正常通讯。
  1. void UartInit(void)        //2400bps@12.000MHz
  2. {
  3.         PCON= 0x00;                //波特率不倍速
  4.         SCON= 0x50;                //8位数据,可变波特率
  5.         TMOD= 0x20;                //设定定时器1为8位自动重装方式
  6.         TL1 = 0xF3;                //设定定时初值
  7.         TH1 = 0xF3;                //设定定时器重装值
  8.         ET1 = 0;                //禁止定时器1中断
  9.         TR1 = 1;                //启动定时器1
  10.     EA = 1;                        //使能总中断
  11.     ES = 1;                        //使能串口中断
  12. }
  13. void UartInit(void)        //4800bps@12.000MHz
  14. {
  15.         PCON= 0x80;                //使能波特率倍速位SMOD
  16.         SCON= 0x50;                //8位数据,可变波特率
  17.         TMOD= 0x20;                //设定定时器1为8位自动重装方式
  18.         TL1 = 0xF3;                //设定定时初值
  19.         TH1 = 0xF3;                //设定定时器重装值
  20.         TR1 = 1;                //启动定时器1
  21.         ET1 = 0;                //禁止定时器1中断
  22.     EA = 1;                        //使能总中断
  23.     ES = 1;                        //使能串口中断
  24. }
复制代码
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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