TI中文支持网
TI专业的中文技术问题搜集分享网站

C6747的UART只能接收数据,但是发送的数据PC机接收不到???

第一次写配置接口,请大家指点指点:

按照例程的模板,先配置PSC寄存器,然后配置GPIO复用管脚,其次配置UART寄存器,最后在while循环中进行固定值发送输出,通过PC机的串口调试工具对DSP串口进行输入,具体程序如下:

char info1='$';
char info2='#';
int i=0;
// PSC0-uart0配置
asm(" NOP 5");
*(unsigned int*)(0x01C14038)=0x83E70B13; // KICK0R
*(unsigned int*)(0x01C1403C)=0x95A4F1E0; // KICK1R

asm(" NOP 5");

// uart0复用管脚配置
*(unsigned int*)(0x01C14140)=0x00011000; //PINMUX8

asm(" NOP 5");

// uart0寄存器配置
uartRegs->PWREMU_MGMT=0; // PWREMU_MGMT
uartRegs->MDR=0; // MDR
asm(" NOP 5");
uartRegs->LCR=0x80; // LCR
asm(" NOP 5");
uartRegs->DLL=0x36; // DLL
uartRegs->DLH=0x0; // DLH
asm(" NOP 5");
asm(" NOP 5");
uartRegs->LCR=0x3; // LCR
asm(" NOP 5");
uartRegs->FCR=0x6; // FCR
uartRegs->FCR=0x1; // FCR
uartRegs->PWREMU_MGMT=0x6001; // PWREMU_MGMT
asm(" NOP 5");
asm(" NOP 5");
asm(" NOP 5");
while(1)
{
    for(i=0;i<1000;i++) // 延时
    {
         asm(" NOP 5");
    }
    if((uartRegs->LSR&0x60)>0)
    {
         uartRegs->THR=info1; // 固定值输出
         asm(" NOP 5");
         asm(" NOP 5");
        asm(" NOP 5");
        asm(" NOP 5");
        asm(" NOP 5");
        uartRegs->THR=info2; // 输入值输出
        asm(" NOP 5");
        asm(" NOP 5");
     }
    if((uartRegs->LSR&0x1)==0x1)
    {
       info2=uartRegs->RBR; // 接收输入值
   }
}

连接仿真器进行仿真调试,能够接收PC机发送过来的数据,DSP发给PC机的数据也完成了uartRegs->THR的赋值,但是PC机接收不到。请问哪里没有配置完全吗,或者哪里配置错误吗????

请高手指点一下,这是怎么回事,程序什么地方有错误,硬件肯定是没有问题的,谢谢了!

noaming:

你好,先用示波器测量一下UART数据有没有发送出来。

赞(0)
未经允许不得转载:TI中文支持网 » C6747的UART只能接收数据,但是发送的数据PC机接收不到???
分享到: 更多 (0)