Part Number:CC3220S-LAUNCHXL
Tool/software:TI-RTOS
I apologize for asking this question, as I know it's been addressed a couple times, but I'm still not entirely getting the UART1 on the Launchpad to work.
I started with the MQTT example for the CC3220S using Code Composer Studio.
I changed CC3220S_LaunchXL.c to look like this:
const UARTCC32XX_HWAttrsV1 uartCC3220SHWAttrs[CC3220S_LAUNCHXL_UARTCOUNT] = {
{
.baseAddr = UARTA0_BASE,
.intNum = INT_UARTA0,
.intPriority = (~0),
.flowControl = UARTCC32XX_FLOWCTRL_NONE,
.ringBufPtr = uartCC3220SRingBuffer[CC3220S_LAUNCHXL_UART0],
.ringBufSize = sizeof(uartCC3220SRingBuffer[CC3220S_LAUNCHXL_UART0]),
.rxPin = UARTCC32XX_PIN_04_UART0_RX,
.txPin = UARTCC32XX_PIN_03_UART0_TX,
.ctsPin = UARTCC32XX_PIN_UNASSIGNED,
.rtsPin = UARTCC32XX_PIN_UNASSIGNED
},
{
.baseAddr = UARTA1_BASE,
.intNum = INT_UARTA1,
.intPriority = (~0),
.flowControl = UARTCC32XX_FLOWCTRL_NONE,
.ringBufPtr = uartCC3220SRingBuffer[CC3220S_LAUNCHXL_UART1],
.ringBufSize = sizeof(uartCC3220SRingBuffer[CC3220S_LAUNCHXL_UART1]),
.rxPin = UARTCC32XX_PIN_57_UART1_RX,
.txPin = UARTCC32XX_PIN_55_UART1_TX,
.ctsPin = UARTCC32XX_PIN_UNASSIGNED,
.rtsPin = UARTCC32XX_PIN_UNASSIGNED
}
};
I have a TTL converter on pins 57 and 55, and I verified it worked with pins 4 and 3 first (so I know the TTL converter works)
My Init Looks like this:
UART_Handle InitTerm(void)
{
UART_Params uartParams;
Board_initUART();
UART_Params_init(&uartParams);
uartParams.readMode = UART_MODE_CALLBACK;
uartParams.writeMode = UART_MODE_CALLBACK;
uartParams.writeDataMode = UART_DATA_BINARY;
uartParams.readDataMode = UART_DATA_BINARY;
uartParams.readReturnMode = UART_RETURN_FULL;
uartParams.readEcho = UART_ECHO_OFF;
uartParams.baudRate = 9600;
uartParams.dataLength = UART_LEN_8;
uartParams.stopBits = UART_STOP_ONE;
uartParams.parityType = UART_PAR_NONE;
uartParams.readCallback = &rxCallback;
uartParams.writeCallback = &wrCallback;
uartHandle = UART_open(Board_UART1, &uartParams);
UART_control(uartHandle, UART_CMD_RXDISABLE, NULL);
return(uartHandle);
}
and my Callback handlers look like this:
static int8_t count = 0;
//******************************************************************************
void wrCallback(UART_Handle uartHandle, void *pBuf, uint32_t numBytes)
{
count--;
}
//******************************************************************************
void rxCallback(UART_Handle uartHandle, void *pBuf, uint32_t numBytes)
{
count++;
}
I can never get my callbacks to work. They never get called. Am I forgetting to enable interrupts on that second UART?
What am I missing? Thank you for any help.