This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

F28335串口中断发送波特率115200,连续给SCITXBUF赋值会丢数据,要每发一个字节,延时100us再发下一个字节,请问这个是TI芯片有问题吗

一连串数据一起发,串口助手只能接收到第一个字节和最后一个字节,而延时发送时没有问题,怀疑串口发送中断有问题,采用查询方式发送出现同样问题,

现在每发一个字节需延迟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);
}