打印

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

[复制链接]
8258|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反馈到电脑上的是空格。。。。

使用特权

评论回复
5
sxp1982| | 2014-3-14 13:07 | 只看该作者
结果串口1反馈到电脑上的是空格。。。。

有东西反馈,只是数据不对,那要看看代码原因,我估计是波特率有问题或者中断嵌套的问题

使用特权

评论回复
6
coody| | 2014-3-14 14:09 | 只看该作者
两个串口是独立工作的,当然可以。

使用特权

评论回复
7
kamen588| | 2014-3-14 16:04 | 只看该作者
if (S2CON & S2RI)
    {
              S2CON &= ~S2RI;
                ...............

使用特权

评论回复
8
shixin0202| | 2014-5-13 11:33 | 只看该作者
楼主你的问题解决了吗?

使用特权

评论回复
9
173633317| | 2014-5-13 12:03 | 只看该作者
学习中。。

使用特权

评论回复
10
Emily_1105| | 2014-8-29 09:27 | 只看该作者
接收数据不对,可能是波特率的问题。

使用特权

评论回复
11
htx518| | 2014-11-3 12:46 | 只看该作者
同样的问题,不得而解

使用特权

评论回复
12
htx518| | 2014-11-3 12:48 | 只看该作者
我是使用STC15F2K32S2单片机,两个口分别接收是没有问题的,但是放在一起一个接收了另外一个发送 ,确不能正确发送。

使用特权

评论回复
13
htx518| | 2014-11-3 12:49 | 只看该作者
我使用PIC单片机确没有这个问题,期待着高手指点指点,谢谢。

使用特权

评论回复
14
coody| | 2014-11-3 15:26 | 只看该作者
STC官网有双串口的测试程序你可以下来试试,没问题的。

另外,你不能把一个串口收到的数据直接装载另一个串口的缓冲发送,因为异步的原因,会有错误的。开个缓冲吧。

使用特权

评论回复
15
childshuang| | 2015-5-21 23:55 | 只看该作者
我也遇到类似问题,请问解决了吗

使用特权

评论回复
16
changle11sdo5| | 2015-5-23 16:14 | 只看该作者
#define uchar unsigned char
#define uint unsigned int
unsigned char temp2,flag2;

使用特权

评论回复
17
伏尔加的鱼| | 2015-5-23 18:24 | 只看该作者
你自己试试就行了么,懒得试就去官网问问客服

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

24

帖子

0

粉丝