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

STM32C031C6开发板的UART2的收发问题?

[复制链接]
老牛洋车 提问时间:2025-1-25 16:32 / 已解决

使用的是UART2通讯,通过printf()函数发送字符串时,汉字错码(见下图),应该是KEIL哪里没有设置好的问题。

UART2_02.png

启用了UART2的中断接收,可以接收到串口调试助手的数据,但是缓存区的指针没有归零,下次接收时缓存区中的内容接续(如下图所示),不知道用什么命令来清除缓存区(即让指针归零)。

UART2_03.png

收藏 评论8 发布时间:2025-1-25 16:32

举报

8个回答
STMWoodData 最优答案 回答时间:2025-1-27 12:00:26

老牛洋车 发表于 2025-1-27 10:25
我通过串口助手发送汉字,返回的字符不会乱码。就此判断应该是keil编译产生的问题,但我在keil中找不到 ...

[md]可以用HEX的16进制显示数值看看编码。也可能是你的串口助手编码和keil里面不一样

老牛洋车 回答时间:2025-1-30 12:42:05

经过分析,串口助手接收汉字时错码是字符编码问题造成的:Keil平台编译后的汉字是3字节编码,而串口助手使用的是2字节编码,所以造成单片机发送两个汉字,串口助手收到的是6个字节,却显示成3个字符,如下图所示:

UART2_06.png

STMWoodData 回答时间:2025-1-26 19:18:25

是不是keil 编码用了UTF8

老牛洋车 回答时间:2025-1-27 10:08:40

STMWoodData 发表于 2025-1-26 19:18
是不是keil 编码用了UTF8

选择的是GB2313:

keil_01.png

老牛洋车 回答时间:2025-1-27 10:25:56

我通过串口助手发送汉字,返回的字符不会乱码。就此判断应该是keil编译产生的问题,但我在keil中找不到其他设置的地方。

UART2_04.png

STMWoodData 回答时间:2025-1-27 12:02:48

换个串口助手

老牛洋车 回答时间:2025-1-28 12:09:19

STMWoodData 发表于 2025-1-27 12:02
换个串口助手

谢谢提示!我另找个助手试试。

背影101 回答时间:2025-2-1 23:03:05
签到

所属标签

相似问题

官网相关资源

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