硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4524|回复: 2
收起左侧

[有问必答] stm32串口发送数据,串口助手hex显示出来怎么解决

[复制链接]

3

主题

6

回帖

3

积分

新手上路

积分
3
发表于 2017-8-3 16:31:27 | 显示全部楼层 |阅读模式
我看了很多例程,居然这个问题很少人解答,不知道是不是太简单了,我想知道的是怎么在串口调试助手16进制显示出来,printf(%02x,a)显示的是ASCII码的,如图
O95M%SU_ECR3U}XGARN$V@T.png
如果选择了hex显示,显示的内容就不一样了。如图
Z]{HA`_5UPE))}OII_}$X)9.png
但是我要的串口调试助手的hex显示:01 03 00 00 00 02 c4 0b ,应该怎么做?我用了寄存器来写,单个显示,就正常,发送多个数据就不行了,代码是
for (i = 0; i < g_tPrint.Txlen; i++)
    {
        //printf(" %02X", g_tPrint.TxBuf);
        USART1->DR= g_tPrint.TxBuf;
    }
因为要发送多个数据,发送多个数据到串口上的话显示的数据是:0B 0B,不是我要的01 03 00 00 00 02 c4 0b
V)N(2`JIPQ9KP5KG$C0U[UV.png
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2017-8-3 17:46:35 | 显示全部楼层
你的代码有问题
你没判断SR寄存器的TXE、TC
因为前面的数据还没处理完就被下一个数据覆盖了,所以只显示最后一个数据
回复

使用道具 举报

3

主题

6

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2017-8-4 09:29:00 | 显示全部楼层

回 cch73cch 的帖子

cch73cch:你的代码有问题
你没判断SR寄存器的TXE、TC
因为前面的数据还没处理完就被下一个数据覆盖了,所以只显示最后一个数据

 (2017-08-03 17:46) 
解决了,谢谢,就是用寄存器写的,要加判断
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-11 18:17 , Processed in 0.252314 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表