3608|5

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

51串行通信 [复制链接]

请帮忙看一下这个通信程序有没有问题:
#include
#include     /*标准输入输出库函数*/

unsigned char a;

void init_uart()
{
                TMOD = 0x20;//0010 0000   T/c方式2,8位自动重装载
                TH1  = 0xa9;//初值a9  20M晶振 1200波特率时
                TL1  = 0xa9;//
                SCON = 0x50;//0101 0000  串口方式1,10位异步通讯,由定时器控制
                PCON = PCON|0x80;//SMOD置1,波特率=溢出率/16,
                TR1  = 1;//开串口中断*/
}

void main()
{            
    init_uart();
    while(1)
        {
           while(RI==0);
           RI=0;
           a=SBUF;
       SBUF=a;
           while(TI==0);
           TI=0;
        }
}

最新回复

同意啊!!  详情 回复 发表于 2007-6-14 17:02
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
以前一哥们说可以不起动定时器,不知道是不是可以,反正我每次都打开了的.

另外,LZ想干啥直说吧,是收啥发啥不?

具体的代码没啥问题,具体看看物理上的链路看看,如果通信不上的话
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你那个程序没问题哈

不知道是不是时钟源有没有选项对
另一个硬件电路有没有问题,你得去验证一下
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
void main()
{            
    init_uart();
    while(1)
        {
           while(RI==0); ---->while(RI == 1);
           RI=0;
           a=SBUF;
       SBUF=a;
           while(TI==0);
           TI=0;
        }
}
先测试把RX和TX两条腿短接,看看发送是不是和接收一样。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

5
 
LS说的对,把COM的2和3短接,看看你收发有没有问题
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

6
 
同意啊!!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表