一连串数据一起发,串口助手只能接收到第一个字节和最后一个字节,而延时发送时没有问题,怀疑串口发送中断有问题,采用查询方式发送出现同样问题,
现在每发一个字节需延迟100us,这样数据才能发出去。有没有解决方案。
采用过 串口查询发送,没有作用
采用过 降低波特率9600 没有作用还是会丢数据,不是只有头和尾中间有一些数据,还是会丢。
现在只能发一个延时100us发。有没有解决方案谢谢。
void TransmissonData(Uint16 ID,Uint32 LEN,Uint8 *DATA)
{
Uint32 temp;
//Uint8 DAT;
Uint32 i;
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
temp = LEN&0xff000000;
SciaRegs.SCITXBUF = temp>>24;
ScibRegs.SCITXBUF = temp>>24;
//DAT = temp>>24;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x00ff0000;
SciaRegs.SCITXBUF = temp>>16;
ScibRegs.SCITXBUF = temp>>16;
//DAT = temp>>16;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x0000ff00;
SciaRegs.SCITXBUF = temp>>8;
ScibRegs.SCITXBUF = temp>>8;
//DAT = temp>>8;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x000000ff;
SciaRegs.SCITXBUF = temp;
ScibRegs.SCITXBUF = temp;
//DAT = temp;
//ScibXmit(DAT);
DELAY_US(100);
SciaRegs.SCITXBUF = ID;
ScibRegs.SCITXBUF = ID;
//ScibXmit(ID);
DELAY_US(100);
for(i=0;i<(LEN-1);i++)
{
SciaRegs.SCITXBUF = DATA[i];
ScibRegs.SCITXBUF = DATA[i];
//ScibXmit(DATA[i]);
DELAY_US(100);
}
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
}
囧:
不会的,F28335的SCI在勘误手册上没有这个问题。你这里没有初始化代码,建议你先测试发送一个字符,然后慢慢增加,先不要打开FIFO。
一连串数据一起发,串口助手只能接收到第一个字节和最后一个字节,而延时发送时没有问题,怀疑串口发送中断有问题,采用查询方式发送出现同样问题,
现在每发一个字节需延迟100us,这样数据才能发出去。有没有解决方案。
采用过 串口查询发送,没有作用
采用过 降低波特率9600 没有作用还是会丢数据,不是只有头和尾中间有一些数据,还是会丢。
现在只能发一个延时100us发。有没有解决方案谢谢。
void TransmissonData(Uint16 ID,Uint32 LEN,Uint8 *DATA)
{
Uint32 temp;
//Uint8 DAT;
Uint32 i;
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
temp = LEN&0xff000000;
SciaRegs.SCITXBUF = temp>>24;
ScibRegs.SCITXBUF = temp>>24;
//DAT = temp>>24;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x00ff0000;
SciaRegs.SCITXBUF = temp>>16;
ScibRegs.SCITXBUF = temp>>16;
//DAT = temp>>16;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x0000ff00;
SciaRegs.SCITXBUF = temp>>8;
ScibRegs.SCITXBUF = temp>>8;
//DAT = temp>>8;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x000000ff;
SciaRegs.SCITXBUF = temp;
ScibRegs.SCITXBUF = temp;
//DAT = temp;
//ScibXmit(DAT);
DELAY_US(100);
SciaRegs.SCITXBUF = ID;
ScibRegs.SCITXBUF = ID;
//ScibXmit(ID);
DELAY_US(100);
for(i=0;i<(LEN-1);i++)
{
SciaRegs.SCITXBUF = DATA[i];
ScibRegs.SCITXBUF = DATA[i];
//ScibXmit(DATA[i]);
DELAY_US(100);
}
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
}
YAOTING XUE:
回复 囧:
你好,我也存在上述问题,当连续发送十七个数据的时候是正常的
但是连续发送18个数据的话会造成第二个数据丢失
一连串数据一起发,串口助手只能接收到第一个字节和最后一个字节,而延时发送时没有问题,怀疑串口发送中断有问题,采用查询方式发送出现同样问题,
现在每发一个字节需延迟100us,这样数据才能发出去。有没有解决方案。
采用过 串口查询发送,没有作用
采用过 降低波特率9600 没有作用还是会丢数据,不是只有头和尾中间有一些数据,还是会丢。
现在只能发一个延时100us发。有没有解决方案谢谢。
void TransmissonData(Uint16 ID,Uint32 LEN,Uint8 *DATA)
{
Uint32 temp;
//Uint8 DAT;
Uint32 i;
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
temp = LEN&0xff000000;
SciaRegs.SCITXBUF = temp>>24;
ScibRegs.SCITXBUF = temp>>24;
//DAT = temp>>24;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x00ff0000;
SciaRegs.SCITXBUF = temp>>16;
ScibRegs.SCITXBUF = temp>>16;
//DAT = temp>>16;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x0000ff00;
SciaRegs.SCITXBUF = temp>>8;
ScibRegs.SCITXBUF = temp>>8;
//DAT = temp>>8;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x000000ff;
SciaRegs.SCITXBUF = temp;
ScibRegs.SCITXBUF = temp;
//DAT = temp;
//ScibXmit(DAT);
DELAY_US(100);
SciaRegs.SCITXBUF = ID;
ScibRegs.SCITXBUF = ID;
//ScibXmit(ID);
DELAY_US(100);
for(i=0;i<(LEN-1);i++)
{
SciaRegs.SCITXBUF = DATA[i];
ScibRegs.SCITXBUF = DATA[i];
//ScibXmit(DATA[i]);
DELAY_US(100);
}
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
}
user4661451:
1、我用中断做的,不会出现你这种情况;
2、使用100us 的延时->等待上一个Byte发送完成?
一连串数据一起发,串口助手只能接收到第一个字节和最后一个字节,而延时发送时没有问题,怀疑串口发送中断有问题,采用查询方式发送出现同样问题,
现在每发一个字节需延迟100us,这样数据才能发出去。有没有解决方案。
采用过 串口查询发送,没有作用
采用过 降低波特率9600 没有作用还是会丢数据,不是只有头和尾中间有一些数据,还是会丢。
现在只能发一个延时100us发。有没有解决方案谢谢。
void TransmissonData(Uint16 ID,Uint32 LEN,Uint8 *DATA)
{
Uint32 temp;
//Uint8 DAT;
Uint32 i;
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
temp = LEN&0xff000000;
SciaRegs.SCITXBUF = temp>>24;
ScibRegs.SCITXBUF = temp>>24;
//DAT = temp>>24;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x00ff0000;
SciaRegs.SCITXBUF = temp>>16;
ScibRegs.SCITXBUF = temp>>16;
//DAT = temp>>16;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x0000ff00;
SciaRegs.SCITXBUF = temp>>8;
ScibRegs.SCITXBUF = temp>>8;
//DAT = temp>>8;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x000000ff;
SciaRegs.SCITXBUF = temp;
ScibRegs.SCITXBUF = temp;
//DAT = temp;
//ScibXmit(DAT);
DELAY_US(100);
SciaRegs.SCITXBUF = ID;
ScibRegs.SCITXBUF = ID;
//ScibXmit(ID);
DELAY_US(100);
for(i=0;i<(LEN-1);i++)
{
SciaRegs.SCITXBUF = DATA[i];
ScibRegs.SCITXBUF = DATA[i];
//ScibXmit(DATA[i]);
DELAY_US(100);
}
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
}
Jun Zhang10:
别人拼命的往你嘴里塞东西会不会噎死?
一连串数据一起发,串口助手只能接收到第一个字节和最后一个字节,而延时发送时没有问题,怀疑串口发送中断有问题,采用查询方式发送出现同样问题,
现在每发一个字节需延迟100us,这样数据才能发出去。有没有解决方案。
采用过 串口查询发送,没有作用
采用过 降低波特率9600 没有作用还是会丢数据,不是只有头和尾中间有一些数据,还是会丢。
现在只能发一个延时100us发。有没有解决方案谢谢。
void TransmissonData(Uint16 ID,Uint32 LEN,Uint8 *DATA)
{
Uint32 temp;
//Uint8 DAT;
Uint32 i;
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
temp = LEN&0xff000000;
SciaRegs.SCITXBUF = temp>>24;
ScibRegs.SCITXBUF = temp>>24;
//DAT = temp>>24;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x00ff0000;
SciaRegs.SCITXBUF = temp>>16;
ScibRegs.SCITXBUF = temp>>16;
//DAT = temp>>16;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x0000ff00;
SciaRegs.SCITXBUF = temp>>8;
ScibRegs.SCITXBUF = temp>>8;
//DAT = temp>>8;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x000000ff;
SciaRegs.SCITXBUF = temp;
ScibRegs.SCITXBUF = temp;
//DAT = temp;
//ScibXmit(DAT);
DELAY_US(100);
SciaRegs.SCITXBUF = ID;
ScibRegs.SCITXBUF = ID;
//ScibXmit(ID);
DELAY_US(100);
for(i=0;i<(LEN-1);i++)
{
SciaRegs.SCITXBUF = DATA[i];
ScibRegs.SCITXBUF = DATA[i];
//ScibXmit(DATA[i]);
DELAY_US(100);
}
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
}
user5245182:
回复 YAOTING XUE:
我也有同样的问题,只能发送十七个数据,楼主怎么解决的这个问题?
一连串数据一起发,串口助手只能接收到第一个字节和最后一个字节,而延时发送时没有问题,怀疑串口发送中断有问题,采用查询方式发送出现同样问题,
现在每发一个字节需延迟100us,这样数据才能发出去。有没有解决方案。
采用过 串口查询发送,没有作用
采用过 降低波特率9600 没有作用还是会丢数据,不是只有头和尾中间有一些数据,还是会丢。
现在只能发一个延时100us发。有没有解决方案谢谢。
void TransmissonData(Uint16 ID,Uint32 LEN,Uint8 *DATA)
{
Uint32 temp;
//Uint8 DAT;
Uint32 i;
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
temp = LEN&0xff000000;
SciaRegs.SCITXBUF = temp>>24;
ScibRegs.SCITXBUF = temp>>24;
//DAT = temp>>24;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x00ff0000;
SciaRegs.SCITXBUF = temp>>16;
ScibRegs.SCITXBUF = temp>>16;
//DAT = temp>>16;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x0000ff00;
SciaRegs.SCITXBUF = temp>>8;
ScibRegs.SCITXBUF = temp>>8;
//DAT = temp>>8;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x000000ff;
SciaRegs.SCITXBUF = temp;
ScibRegs.SCITXBUF = temp;
//DAT = temp;
//ScibXmit(DAT);
DELAY_US(100);
SciaRegs.SCITXBUF = ID;
ScibRegs.SCITXBUF = ID;
//ScibXmit(ID);
DELAY_US(100);
for(i=0;i<(LEN-1);i++)
{
SciaRegs.SCITXBUF = DATA[i];
ScibRegs.SCITXBUF = DATA[i];
//ScibXmit(DATA[i]);
DELAY_US(100);
}
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
}
YAOTING XUE:
回复 user5245182:
办法就是加一个20us的延时,就可以解决了,10us的延时会偶尔错误,没有延时绝对出错,但是出错原因还是没能弄明白
一连串数据一起发,串口助手只能接收到第一个字节和最后一个字节,而延时发送时没有问题,怀疑串口发送中断有问题,采用查询方式发送出现同样问题,
现在每发一个字节需延迟100us,这样数据才能发出去。有没有解决方案。
采用过 串口查询发送,没有作用
采用过 降低波特率9600 没有作用还是会丢数据,不是只有头和尾中间有一些数据,还是会丢。
现在只能发一个延时100us发。有没有解决方案谢谢。
void TransmissonData(Uint16 ID,Uint32 LEN,Uint8 *DATA)
{
Uint32 temp;
//Uint8 DAT;
Uint32 i;
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
temp = LEN&0xff000000;
SciaRegs.SCITXBUF = temp>>24;
ScibRegs.SCITXBUF = temp>>24;
//DAT = temp>>24;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x00ff0000;
SciaRegs.SCITXBUF = temp>>16;
ScibRegs.SCITXBUF = temp>>16;
//DAT = temp>>16;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x0000ff00;
SciaRegs.SCITXBUF = temp>>8;
ScibRegs.SCITXBUF = temp>>8;
//DAT = temp>>8;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x000000ff;
SciaRegs.SCITXBUF = temp;
ScibRegs.SCITXBUF = temp;
//DAT = temp;
//ScibXmit(DAT);
DELAY_US(100);
SciaRegs.SCITXBUF = ID;
ScibRegs.SCITXBUF = ID;
//ScibXmit(ID);
DELAY_US(100);
for(i=0;i<(LEN-1);i++)
{
SciaRegs.SCITXBUF = DATA[i];
ScibRegs.SCITXBUF = DATA[i];
//ScibXmit(DATA[i]);
DELAY_US(100);
}
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
}
user5346396:加一句while(ScibRegs.SCICTL2.bit.TXRDY != 1) // 发送缓冲器寄存器准备好标志位.有此句,可以连续发送数据
一连串数据一起发,串口助手只能接收到第一个字节和最后一个字节,而延时发送时没有问题,怀疑串口发送中断有问题,采用查询方式发送出现同样问题,
现在每发一个字节需延迟100us,这样数据才能发出去。有没有解决方案。
采用过 串口查询发送,没有作用
采用过 降低波特率9600 没有作用还是会丢数据,不是只有头和尾中间有一些数据,还是会丢。
现在只能发一个延时100us发。有没有解决方案谢谢。
void TransmissonData(Uint16 ID,Uint32 LEN,Uint8 *DATA)
{
Uint32 temp;
//Uint8 DAT;
Uint32 i;
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'A';
ScibRegs.SCITXBUF = 'A';
//ScibXmit('A');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
SciaRegs.SCITXBUF = 'B';
ScibRegs.SCITXBUF = 'B';
//ScibXmit('B');
DELAY_US(100);
temp = LEN&0xff000000;
SciaRegs.SCITXBUF = temp>>24;
ScibRegs.SCITXBUF = temp>>24;
//DAT = temp>>24;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x00ff0000;
SciaRegs.SCITXBUF = temp>>16;
ScibRegs.SCITXBUF = temp>>16;
//DAT = temp>>16;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x0000ff00;
SciaRegs.SCITXBUF = temp>>8;
ScibRegs.SCITXBUF = temp>>8;
//DAT = temp>>8;
//ScibXmit(DAT);
DELAY_US(100);
temp = LEN&0x000000ff;
SciaRegs.SCITXBUF = temp;
ScibRegs.SCITXBUF = temp;
//DAT = temp;
//ScibXmit(DAT);
DELAY_US(100);
SciaRegs.SCITXBUF = ID;
ScibRegs.SCITXBUF = ID;
//ScibXmit(ID);
DELAY_US(100);
for(i=0;i<(LEN-1);i++)
{
SciaRegs.SCITXBUF = DATA[i];
ScibRegs.SCITXBUF = DATA[i];
//ScibXmit(DATA[i]);
DELAY_US(100);
}
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'C';
ScibRegs.SCITXBUF = 'C';
//ScibXmit('C');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
SciaRegs.SCITXBUF = 'D';
ScibRegs.SCITXBUF = 'D';
//ScibXmit('D');
DELAY_US(100);
}
Xiao Dong:串口速度很慢,往SCITXBUF里面写数据的时候,要判断数据是否已经发送完成准备接收数据,否则就会丢数据。