单片机串口发送的数据不连续

udbfqp 2008-08-31 08:17:44
情况是:
proteus仿真单片机串口收发数据,和pc的应用程序通信,有握手协议,期望的过程是:1、单片机发送一个开始信号(0x20),2、pc收到后回送一个确认信号(0x06),3、单片机收到确认后发送一串数据,4、pc将收到的这串数据显示(十六进制方式,若长度为1则不显示)。虚拟出一对串口进行仿真。
但是pc接收到数据有时候是连续,有时候不连续。用accessport观察的结果是,有时候一行一个数据,有时候一串数据被分成几串送出去,有时候却正常。导致的结果就是pc显示接收的数据不正常,
仿真平台及工具:proteus7、Virtual.Serial.Ports.Driver.XP、accessport

另外,怎么不能上传附件,,,,,详细情况留个邮箱,我发截图过去。。
...全文
488 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
_l_ 2008-09-21
  • 打赏
  • 举报
回复
定义一种数据格式 连续不断的发送 不停的 接收 直到收到完整的数据为止
dgorux 2008-09-10
  • 打赏
  • 举报
回复
每个完整传送后,最好加一个5ms左右的延时
色郎中 2008-09-03
  • 打赏
  • 举报
回复
把你处理代码发来看看

rayland 2008-09-03
  • 打赏
  • 举报
回复
所谓不连续的情况下,数据总长度是对的吗?
如总长度固定,pc就数数据个数达到后再显示。
udbfqp 2008-09-03
  • 打赏
  • 举报
回复
新的情况是,我要发一个20字节的数据,收到的成了两段,第一段14字节,第二段6字节,硬件测试用accessport监视到的。
谢谢3楼的建议,改天试下。
4楼的朋友,留个邮箱地址,我把vc程序和单片机程序打包发给你?
udbfqp 2008-09-01
  • 打赏
  • 举报
回复
按你的意思是,不用握手协议,直接将数据送出?
我的数据是存在一个数组中的,已经存好的,握手协议是为了确保pc能接收。单片机收到确认后就是一个循环把数据送出,不允许中断的。
另外奇怪的是,我用硬件测试,成功率几乎100%,但是仿真就有问题。。
lbing7 2008-09-01
  • 打赏
  • 举报
回复
这样的协议不太好...


将你的数据都打散了

就好比一个人说话口吃一样

LZ还是把你协议中的话

准备好,一气说完吧

呵呵

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧