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

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扩展软件包
关注我们
st-img 微信公众号
st-img 手机版