找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3629|回复: 6
收起左侧

为什么串口助手返回值不一样?

[复制链接]
ID:257992 发表于 2018-1-1 23:06 | 显示全部楼层 |阅读模式
#include<reg51.h>
#define uchar unsigned char
       
void main()
{
        uchar temp = 0;
        TMOD = 0x20;
        TH1 = 0xfd;
        TL1 = 0xfd;
        SCON = 0x50;
        PCON = 0x00;
        TR1 = 1;
        P1 = 0xff;
        while(1)
        {
                while(RI==0);
                RI = 0;
                temp = SBUF;
                P1 = temp;
                SBUF = temp;
               
        }
}

捕获.PNG
回复

使用道具 举报

ID:213173 发表于 2018-1-2 06:47 | 显示全部楼层
波特率选择错误,应为9600
回复

使用道具 举报

ID:164602 发表于 2018-1-2 08:13 | 显示全部楼层
同学:
我按照你串口的设置,得到你的波特率是在晶振12M条件下,9600不加倍的波特率。
这个波特率的误差8.5%,很大很大的误差,在这种情况下,你当然接收不到正确的数据了。
还有问题,看你的截图,你的使用串口调试工具时,选择的波特率却是2400,这再次让你无法得到正确的数据。
正确的做法是:
第一:看清楚你的晶振是多少?12M?还是11.0592M?
第二:如果是11.0592M晶振,那么,波特率选择9600,不加倍,误差0%,没有问题。如果是12M,则波特率只能在4800及以下,且加倍,误差才小。
第三:使用串口调试工具时,要设置与你程序相同的波特率才行。
回复

使用道具 举报

ID:7485 发表于 2018-1-2 09:33 | 显示全部楼层
波特率对吗?
回复

使用道具 举报

ID:231046 发表于 2018-1-2 09:50 | 显示全部楼层
串口打印工具的波特率要和下位机程序的波特率一致才不会错误
回复

使用道具 举报

ID:270016 发表于 2018-1-2 10:13 | 显示全部楼层
波特率设置一下
回复

使用道具 举报

ID:257992 发表于 2018-1-2 10:31 | 显示全部楼层
HC6800-ES-V2.0 发表于 2018-1-2 08:13
同学:
我按照你串口的设置,得到你的波特率是在晶振12M条件下,9600不加倍的波特率。
这个波特率的误差8 ...

谢谢!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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