本帖最后由 一叶倾城wwq 于 2018-12-28 09:52 编辑
串口接收数据,比如固定接收30字节,开辟30字节接收缓冲区,由服务器下发到MCU,正常测试方法,也就是接收正确正常指令数据没什么疑问,我的处理方法是接收到最后一个字节后20ms开始处理判断数据,但在写程序时考虑到如果因为一些非人为的因素导致:一直有数据不间断的发过来(<=20ms),持续一千个字节(比如),在防止边界溢出情况下,我的缓冲区不可能处理得了这么多数据,30+1都不行,也就是接收到了错误信息,但可能头30个字节是正确的,后续是错误的,又或者中间30个字节是正确的。
请问:这样的情况如何处理好一些,是直接回复error(虽然这样简单些,但可能不太人性化)?
后注:数据格式如下:帧头、命令类型、长度、数据、校验和、帧尾。
因各位坛友的指教画出中心问题:考虑异常情况下,数据处理跟不上接收的速度,且不能再开缓冲区,都知道便宜的MCU就128RAM
|