rtel wrote on Thursday, June 14, 2012:
Just a couple of things to add here:
+ From memory, U1RXREG is in fact a 32 bit register, nine of which can hold data although in most cases the 9th bit will not be used.
+ Unless you have a low data rate, it is not always a good idea to write each received character to a queue because it is inefficient (although extremely convenient). Using a DMA, circular buffer, etc. and a single semaphore to unblock a task is often preferred. I know most of the demos use the queuing method, but most also state it is only done to deliberately load the system for test purposes. Take a look at the transfer modes used by FreeRTOS+IO for more efficient examples.
http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_IO/FreeRTOS_IO_Transfer_Modes.shtml
Regards.