标题: 串口的引角,干其他事情会有毛病吗? [打印本页]

作者: 祥ZD    时间: 2022-8-13 09:02
标题: 串口的引角,干其他事情会有毛病吗?
#include <STC8.H>

void delay(unsigned int x)
{
        while(x--);
}

void main()
{
        int x,k;
        S3CON = 0x10;                //8位数据,可变波特率24k
        S3CON &= 0xBF;                //串口3选择定时器2为波特率发生器
        AUXR |= 0x04;                //定时器时钟1T模式
        T2L = 0x8F;                //设置定时初始值
        T2H = 0xFD;                //设置定时初始值
        AUXR |= 0x10;                //定时器2开始计时

        while(1)
                {                       
//                                if(S3CON & 0x01)
//                                        {
//                                                x=S3BUF;
//                                                delay(20000);
//                                                S3CON &=0xfe;
//                                                if(x==0x22)
//                                                P0=0;else P0=0xff;//检查P0的灯不对
//                                               
//                                        }       
                        S3BUF=x;
                        while(!(S3CON & 0x01));
                                       
                        S3CON &=(0xff-0x01);
                        x=S3BUF;        S3BUF=x;
                                                delay(20000);
                                                if(x==0x02)
                                                P3=0;else P3=0xff;//检查P3灯有没有亮,正常
                                               
}
}

这个检测寄存器,因为是串口3用到P0口,写完之后检查也是用P0口,一直不对,检查换P3口就可以了


作者: liucan2020    时间: 2022-8-13 16:33
理论上来说,是没有问题的,要看一下规格书。做推挽输出,不开复用就没有问题,另外P0 和P3的内部结构有点不一样。

作者: 188610329    时间: 2022-8-13 22:30
操作p0时,要关闭s3ren,不然会误触发s3接收,




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1