找回密码
 立即注册

QQ登录

只需一步,快速开始

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

UART通信问题

[复制链接]
跳转到指定楼层
楼主
通过串口调试助手以十六进制发送和接受数据,按原数据返回。但接受的数据和发送的数据不一致,不知道是哪里出问题了,帮忙看下。谢谢!
代码截图如下:
#include<reg52.h>
void ConfigUART(unsigned int baud);

void main()
{
        ConfigUART(9600);

        while(1)
        {
                while(!RI);
                RI = 0;
                SBUF = SBUF ;
                while(!TI);
                TI = 0;               
        }
}

void ConfigUART(unsigned int baud)
{
        SCON = 0x50;
        TMOD &= 0X0F;
        TMOD |= 0x20;
        TH1 = 256 - (11059200/12/32)/baud;
        TL1 = TH1;
        ET1 = 0;
        TR1 = 1;
}




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

使用道具 举报

沙发
ID:2318 发表于 2014-8-17 16:06 来自触屏版 | 只看该作者
会不会是晶体震荡器用错了

评分

参与人数 1威望 +5 收起 理由
shenyoutx + 5 很给力!

查看全部评分

回复

使用道具 举报

板凳
ID:44262 发表于 2014-8-21 22:25 来自触屏版 | 只看该作者
程序是吧发送过来的数据立即返回去是吧?
回复

使用道具 举报

地板
ID:19715 发表于 2014-8-21 23:42 | 只看该作者
不能都用 SBUF = SBUF ;
必须分开写
串口输入用:
存放的变量 = SBUF ;
输出用:
SBUF = 输出数据地址 ;

评分

参与人数 1威望 +15 黑币 +15 收起 理由
admin + 15 + 15

查看全部评分

回复

使用道具 举报

5#
ID:26188 发表于 2014-8-22 00:24 来自触屏版 | 只看该作者
明白 发表于 2014-8-21 23:42
不能都用 SBUF = SBUF ;
必须分开写
串口输入用:

果然是高手啊
回复

使用道具 举报

6#
ID:65149 发表于 2014-8-23 00:03 | 只看该作者
hkccd 发表于 2014-8-17 16:06
会不会是晶体震荡器用错了

晶振没有错的
回复

使用道具 举报

7#
ID:65149 发表于 2014-8-23 00:28 | 只看该作者
明白 发表于 2014-8-21 23:42
不能都用 SBUF = SBUF ;
必须分开写
串口输入用:

分开使用效果是一样的,还在研究是哪里处理问题,非常感谢你的帮助
回复

使用道具 举报

8#
ID:26188 发表于 2014-8-23 02:07 来自触屏版 | 只看该作者
一起研究
回复

使用道具 举报

9#
ID:65149 发表于 2014-8-24 20:06 | 只看该作者
hkccd 发表于 2014-8-17 16:06
会不会是晶体震荡器用错了

问题我找出来了,非常感谢你,确实是用错了,我板子上的晶振用的是12M的,这个晶振用9600误差有点大,最好使用2400,谢谢你的帮助。

评分

参与人数 1威望 +15 黑币 +15 收起 理由
admin + 15 + 15 很给力!

查看全部评分

回复

使用道具 举报

10#
ID:26188 发表于 2014-8-24 20:53 来自触屏版 | 只看该作者
就是  看程序怎么看也没问题
回复

使用道具 举报

11#
ID:90614 发表于 2015-9-20 16:59 | 只看该作者
shenyoutx 发表于 2014-8-24 20:06
问题我找出来了,非常感谢你,确实是用错了,我板子上的晶振用的是12M的,这个晶振用9600误差有点大,最 ...

回复

使用道具 举报

12#
ID:66396 发表于 2015-9-23 11:55 | 只看该作者
明白 发表于 2014-8-21 23:42
不能都用 SBUF = SBUF ;
必须分开写
串口输入用:

请问为什么?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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