问题描述:外部向串口持续传送数据,其中数据是分组的,每10个字节为一个数据包,数据包是我自定义的格式。问题是,当串口收到数据触发中断函数时,我先进行判断,如果接收到了10个字节,就转到消息处理函数,解析数据包,然后进行一系列的处理。但问题是,在进行数据包处理时,CPU处于占用状态,串口无法接收数据,当上个包处理完毕后,数据流已经不知道跑到哪里了。
有没有一种多线程的处理方式,或是缓冲区的处理方式。当串口收到数据后,存到缓冲区,然后解析数据包时,串口仍然可以接收数据,暂存到缓冲区。那么缓冲区是否要做一个队列,或是有没有别的处理方式?谢谢。(注:由于数据流时连续不断的,允许个别数据包丢失,因为下次有可能收到这个数据包。)
|
|