首先把printf的输出对象从标准输出修改到串口,然后直接使用printf("你好");的方式来带引即可。
修改pinrtf输出可以参考如下方法:
int fputc(int ch FILE *f) { //USART_SendData(USART1 (u8) ch); USART1->DR = (u8) ch; /* Loop until the end of transmission */ while(USART_GetFlagStatus(USART1 USART_FLAG_TXE) == RESET) { } return ch; }
汉字编码和传输也是多个字节数据的,
printf可以输出多个字节数据,所以关
键并不是在printf,而是在显示解码处理,
这和普通内容显示其实没有本质区别。
printf函数本身就是能支持汉字作为其参数的,这里传递进printf的其实是汉字的ASCII码
然后printf函数底层调用的是fputc函数,将这个函数重定义到串口输出就行
printf函数可以输出汉字,因为对于Printf来说,将汉字作为字符串输出,传递过来的是ASCII码。
汉字在存储时,也是16进制的,可以使用GBD码的方式,或是其他的方式,
单片机中的汉字在编译时,就已经编译成了16进制的数据,关键是你的上位机收到后,是不 是支持这种编码方式进行显示了。
printf的汉字与字符串的方式是一样的,printf( "汉字" ) ;就可以了