你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f103 串口通讯 printf 输出中文的问题

[复制链接]
hhhhhhhaa 提问时间:2018-8-24 11:54 /
阅读主题, 点击返回1楼
收藏 评论25 发布时间:2018-8-24 11:54
25个回答
hhhhhhhaa 回答时间:2018-8-24 15:30:04
我知道为什么不能输出汉字了,在keil里的中文是UTF-8的编码格式,一个汉字用16进制表示的话是三个  举个例子吧
比如汉字“大”按照unicode转utf-8的编码规则,汉字使用3字节序列
所以套用三字节转换公式
0800 - FFFF
1110xxxx 10xxxxxx 10xxxxxx
其中用x代表的16位使用unicode相应的位来填充
0x5927转换为2进制0101 1001 0010 0111
填充到上面公式中的x中变成
11100101 10100100 10100111
用16进制表示为E5 A4 A7
而大的AIISC码用16进制表示的话就是  B4  F3
串口调试助手只能把AIISC码格式的16进制转换成汉字,不能把UTF-8类型的16进制汉字转换出来,所以才出现了乱码的现象

用printf发送大

用printf发送大

这是串口调试助手显示出来的 接收到的大的 16进制 和发送过去的大 16进制的比较 ...

这是串口调试助手显示出来的 接收到的大的 16进制  和发送过去的大 16进制的比较 ...
hhhhhhhaa 回答时间:2018-8-24 15:31:01
ls164013 发表于 2018-8-24 15:27
第一次用这个 复制粘贴 出了点意外

加个QQ吧 1561648283
聊聊你怎么发中文的
hhhhhhhaa 回答时间:2018-8-24 16:33:13
ls164013 发表于 2018-8-24 15:14
自己写一个printf输出函数,串口就可以打印中文了

你试试看啊
feixiang20 回答时间:2018-8-24 23:19:51
确认你的编码格式
JuSTDol 回答时间:2018-8-25 07:05:19
可以用友善串口调试助手,没测试过Unicode能否显示,但是界面比这些都优美些。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

stm1024 回答时间:2018-8-25 08:21:03
你要换一个串口通讯的软件

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

hhhhhhhaa 回答时间:2018-9-3 13:07:04
feixiang20 发表于 2018-8-24 23:19
确认你的编码格式

编码格式没有问题,就是编译的时候应该是出的问题
hhhhhhhaa 回答时间:2018-9-3 13:07:24
stm1024 发表于 2018-8-25 08:21
你要换一个串口通讯的软件

跟串口通讯软件没有任何关系
hhhhhhhaa 回答时间:2018-9-3 13:07:44
JuSTDol 发表于 2018-8-25 07:05
可以用友善串口调试助手,没测试过Unicode能否显示,但是界面比这些都优美些。 ...

串口助手没有任何关系
stm1024 回答时间:2018-9-3 14:03:50
hhhhhhhaa 发表于 2018-9-3 13:07
跟串口通讯软件没有任何关系

把你发送的字符串和接收到的字节发出来,我看看
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版