When there is miscommunications between the microcontroller and a chip, assuming the electronics are not damaged, there could be a couple of things that can go wrong. Of course, further diagnosis is required. Typical things that could go wrong are (generally, not just in your particular case):
- Connections: Is the chip connected to the correct power supply? Is it soldered correctly? Did you connect the right pins together?
- A tester (multimeter) along with the datasheets are helpful to verify that the connections are alright.
- Bus requirements: Are all requirements of the bus fulfilled? Some buses (e.g. CAN) need terminating resistors. Some have limitations on the the length.
- The microcontroller datasheets usually have information and even useful example pictures that show how the bus must be connected.
- Noise: Assuming no external noise, on high frequencies the bus has to meet other criteria. For example 90 degree bends cause reflection.
- An oscilloscope helps here. If there are reflections, you would see noise over your signal. If the noise makes the signal go as far as reaching the middle voltage (between logical 0 and 1), there is a good chance the hardware would misread the bit. This is especially bad on the clock bus, if any.
- Configuration: Are the pins and peripherals of the microcontroller correctly configured?
- Read the datasheets very carefully and pay attention to every single line. Don't take one line "notes" lightly, they often contain information that if missed would make the peripheral not work. Look at the errata of the microcontroller as well for possible hardware bugs.
Since your bus is UART, I'd say number 2 and 3 are likely not an issue. After checking the connections, I would verify that the configuration is ok. As kinkilla commented, it could very well be that you configured the wrong baud rate for your bus.
If you still cannot figure out what the problem is, it is best to attach an oscilloscope and see what signals are actually on the wires. There are very good oscilloscopes that are expensive (but you may have access to if your lab or work environment has one), but there are also very cheap ones that attach to the computer with USB and all the software runs there. The cheap ones cannot measure with as much detail as the expensive ones, but with UART speeds that is not at all an issue.
That said, you can check with oscilloscope what signal is on the wire. If the signal has a bad shape and is coming from a chip you didn't configure (so we can assume it should work correctly out of the box), it could be that the bus is shorted with another or the microcontroller is badly configured (so there are more than one person driving the bus. If the signal is coming from the microcontroller, there could be similar reasons as well as bad configuration. If the signal is ok, then you are receiving it badly. If the bus is correctly connected to the microcontroller, then the cause is most likely the configuration of the microcontroller.