一般来讲,如果上位机需要与下位机通信,最底层物理层比较常见的就是串口通信,还有一种比较方便的物理通路就是以太网。
为了通信,制定一个通信协议是很重要的,现有的需求是通过tcp上位机配置下位机的上网方式串口波特率等详细信息,简单制定了一下协议如下:
收藏0 举报
总长度已经标记出来了,是46byte,为了数据处理方便,定义一个结构体来存储数据,最初定义的结构体如下
根据以上规则,为了不传输无用的字节,得出结论:
1.结构体总长度必须是平台CPU位数的整数倍!
2.除了char类型(8位1个字节)不用考虑位对齐,其它类型必须位对齐!
综上以上规律,修改如下:
1.原来的总长度是46,由于不是4的整数倍,增加2位变为整数倍,原先起始位和终止位长度是1位,改为2位。
2.位对齐的原则,修改结构体成员的位置
修改后的结构体如下:
经测试数据已经连续,并且无无用字符出现
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
发帖类勋章
88
4087
2
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号