USART1 Rx DMA

I have not been able to get the USART1 DMA Rx TC interrupt to be raised. In the code below the TX TC interrupt fires without a problem however @ no point does DMA2_Stream5_IRQHandler get raised. Also Is there a routine that would allow for a level of abstraction as far as waiting for TC bit to clear in the TX ISR?

void ConfigRxDma( ){DMA_InitTypeDef initStruct;//Set up the RX DMADMA_DeInit(DMA2_Stream5);//Disable the stream.DMA_Cmd(DMA2_Stream5, DISABLE);//Wait for the stream to actually disbalewhile( DMA_GetCmdStatus(DMA2_Stream5) != DISABLE ){//loop}//Set the channelinitStruct.DMA_Channel = DMA_Channel_4;//Set the directioninitStruct.DMA_DIR = DMA_DIR_PeripheralToMemory;//set the address of the first element of the rx buffer as the memory addressinitStruct.DMA_Memory0BaseAddr = (uint32_t)&rxBuffer[0];//Set the dma buffer size....this may have to be changed when we exit setup mode// on the anybus module.initStruct.DMA_BufferSize = (uint32_t)rxBufferSize;//set the peripheral base addressinitStruct.DMA_PeripheralBaseAddr = (uint32_t)(&(USART1->DR));//Disable incrementing the peripheral addressinitStruct.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//Set the DMA so that the memory address inscrements.initStruct.DMA_MemoryInc = DMA_MemoryInc_Enable;//Set the peripheral/memory data size to a byte.initStruct.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;initStruct.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;//Use the circular buffer mode as we keep reloading the tx buffer.initStruct.DMA_Mode = DMA_Mode_Normal;//is this right??//Set High priorityinitStruct.DMA_Priority = DMA_Priority_High;//Enable the FIFO/Set the max threshold.initStruct.DMA_FIFOMode = DMA_FIFOMode_Disable;//DMA_FIFOMode_Enable;initStruct.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;//Should this be 1/4 full like example?//Set single burst transmissioninitStruct.DMA_MemoryBurst = DMA_MemoryBurst_Single;initStruct.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;DMA_Init(DMA2_Stream5, &initStruct);//Enable the USART Rx DMA request.USART_DMACmd(USART1, USART_DMAReq_Rx, ENABLE);//Enable the DMA stream transfer complete interruptDMA_ITConfig(DMA2_Stream5,DMA_IT_TC, ENABLE);//Enable the DMA RX StreamDMA_Cmd(DMA2_Stream5, ENABLE);//Make sure that the stream enables.while( DMA_GetCmdStatus(DMA2_Stream5) != ENABLE ){}}

void ConfigTxDma( ){DMA_InitTypeDef initStruct;//Set up the TX DMADMA_DeInit(DMA2_Stream7);//Wait for the stream to actually disbalewhile( DMA_GetCmdStatus(DMA2_Stream7) != DISABLE ){//loop}//Set the channelinitStruct.DMA_Channel = DMA_Channel_4;//Set the direction.initStruct.DMA_DIR = DMA_DIR_MemoryToPeripheral;initStruct.DMA_Memory0BaseAddr = &txBuffer[0];//Set the size of the dma buffer--this may cause an issue as this changes and// is not set up as a volatile value.initStruct.DMA_BufferSize = txBufferSize;//Set the USART1 Data register as the the peripheral base address (point where data is written)initStruct.DMA_PeripheralBaseAddr = (uint32_t)(&(USART1->DR));//Disable incrementing the peripheral addressinitStruct.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//Set the DMA so that the memory address inscrements.initStruct.DMA_MemoryInc = DMA_MemoryInc_Enable;//Set the peripheral/memory data size to a byte.initStruct.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;initStruct.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;//Use the circular buffer mode as we keep reloading the tx buffer.initStruct.DMA_Mode = DMA_Mode_Normal;//Set High priorityinitStruct.DMA_Priority = DMA_Priority_High;//Enable the FIFO/Set the max threshold.initStruct.DMA_FIFOMode = DMA_FIFOMode_Disable;//DMA_FIFOMode_Enable;initStruct.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;//Should this be 1/4 full like example?//Set single burst transmissioninitStruct.DMA_MemoryBurst = DMA_MemoryBurst_Single;initStruct.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;//Actually set up the DMA Registers.DMA_Init( DMA2_Stream7, &initStruct );//Enable the USART tx DMA request.USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE);//This actually sends the data..//Enable the DMA stream transfer complete interruptDMA_ITConfig(DMA2_Stream7,DMA_IT_TC, ENABLE);//Enable the DMA TX StreamDMA_Cmd(DMA2_Stream7, ENABLE);//Make sure that the stream enables.while( DMA_GetCmdStatus(DMA2_Stream7) != ENABLE ){}}void UartInit(){//Enable periph clocks for port a and UART1RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);/*We are going to have to init the GPIO whichwill be used for the UART port.*/ConfigUartGpio();/*Configure the actual port*/ConfigPort();}//Uart init