当BytesAvailableFcn到底运行吗?
14日视图(30天)
显示旧的评论
我写一个GUI, MATLAB之间处理异步通信和串行设备,使用串口类的BytesAvailableFcn回调处理传入消息。我有一个基本的问题对其行为。
回调是配置为运行每次接收一个字节。如果Matlab接收一个字节时执行另一个函数或函数的堆栈,并回调立即运行(异步)和其他中断函数,还是BytesAvailableFcn调得到排队后运行其他功能已经完成了吗?
3评论
答案(1)
沃尔特·罗伯森
约16小时前
定时器函数(某地)记录执行下一行的开头的MATLAB代码执行。我不会感到惊讶如果BytesAvailableFcn是在同样的条件下执行。
澄清一下,如果你有喜欢的东西
();B ();C ();
D ();
和定时器B()执行时,计时器不会故意尽快服务B——规则是完成
不
当前的定时器执行结束时“声明”。为了讨论,第二个假设B是内置的或调用外部的东西不是在MATLAB内部编码。所以C将开始执行。如果C是内置/外就没有机会为中断服务结束前。但如果C是本身在MATLAB进行编码,然后在C会有多个代码行,和一开始执行的第一个,中断服务。的服务将开始第二次MATLAB在一行代码的开始
各级
我
怀疑
BytesAvailableFcn是在同样的条件下执行的。