使用STC 15F2K60S单片机,用串口做接收数据,只第一个数据对,且总少收一个字节。类似的测试在90C516上确完全没问题。(使用单片机内的晶振11.0592MHz,波特率9600,8,1,N,数据为7个字节)
#include "reg52.h"
#include "intrins.h"
#define FOSC 11059200L
#define BAUD 9600
sfr AUXR=0x8e;
sfr T2H=0xd6;
sfr T2L=0xd7;
sbit P22=P2^2;
bit busy,flag2;
unsigned char eee[8];
unsigned char i,a;
void SendData(unsigned char dat);
void main()
{
SCON=0xda;
T2L=(65536-(FOSC/4/BAUD));
T2H=(65536-(FOSC/4/BAUD))>>8;
AUXR=0x15;
ES=1;
EA=1;
while(1)
{
if(a>6)
{
for(i=0;i<7;i++)
SendData(eee[i]);
a=0;
}
}
}
void Uart() interrupt 4 using 1
{
if(RI)
{
RI=0;
eee[a]=SBUF;
a++;
}
if(TI)
{
TI=0;
busy=0;
}
}
void SendData(unsigned char dat)
{
while(busy);
ACC=dat;
busy=1;
SBUF=ACC;
}
这个程序还是问题依旧呢,程序发给了STC的技术,回复说写的无问题,让自己继续试,郁闷。。。。。
本回答被网友采纳