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.

CCS/CC2652R: How to use UART_readPolling

Part Number: CC2652R

Tool/software: Code Composer Studio

Please explain how to use the UART_readPolling function.

I modified the echo example of the UART_read blocking to UART_readPolling, but it can't receive any data then.

  • Hi,

    I sent it to a concerned engineer. We will get back to you ASAP. Please bear with us.

    Thanks,

    PM

  • Hi,

    It seems this functionality is presently not supported.

    dev.ti.com/.../_u_a_r_t_c_c26_x_x_8h.html

    Regards,

  • When will it be supported?

  • Hi,

    I am not sure when this will come about. However, you can use the register level driverlib APIs to write a polling UART driver.

    See code below.

    // UART pinmapping
    #define EXAMPLE_PIN_UART_RXD IOID_2
    #define EXAMPLE_PIN_UART_TXD IOID_3
    #define EXAMPLE_PIN_UART_CTS IOID_UNUSED
    #define EXAMPLE_PIN_UART_RTS IOID_UNUSED
    
    int UARTinit(void){
    
    PRCMPowerDomainOn(PRCM_DOMAIN_SERIAL);
    while(!(PRCMPowerDomainStatus(PRCM_DOMAIN_SERIAL) == PRCM_DOMAIN_POWER_ON))
    { }
    
    //
    // Enable the UART clock
    //
    PRCMPeripheralRunEnable(PRCM_PERIPH_UART0);
    
    //
    // Apply clock settings and wait for them to take effect
    //
    PRCMLoadSet();
    while(!PRCMLoadGet())
    { }
    
    //
    // Disable UART function
    //
    UARTDisable(UART0_BASE);
    
    //
    // Disable all UART module interrupts
    //
    UARTIntDisable(UART0_BASE, UART_INT_OE | UART_INT_BE | UART_INT_PE |
    UART_INT_FE | UART_INT_RT | UART_INT_TX |
    UART_INT_RX | UART_INT_CTS);
    
    //
    // Map UART signals to the correct GPIO pins and configure them as
    // hardware controlled.
    //
    IOCPinTypeUart(UART0_BASE,EXAMPLE_PIN_UART_RXD,EXAMPLE_PIN_UART_TXD,
    EXAMPLE_PIN_UART_CTS,EXAMPLE_PIN_UART_RTS);
    
    //
    // Configure the UART for 115,200, 8-N-1 operation.
    // This function uses SysCtrlClockGet() to get the system clock
    // frequency. This could be also be a variable or hard coded value
    // instead of a function call.
    //
    UARTConfigSetExpClk(UART0_BASE, GET_MCU_CLOCK, 115200,
    (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
    UART_CONFIG_PAR_NONE));
    //
    // Enable UART
    //
    UARTEnable(UART0_BASE);
    }

    You can use the following APIs for the communication:

     cThisChar = UARTCharGet(UART0_BASE);

    UARTCharPut(UART0_BASE, cThisChar);

    Thanks.