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 ,我给你远程瞅瞅