这个其实完全看你自己的需求,基本上可以随意定义。
你要知道串口通信协议和其需要传递的数据有关,比如本身只需要传递简单的字符串信息、或者char整形,客户端只是需要简单接收,则不特意定制协议其实就是一种自定义协议。
如果通信双方需要交换数据,且数据宽带超过了1byte,则需要有一个双方发生数据、解析接收到数据的约定,这就是双方的通信协议,比如这里为了交互long数据(通信中只有这个交互需求),规定4byte是一个通信单位,采用大端模式,就是一个很简单的自定义协议。
更复杂的协议可以传递更复杂的数据,比如前面答题的几位提到的MODULEbus协议,不过这个协议因为不光是针对串口的,所以修改也要有方向,主要涉及
1. 地址部分是否需要,单纯的串口通信是点对点的,不需要地址部分,而MODULEbus本身是一种总线协议,是包含地址部分的。
2. 数据信息的定义格式,这个可以结合已有的类型支持进行组合等来实现。