I want to print in a terminal the "%"character when I put printf(" %c % ",var); the % doesn't print why??
"At the printf() sentence,it couldn't jump out,as TI never became 1. what's the reason?" Purely a guess, since you have not shown your UART initialization code, but your UART is not initialized properly or you have not set the TI bit in initialization (as required by Keil's putchar routine, presuming that's what you are using).