打印
[STM32F1]

STM32向电脑串口循环发送,电脑(如串口助手)不打开串口!发送的数据会不会丢失。

[复制链接]
1525|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sxslyy|  楼主 | 2013-11-22 22:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在的现象是如果不停的发!串口再打开的时候只丢失一个字节!其实的全能收到!请教这其中的工作原理是什么?
沙发
airwill| | 2013-11-23 02:36 | 只看该作者
从串口上位机的角度看:
串口没有打开, 这时候串口还是在工作的, 照样接收数据, 并保存数据缓冲区(由操作系统或驱动程序分配).
串口打开时, 目前都是通知操作系统, 应用程序和串口驱动之间建立了联系. 串口中断事件会触发串口助手接收线程接收来自串口缓冲区的数据.
这样串口打开时应该能够接收到打开之前接收到的仍然保存在串口系统缓冲里的数据.
但是事实上, 通常都是收不到的, 因为串口助手在打开串口时, 一般都会执行一个系统缓冲区初始化的操作.

使用特权

评论回复
板凳
sxslyy|  楼主 | 2013-11-25 21:33 | 只看该作者
版主说的很对,事实上是收不到数据的。问题找到了:我使用的是PL2303转的串口,可能PL2303线有缓存的功能!不能这条线,直接用正常串口就对了!

使用特权

评论回复
地板
coslight| | 2013-11-26 08:05 | 只看该作者
感觉不管是什么串口都会丢失,要不然你也不知道缓存的数据是什么啊,通常初始化串口是都会清除发送和接收缓冲区的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

31

帖子

0

粉丝