急。。。。stc12c5a60s2两个串口可以同时打开,一个接收数据用另一个发出去么

[复制链接]
8934|16
 楼主| Angelica2ge 发表于 2013-5-24 19:49 | 显示全部楼层 |阅读模式
大神帮帮忙啊。。。。我的两个串口独立使用都可以,但是写在一起就有问题了
#include<12c5a60s2.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char temp2,flag2;
#define S2RI 0x01         //串口2接受中断请求标志位
#define S2TI 0x02        //串口2发送中断请求标志位
void main()
{
                TMOD=0x20;          //定时器1工作在方式2
                   SCON=0x50;           //串口工作在方式1
                REN=1;
                TH1=0xfd;
                TL1=0xfd;
                PCON=0x00;          //波特率正常
                TR1=1;
                EA=1;
                ES=1;

                AUXR &= 0xf7;                //波特率不倍速
                S2CON = 0x50;                //8位数据,可变波特率
                BRT = 0xDC;                //设定独立波特率发生器重装值
                AUXR |= 0x04;                //独立波特率发生器时钟为Fosc,即1T
                AUXR |= 0x10;                //启动独立波特率发生器
                IE2=0x01;
        while(1)
        {
                if(flag2==1)
                {
                 EA=0;
                 SBUF=temp2;
                  while(!TI)
                  TI=0;
                  flag2=0;
                  EA=1;
                  }       
        }
}
void ser_2()interrupt 8
{
            S2CON=~S2RI;
                flag2=1;
                temp2=S2BUF;
}
帮忙看看有啥问题啊
wangyy608 发表于 2013-5-25 08:07 | 显示全部楼层
用事实说话
yulunna 发表于 2013-5-25 09:02 | 显示全部楼层
既然是两个串口,一个发送一个接收,可以的:lol
 楼主| Angelica2ge 发表于 2013-5-25 09:33 | 显示全部楼层
wangyy608 发表于 2013-5-25 08:07
用事实说话

事实是接收到了,但是接收的数据不正确时为什么?我用其它单片机给它发送一个字符‘a’,结果串口1反馈到电脑上的是空格。。。。
sxp1982 发表于 2014-3-14 13:07 | 显示全部楼层
结果串口1反馈到电脑上的是空格。。。。

有东西反馈,只是数据不对,那要看看代码原因,我估计是波特率有问题或者中断嵌套的问题
coody 发表于 2014-3-14 14:09 | 显示全部楼层
两个串口是独立工作的,当然可以。
kamen588 发表于 2014-3-14 16:04 | 显示全部楼层
if (S2CON & S2RI)
    {
              S2CON &= ~S2RI;
                ...............
shixin0202 发表于 2014-5-13 11:33 | 显示全部楼层
楼主你的问题解决了吗?
173633317 发表于 2014-5-13 12:03 | 显示全部楼层
学习中。。
Emily_1105 发表于 2014-8-29 09:27 | 显示全部楼层
接收数据不对,可能是波特率的问题。
htx518 发表于 2014-11-3 12:46 | 显示全部楼层
同样的问题,不得而解
htx518 发表于 2014-11-3 12:48 | 显示全部楼层
我是使用STC15F2K32S2单片机,两个口分别接收是没有问题的,但是放在一起一个接收了另外一个发送 ,确不能正确发送。
htx518 发表于 2014-11-3 12:49 | 显示全部楼层
我使用PIC单片机确没有这个问题,期待着高手指点指点,谢谢。
coody 发表于 2014-11-3 15:26 | 显示全部楼层
STC官网有双串口的测试程序你可以下来试试,没问题的。

另外,你不能把一个串口收到的数据直接装载另一个串口的缓冲发送,因为异步的原因,会有错误的。开个缓冲吧。
childshuang 发表于 2015-5-21 23:55 | 显示全部楼层
我也遇到类似问题,请问解决了吗
changle11sdo5 发表于 2015-5-23 16:14 来自手机 | 显示全部楼层
#define uchar unsigned char
#define uint unsigned int
unsigned char temp2,flag2;
伏尔加的鱼 发表于 2015-5-23 18:24 | 显示全部楼层
你自己试试就行了么,懒得试就去官网问问客服
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

24

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部