串口通信中数据的处理

ho7945566 2011-03-16 04:28:32
现在我通过串口通信读取到了 一组字符串,同时也定义了以个 结构体,字符串的数据是根据结构体的变量一一存储的,现在想把数据取出并存放到结构体变量中,变量很多,求解获取方法
...全文
111 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
relive007 2011-03-17
  • 打赏
  • 举报
回复
字符串长度只有20位?还是20字节?
变量有50个?你的意思是有的变量所占空间不满一字节是吧?
ho7945566 2011-03-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 relive007 的回复:]
C/C++ code

// 定义一个结构,你的buffer中的字节顺序要和这个吻合。
#pragma pack(1) // 逐字节对齐,最好加上,否则可能出问题。
struct MyStruct
{
type a;
type b;
...

type h;
};
#pragma pack(8) // 该句也可不写

// 处理
char buffer[len];
……
[/Quote]
根据协议,地址是一一对应的,但是字符串长度只有20位,而变量有50个,怎么分解处理,谢谢
ho7945566 2011-03-17
  • 打赏
  • 举报
回复
哦,不好意思,现在这问题搞清楚了,是20个字节,我现在安地址范围多发送几次就有了,不过现在的问题是我发送了4次,得到4个字符串,前4个字节是握手的数据,并吧需要,我现在要做的是把4个字符串后16位按地址存到buffer[100]中。在传到结构体中,结构体有50个变量。请问如何处理
relive007 2011-03-16
  • 打赏
  • 举报
回复

// 定义一个结构,你的buffer中的字节顺序要和这个吻合。
#pragma pack(1) // 逐字节对齐,最好加上,否则可能出问题。
struct MyStruct
{
type a;
type b;
...

type h;
};
#pragma pack(8) // 该句也可不写

// 处理
char buffer[len];
MyStruct struct1;
read(..., buffer );
memmove( struct1, buffer, len );

// 或者更直接地...
read( ..., (char*)struct1 );
relive007 2011-03-16
  • 打赏
  • 举报
回复


// 定义一个结构,你的buffer中的字节顺序要和这个吻合。
#pragma pack(1) // 逐字节对齐,最好加上,否则可能出问题。
struct MyStruct
{
type a;
type b;
...

type h;
};
#pragma pack(8) // 该句也可不写

// 处理
char buffer[len];
MyStruct struct1;
read(..., buffer );
memmove( struct1, buffer, len );

// 或者更直接地...
read( ..., (char*)struct1 );
bdmh 2011-03-16
  • 打赏
  • 举报
回复
一样的,对着变量,一个个的,取指定类型的长度就是了

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧