Das Problem wird hier immer wieder behandelt...
lcd_puts erwartet wohl einen Zeiger auf einen nullterminierten String und Du übergibst einfach ein unsugned char, das geht nicht.
Du mußt Deinen Wert, den Du vom UART empfangen hast in eine Zeichenkette wandeln.
aus z.B. 123 muß {'1','2','3','\n'} werden.

Dazu ist die Funktion itoa aus der stdlib.h sehr gut geeignet.

Gruß Sebastian