微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > cc2530-2.3.0-1.4.0 SerialApp例程串口只能收不能发的问题

cc2530-2.3.0-1.4.0 SerialApp例程串口只能收不能发的问题

时间:10-02 整理:3721RD 点击:

如题 cc2530-2.3.0-1.4.0 的SerialApp例程设置为LOOPBACK,即CC2530收到的串口信息回发到PC。
1.调试发现CC2530能收到串口信息,但是没有信息发送到PC。
2.如果我将上述接收到的信息这样发送:
    for(j = 0; j < SerialApp_TxLen; j++)
    {
        U0DBUF = SerialApp_TxBuf[1 + j];
        while(UTX0IF == 0) ;
        UTX0IF = 0;
    }   
  发现UTX0IF一直为0,也就是发不了串口信息。

  请问是什么原因呢?谢谢。

发送函数没什么问题,具体看一下你的关于串口的寄存器配置。

 void Bsp_UartInit(void)
{
    PERCFG &= ~BSP_UART_PERCFG_BIT;    //位置1 P0口P0.2 P0.3
    PxSEL |= BSP_UART_Px_RX_TX;     //P0用作串口
    APCFG &= ~BSP_UART_Px_RX_TX;    //ADC没有用到这几个口

    UxCSR |= CSR_MODE;             //UART方式
    IEN0 |= 0x80;                 //开总中断,接收中断
}

void Bsp_UartOpen(uint8_t baudRate,uint8_t flowcontrol)
{
    if (baudRate == BSP_UART_BAUDRATE_57600 ||
        baudRate == BSP_UART_BAUDRATE_115200)
    {
      UxBAUD = 216;
    }
    else
    {
      UxBAUD = 59;
    }
   
    switch (baudRate)
    {
      case BSP_UART_BAUDRATE_9600:
        UxGCR = 8;
        break;
      case BSP_UART_BAUDRATE_19200:
        UxGCR = 9;
        break;
      case BSP_UART_BAUDRATE_38400:
    
      case BSP_UART_BAUDRATE_57600:
        UxGCR = 10;
        break;
      default:
        UxGCR = 11;
        break;
    }
 
    // 8 bits/char; no parity; 1 stop bit; stop bit hi.
    if (flowcontrol)
    {
      UxUCR = UCR_FLOW | UCR_STOP;//流控制使能
      PxSEL |= BSP_UART_Px_RTS | BSP_UART_Px_CTS;//握手
    }
    else
    {
      UxUCR = UCR_STOP;
    }
    UxCSR |= CSR_RE;//允许接受
    URXxIE = 1; //中断使能
    UTXxIF = 1;  // Prime the ISR pump.
}

找到问题了,例程里打开了流控。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top