If you are using NIOS® II processor and you are able to send characters though the JTAG UART but can't receive any, the reason could be that the driver is not using interrupts. If you are using the project option to use the drivers for reduce memory footprint this will enable the setting enable_reduced_device_drivers. This means that interrupts will not be enabled for certain drivers and you will need to use polling mode.
From the BSP makefile (public.mk) inside the NIOS® II project:
Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation.