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.

6455mcbsp 配置成UART,DX默认输出能配置吗?我用示波器测得默认值是低电平,单UART协议要求空闲状态是高电平,请问怎么设置呢?谢谢

mcbsp 配置成UART,DX默认输出能配置吗?我用示波器测得默认值是低电平,单UART协议要求空闲状态是高电平,请问怎么设置呢?谢谢

  • 这要看管脚是内部上拉还是下拉的,我看McBSP0的TX,RX是上拉的,估计默认是高电平,而MCBSP1是下拉的,那么就是低电平。

    McBSP用做UART,并身是借用软件来实现的,并非硬件的UART,不会考虑UART的特性。

    另外如果不满足,就在外部加强上拉电阻。

  • 我不用edma直接查询发送和接收也是可以的吧?发送的时候查询SPCR1的XRDY位,接收的时候查询RRDY是否为1.这种方式可以吗?

    //发送

    Uart_transmit_data(0x0000); /起始位

    Uart_transmit_data(0xffff);      //0
    Uart_transmit_data(0xffff);      //1
    Uart_transmit_data(0x0000);  //2
    Uart_transmit_data(0xffff);       //3
    Uart_transmit_data(0x0000);  //4
    Uart_transmit_data(0xffff);        //5
    Uart_transmit_data(0x0000);   //6
    Uart_transmit_data(0xffff);        //7


    Uart_transmit_data(0xff);     //停止位
    Uart_transmit_data(0xff);     //停止位

    Uint32 Uart_transmit_data(Uint32 dataout)
    {
    Uint32 data = 0;
    int a ,b;

    a= 1;
    while(data != 0x020000)
    {
    data = SPCR1;
    data= data & 0x020000;
    }
    DXR1 = dataout;
    }

    //接收

    while(1)

    {
    Uart_receive_data(&Spi_rData);
    data_r[i] =Spi_rData;
    i++;
    }

    Uint32 Uart_receive_data(int *SPI_Rd_data)
    {
    while(data != 0x000002)//recevie ready
    {
    data = SPCR1;
    data= data & 0x000002;
    }
    *SPI_Rd_data = DRR1;
    }


  • 你好,你使用C6455的MCBSP成功配置成UART吗?我也采用CPU查询方式发送数据,但示波器抓出的波形,起始位+8个数据+停止位,只有一个数据发出去了,其他都是重复数据,请问配置有哪些会影响,麻烦你能告诉QQ或者微信吗。这个问题困扰很久了,就是调试不通。

  • 你好,你使用C6455的MCBSP成功配置成UART吗?我采用CPU查询方式发送数据,起始位+8个数据+停止位,但示波器抓出的波形只有一个有效数据,其他都是重复数据,请问哪项配置会影响,这个问题困扰很久了,就是调试不通。