串口通信中的返回值的长度不确定,如何区分?一个网友的问题!

haoguozhong 2004-07-02 05:44:47
定时发送A指令,每次返回的数据长度不确定,如何对每次所返回的数据进行区分????????
...全文
163 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
htyx 2004-07-07
  • 打赏
  • 举报
回复
哦,定时发送!看错了。那就?头尾都也可能在内容中出现?也就是说可能好多条的回复一起连在一起回来。还没有明确的头尾标示那就没办法。
htyx 2004-07-07
  • 打赏
  • 举报
回复
当然是完善协议了。做到有头有尾有长度有校验,就行了。如果自己能左右协议。那就用问答方式。发出命令接到回复后再发下一条命令。
hejunwu201 2004-07-07
  • 打赏
  • 举报
回复
用取位的方法可以实现,我以前也是遇到这样的问题!呵呵
haoguozhong 2004-07-07
  • 打赏
  • 举报
回复
up
jpyc 2004-07-05
  • 打赏
  • 举报
回复
http://www.56kc.com/web/technology/chuangkou.htm
haoguozhong 2004-07-05
  • 打赏
  • 举报
回复
返回的数据中也有可能出现与开始和结束界定符相同的啊,这种情况怎么办?
old_wei 2004-07-02
  • 打赏
  • 举报
回复
根据接收缓存区读取
brallow 2004-07-02
  • 打赏
  • 举报
回复
不是有界定开始的结束的字符不?你从收到的串中找出这个开始和结束界定符就可以了。
rockmanhqu 2004-07-02
  • 打赏
  • 举报
回复
接收到什吗数据啊?
详细情况?
rockmanhqu 2004-07-02
  • 打赏
  • 举报
回复
根据他的协议进行数据处理。
aiirii 2004-07-02
  • 打赏
  • 举报
回复
>>定时发送A指令,每次返回的数据长度不确定
一般, 有標識開始的字符, 你就可知道開始了,
將接收到的前面的字符去掉, 從開始位開始處理
更新了下。。。 ************************************************************************ 函数名称:SP_InitComm 函数功能:初始化异步窗口操作模块 参数.一:lpComName In/Out:In 可空:N 意思:速率 返回值类型:要读取的串口号码 意思:是否初始化成功 备注: *************************************************************************/ extern "C" __declspec(dllexport) BOOL SP_InitComm(LPCTSTR lpComName); //初始化串口操作 /************************************************************************ 函数名称:SP_CloseComm 函数功能:关闭串口 返回值类型:无 意思: 备注:不在使用串口的时候可以关闭它。不然会造成下次使用出现问题 *************************************************************************/ extern "C" __declspec(dllexport) void SP_CloseComm(); /************************************************************************ 函数名称:SP_ReadComm 函数功能:读取串口数据 参数.一:tszDest In/Out:In/Out 可空:N 意思:要保存到的缓冲区,提供一个缓冲区 参数.二:dwWriteLen In/Out:In/Out 可空:N 意思:读取的预计大小,实际写出大小 返回值类型:逻辑型 意思:是否成功读取 备注: *************************************************************************/ extern "C" __declspec(dllexport) BOOL SP_ReadComm(TCHAR *pTszBuff,DWORD *pdwLen); /************************************************************************ 函数名称:SP_WriteComm 函数功能:异步发送串口数据 参数.一:tszData In/Out:In 可空:N 意思:要发送的数据字符串指针 参数.二:dwWriteLen In/Out:Out 可空:N 意思:实际发送的长度,可空 返回值类型:逻辑型 意思:是否发送成功 备注:如果错误你需要获取错误码来知道为什么错误 *************************************************************************/ extern "C" __declspec(dllexport) BOOL SP_WriteComm(TCHAR *pTszBuff,DWORD *pdwLen); /************************************************************************ 函数名称:SP_GetComCount 函数功能:获取当前系统有多少COM端口 参数.一:ComName In/Out:Out 可空:N 意思:Com字符串名称 返回值类型:int 意思:当前COM端口个数 备注:ComName会返回搜索到的最后一个COM端口名称,然后你可以根据序号来操作 *************************************************************************/ extern "C" __declspec(dllexport) DWORD SP_GetComCount(TCHAR *tszComNumber); //获取错误码 extern "C" __declspec(dllexport) DWORD SP_COM_GetLastError();

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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