I have done significant work in the current environment so I don't think switching to using uTasker would make sense at this point. I have verified that RS-232 signals are delivered to PTC14 on my board but I still don't see my interrupt callback being invoked.
As for the UART setup, I changed the initialization around a bit and now have:
setup the GPIOS:
/* Affects PORTC_PCR14 register */
PORT_HAL_SetMuxMode(PORTC,14u,kPortMuxAlt3);
/* Affects PORTC_PCR15 register */
PORT_HAL_SetMuxMode(PORTC,15u,kPortMuxAlt3);
then initialize the UART to 9600,n,8,1 & set the rx callback:
uart_status_t RFID_UART_Init(void) {
uart_status_t rv;
uart_state_t UartState;
uart_user_config_t RFIDUartConfig = {0};
RFIDUartConfig.baudRate = 9600;
RFIDUartConfig.parityMode = kUartParityDisabled;
RFIDUartConfig.stopBitCount = kUartOneStopBit;
RFIDUartConfig.bitCountPerChar = kUart8BitsPerChar;
rv = UART_DRV_Init(RFID_UART_INSTANCE,&UartState,&RFIDUartConfig);
if (rv != kStatus_UART_Success) {
PRINTF("\r\n ERROR in uart4_init(), rv %d\r\n",rv);
return rv;
}
UART_DRV_InstallRxCallback(RFID_UART_INSTANCE,rfid_callback,RFID_Buff,NULL,true);
return rv;
}
The rfid_callback() looks like:
void rfid_callback(uint32_t instance,
void* RFIDState) {
memcpy(RFIDState,&RFIDdata,sizeof(uart_state_t));
}
where RFIDdata is a global defined like: uart_state_t RFIDdata={0};
but again, my problem is that rfid_callback() isn't getting invoked. What Am I missing?
Maybe enabling the UART4 Rx interrupt?