matlab 的串口通讯速度问题 50

用matlab的timer定时中断发送通讯请求,我试过了,确实是可以的。不过有个问题,我跟设备的通讯波特率是38400,命令每帧10字节,加上起始终止位,100Bits,...   用matlab的timer定时中断发送通讯请求,我试过了,确实是可以的。
  不过有个问题,我跟设备的通讯波特率是38400,命令每帧10字节,加上起始终止位,100Bits,也就是说理论上,2.604ms(384Hz)就可以完成一次通讯,考虑到一些延迟和数据处理时间,

  我把通讯周期设定为10ms,结果误码率特别高。周期改为直到30ms才开始比较稳定,改到50ms就完全没有问题了。
  不知道这种延迟是matlab本身各种事件过多造成的?
  还是Windows线程过多造成的?
  还是我的USB-COM转换器处理时间过长造成的?
之前的问题:http://zhidao.baidu.com/question/1830364275704002740.html?sort=6#answer-1718945701
展开
 我来答
tianxiawulang
2014-06-25 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2614万
展开全部
需要你提供更详细的一些信息:
1、在循环体中加drawnow的做法是否可以解决你上次说的问题?
2、你现在用timer的思路是怎样的?它的回调函数与串口对象回调函数的功能怎样划分?
3、你所说的“误码率特别高”具体是什么现象?

串口通讯涉及到很多因素,采取什么样的通讯机制(或者说处理策略)很重要。
我觉得你猜测几个原因中,“matlab本身各种事件过多”、“Windows线程过多”可能性都不是很大,而USB-COM转换涉及到硬件,我不好判断,但也觉得可能性不大。
最好把你的代码贴出来(如果受字数限制,可传到网盘),我才好进一步分析。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
迪凯特科技(北京)有限公司
2023-07-28 广告
单片机串口通信数据丢失的原因可能如下:1. 按键通过串口发送对应命令,第一次按按键串口发送的指令正确且能把数据正确的显示出来,在第二次按按键串口发送的指令出现丢失的状况,可能是因为串口通信的波特率设置不正确。2. 如果单片机和外部设备的波特... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式