zzz21 发表于 2024-10-9 14:41:12

es15071848238 发表于 2024-10-9 14:27
原始程序发出来我看看,你先别自己改


#include "reg51.h"
#include "intrins.h"

sfr          T2L          =        0xd7;
sfr          T2H          =        0xd6;
sfr          AUXR        =        0x8e;
sfr          S3CON        =        0xac;
sfr          S3BUF        =        0xad;
sfr          IE2          =        0xaf;
#define        ES3                  0x08

sfr          P0M1        =        0x93;
sfr          P0M0        =        0x94;
sfr          P1M1        =        0x91;
sfr          P1M0        =        0x92;
sfr          P2M1        =        0x95;
sfr          P2M0        =        0x96;
sfr          P3M1        =        0xb1;
sfr          P3M0        =        0xb2;
sfr          P4M1        =        0xb3;
sfr          P4M0        =        0xb4;
sfr          P5M1        =        0xc9;
sfr          P5M0        =        0xca;

sbit        P12          =        P1^2;
sbit        P13          =        P1^3;

void UART3_Isr() interrupt 17
{
    if (S3CON & 0x02)
        {
                S3CON &= ~0x02;                                //清中断标志
                P12 = !P12;                                  //测试端口
        }
        if (S3CON & 0x01)
        {
                S3CON &= ~0x01;                                //清中断标志
                P13 = !P13;                                  //测试端口
        }
}

void main()
{
        P0M0 = 0x00;
        P0M1 = 0x00;
        P1M0 = 0x00;
        P1M1 = 0x00;
        P2M0 = 0x00;
        P2M1 = 0x00;
        P3M0 = 0x00;
        P3M1 = 0x00;
        P4M0 = 0x00;
        P4M1 = 0x00;
        P5M0 = 0x00;
        P5M1 = 0x00;

        S3CON = 0x10;
    T2L = 0xe8;                                        //65536-11059200/115200/4=0FFE8H
        T2H = 0xff;
        AUXR = 0x14;                                  //启动定时器
        IE2 = ES3;                                        //使能串口中断
        EA = 1;
        S3BUF = 0x5a;                                  //发送测试数据

        while (1);
}

soma 发表于 2024-10-9 14:43:30

这种一般都是波特率计算错误才会一直00的发吧。

zzz21 发表于 2024-10-9 14:44:50

S3BUF = 0x5a;后续我自己将S3BUF = 0x5a;移到了while循环里面,一直发,但是收到的都是00

zzz21 发表于 2024-10-9 14:46:38

soma 发表于 2024-10-9 14:43
这种一般都是波特率计算错误才会一直00的发吧。

原始的代码也是00

es15071848238 发表于 2024-10-9 14:49:36

这里改一下不动态调节

es15071848238 发表于 2024-10-9 14:50:49

你发个010过去看看测试端口的LED亮不亮

zzz21 发表于 2024-10-9 14:55:12

es15071848238 发表于 2024-10-9 14:49
这里改一下不动态调节

我都尝试过了还是一直都是00

zzz21 发表于 2024-10-9 14:55:35

es15071848238 发表于 2024-10-9 14:49
这里改一下不动态调节

是不是有哪里还要修改

zzz21 发表于 2024-10-9 14:57:15

es15071848238 发表于 2024-10-9 14:49
这里改一下不动态调节

两个不调节都试了一遍

es15071848238 发表于 2024-10-9 15:00:56

你加一下我球球834589429 ,我给你远程瞅瞅
页: 1 [2] 3
查看完整版本: 串口信息收到的都是0