• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

printf输出汉字在串口怎么实现

hangtao 2019-04-02 浏览量:1675
printf输出汉字在串口怎么实现
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:6
  • 首先把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( "汉字" ) ;或者通过字符串输出,string a=“中文”;printf( "%s,a" ) ;

  • printf函数本身就是能支持汉字作为其参数的,这里传递进printf的其实是汉字的ASCII码

    然后printf函数底层调用的是fputc函数,将这个函数重定义到串口输出就行

  • printf函数可以输出汉字,因为对于Printf来说,将汉字作为字符串输出,传递过来的是ASCII码。


  • 汉字在存储时,也是16进制的,可以使用GBD码的方式,或是其他的方式,

    单片机中的汉字在编译时,就已经编译成了16进制的数据,关键是你的上位机收到后,是不 是支持这种编码方式进行显示了。

    printf的汉字与字符串的方式是一样的,printf( "汉字" ) ;就可以了 

相关问题

问题达人换一批

printf输出汉字在串口怎么实现