-1

我从 USART 接收字节并将它们放入内存寄存器。字节是我必须阅读并相应地回复消息的命令。正如我知道如何比较单个字节,会建议我一个算法来比较多个字节。

例如,接收到的字节在 hex 16 04 32 01 00 32 中看起来像这样。它们的长度不同,因此比较会更加困难。

4

1 回答 1

1

您只需要比较足够的字节就可以清楚地识别它是什么类型的消息(在第一步中您不需要关心的实际数据有效负载)。对于大多数串行协议,它只是指定位置的一个字节。

通过查看您的示例消息,我猜第一个字节是消息类型,第二个字节是数据有效负载的长度。如果是这种情况,那么您不需要检查比第一个字节更多的内容并相应地跳转。这主要是通过使用消息类型(第一个字节)索引的跳转表来完成的。

处理实际消息数据有效负载的函数可以对数据做任何它想做的事情,但您不需要检查完整的消息只是为了找出如何处理该消息。

于 2012-09-26T08:51:57.627 回答