OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6563|回复: 11

STM32串口发送问题,发送数据不是一次发送完成的。

[复制链接]

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2020-10-3
在线时间
12 小时
发表于 2022-7-6 15:03:53 | 显示全部楼层 |阅读模式
为什么串口发送数据一帧数据会分两次发送,一帧数据不是连续发送完成的。






4d84d36cbc54e56dad98f02b52e13e0.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8463
金钱
8463
注册时间
2020-5-11
在线时间
3904 小时
发表于 2022-7-7 09:41:56 | 显示全部楼层
若波特率为9600,那么传输一字节的时间约1ms,30字节约30ms,正常啊。
“分两次”只是串口助手的问题,不信就用示波器去看波形。
专治疑难杂症
回复 支持 1 反对 0

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2020-10-3
在线时间
12 小时
 楼主| 发表于 2022-7-6 15:19:37 | 显示全部楼层
大佬们
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2020-10-3
在线时间
12 小时
 楼主| 发表于 2022-7-6 15:21:14 | 显示全部楼层
帮我看看,串口发送的数据是分两次发的,两次中间间隔30ms左右,数据多于32个字节就出现这个问题了,少于32个字节时没有这个问题

回复 支持 反对

使用道具 举报

13

主题

643

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2432
金钱
2432
注册时间
2019-12-28
在线时间
527 小时
发表于 2022-7-7 09:53:18 | 显示全部楼层
建议用示波器直接看看波形怎么样,应该只是串口调试助手的问题导致的
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2020-10-3
在线时间
12 小时
 楼主| 发表于 2022-7-8 09:55:00 | 显示全部楼层
狼里个狼121 发表于 2022-7-7 09:53
建议用示波器直接看看波形怎么样,应该只是串口调试助手的问题导致的

使用pc端串口工具接收到的数据就是分开的,自己写的串口工具。 串口发送数据不应该是连续的吗?
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2020-10-3
在线时间
12 小时
 楼主| 发表于 2022-7-8 10:00:17 | 显示全部楼层
店小12 发表于 2022-7-8 09:55
使用pc端串口工具接收到的数据就是分开的,自己写的串口工具。 串口发送数据不应该是连续的吗?

这是我打印的数据

无标题.png
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2020-10-3
在线时间
12 小时
 楼主| 发表于 2022-7-8 10:09:15 | 显示全部楼层
LcwSwust 发表于 2022-7-7 09:41
若波特率为9600,那么传输一字节的时间约1ms,30字节约30ms,正常啊。
“分两次”只是串口助手的问题,不信 ...

串口调试助手上显示的分两次是我选中时间戳才显示出来的。
我自己写的串口工具中显示是一帧数据被分两次接收。 我写的串口工具是一直接收数据的。分两次接收到一帧数据说明这些数据不是连续发过来的。
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2020-10-3
在线时间
12 小时
 楼主| 发表于 2022-7-8 10:10:40 | 显示全部楼层
LcwSwust 发表于 2022-7-7 09:41
若波特率为9600,那么传输一字节的时间约1ms,30字节约30ms,正常啊。
“分两次”只是串口助手的问题,不信 ...

这是我串口工具上的显示
无标题.png
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2020-10-3
在线时间
12 小时
 楼主| 发表于 2022-7-8 10:12:18 | 显示全部楼层
店小12 发表于 2022-7-8 10:10
这是我串口工具上的显示

还有就是我自己写的串口工具接收别的设备发的数据就是完整的,一次接收。
回复 支持 反对

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8463
金钱
8463
注册时间
2020-5-11
在线时间
3904 小时
发表于 2022-7-8 10:40:56 | 显示全部楼层
店小12 发表于 2022-7-8 10:10
这是我串口工具上的显示

电脑接收串口数据可能与单片机不一样,可能是定时读取,或从第一字节开始计时达到30ms就读取,并不是等待空闲。
这个时候可以上示波器,看每个字节之间的间隔。
或另外用一个单片机来接收数据,并记录每个字节之间的间隔,或利用空闲中断来接收一帧数据看是否完整。
专治疑难杂症
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2020-10-3
在线时间
12 小时
 楼主| 发表于 2022-7-8 10:48:52 | 显示全部楼层
LcwSwust 发表于 2022-7-8 10:40
电脑接收串口数据可能与单片机不一样,可能是定时读取,或从第一字节开始计时达到30ms就读取,并不是等待 ...

哦哦,那我试试空闲中断接收一下数据,看看情况
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 12:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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