找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

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

查看数: 1305 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-12-9 11:06

正文摘要:

最近在做的一个小玩意,基于单片机的智能光控系统,老师要求加上蓝牙控制,各位大佬帮我看看是不是模式和波特率设计出错了

回复

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. }
复制代码
ID:504036 发表于 2019-12-15 09:45
后来发现晶振是12M的, 要如何修改程序  有没有大佬啊

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

Powered by 单片机教程网

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