白小姐六肖中特
  • 已解决 27177 个问题
  • 已帮助 4944 位优秀工程师

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

hangtao 2019-04-02 浏览量:308
printf输出汉字在串口怎么实现
显示全部
单片机 51单片机
0 0 收起

我来回答

所有亮答 数量: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; 
    } 
    ?

    • 发布于2019-04-03
    • 举报
    • 评论 0
    • 3
    • 0

  • 汉字编码和传输也是多个字节数据的,

    printf可以输出多个字节数据,所以关

    键并不是在printf,而是在显示解码处理,

    这和普通内容显示其实没有本质区别。

    • 发布于2019-04-03
    • 举报
    • 评论 0
    • 1
    • 0

  • 直接输入用printf( "汉字" ) ;或者通过字符串输出,string a=“中文”;printf( "%s,a" ) ;
    • 发布于2019-04-03
    • 举报
    • 评论 0
    • 0
    • 0

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

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

    • 发布于2019-04-03
    • 举报
    • 评论 0
    • 0
    • 0

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


    • 发布于2019-04-03
    • 举报
    • 评论 0
    • 0
    • 0

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

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

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

    • 发布于2019-04-06
    • 举报
    • 评论 0
    • 0
    • 0

电烙铁焊接工具套件(30w)
电烙铁焊接工具套件(30w)

产品总数:0个  申请人数:169

距离结束时间:

  • 组团

问题达人换一批

printf输出汉字在串口怎么实现
App
白小姐六肖中特 我的做号方法保证出组六必对 内蒙古11选5前三走势 36棋牌新神兽怎么赢 好彩网首页 内蒙古十一选五跨度走势图 沈阳棋牌游戏开发公司 长沙湖南省福彩中心地址 四川金7乐开奖结果今天 广西11选5一定牛 贵州11选5