我用的DSP 5509a通过CPLD来控制SC16C550B.目前遇到的问题是仪器能收到PC串口发来的数据;而仪器发送数据总不成功。
初始化段:
LCR = 0x80;
DLL = 0x18;
DLM = 0x00;
LCR = 0x03;
FCR = 0x01;
MCR = 0x20;
IER = 0x00;
寄存器的写设置通过读寄存器验证是正确的。而且收数据也没问题。
下面是发送数据到PC段:
for(i = 0; i < 8 ; i++)
{
do
{
uWork = LSR;
} while ( (uWork&0x40) != 0x40 );
THR= 0x55;
}
执行完第一次THR = 0x55后,uWork的值总是0,也就是FIFO总不是为空,发不出去。
|