找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 618|回复: 8
打印 上一主题 下一主题
收起左侧

stm32小白,求问怎么给上位机传输的数据换行

[复制链接]
跳转到指定楼层
楼主
ID:1163683 发表于 2025-12-1 19:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:469589 发表于 2025-12-1 21:00 | 只看该作者
最后增加 \r\n 就可以。
回复

使用道具 举报

板凳
ID:1041695 发表于 2025-12-2 20:01 | 只看该作者
GlenXu 发表于 2025-12-1 21:00
最后增加 \r\n 就可以。

正解。回车+换行。另上位机的接收程序有时候也可以设置自动换行(每收到一帧数据自动换行)
回复

使用道具 举报

地板
ID:628113 发表于 2025-12-3 11:26 | 只看该作者
不是吧  ?
我猜 他是问 STM32 接收到上位机的没回车的数据如何换行。
不是要去修改上位机程序。
具体处理这样的:
启用 STM32 串口  IDLE【空闲】中断, 在发生 空闲事件时,
产生一个换行操作就可以了。
回复

使用道具 举报

5#
ID:592807 发表于 2025-12-4 20:32 | 只看该作者
发表于 2025-12-3 11:26
不是吧  ?
我猜 他是问 STM32 接收到上位机的没回车的数据如何换行。
不是要去修改上位机程序。

哎,我以前遇到过这种情况,公司弄了个红外屏幕(就是一个黑板,上和左右红外光发射,下和右有红外光接收,通过红外发送和接收数据处理,算出那个地方有笔书写),没秒钟成千上万个数据从红外屏发过来,通过串口助手打印,真特莫的就是一满屏数字。后来用单片机中转,遇到帧尾j就发送\r\n,遇到空白数据包就不发送
回复

使用道具 举报

6#
ID:744327 发表于 2025-12-5 08:44 | 只看该作者
我也遇到过这种情况,帧尾发送\r\n,也没用
回复

使用道具 举报

7#
ID:592807 发表于 2025-12-5 11:17 | 只看该作者
烈火 发表于 2025-12-5 08:44
我也遇到过这种情况,帧尾发送\r\n,也没用

以前遇到过,两种原因1是软件不行,不识别\r\n(可以识别\r  也可以识别\n,放一起就不识别).另一个就是发送有问题发送长度没算\r\n
回复

使用道具 举报

8#
ID:879809 发表于 2025-12-5 16:31 | 只看该作者
ppcbug 发表于 2025-12-3 11:26
不是吧  ?
我猜 他是问 STM32 接收到上位机的没回车的数据如何换行。
不是要去修改上位机程序。

上位机实时性不好,除非实际通讯数据很少,很长时间才有数据,否则不容易做到精确的时间间隔,你说的这种情况让上位机发\r\n才是正道。
回复

使用道具 举报

9#
ID:1156764 发表于 2025-12-5 18:09 | 只看该作者
是单片机发送数据时添加换行吗?
如果是,
首先要判断发送缓冲区是否满
满了把最后两个字节去掉,添加/r/n
没满正常添加/r/n
其次怎么添加
直接使用拼接的方法 如uart_buf[buf_len++] = '\r'; uart_buf[buf_len++] = '\n';
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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