求思路,串口通信的

wenzhy 2010-03-23 12:28:01
比如串口接收定时数据,每个字符的到来都有事件发生,同时每次接收的数据长度不固定,如何定义每次串口的读取字节数?
这些字节应当如何放置到怎样的数据结构当中? 才能保证获取到连续的数据?
...全文
56 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingxiao66 2010-03-23
  • 打赏
  • 举报
回复
定义一个大一点的缓冲区 存储接收数据
定义当前缓冲区数据长度
char buff[4096]; //大小自己定
char recByte; //定义缓冲区中字节数

每次接收后 依次放到后面
可用定时器或线程 对接收的数据进行处理
Vector_fz 2010-03-23
  • 打赏
  • 举报
回复
用队列存储这些数据
因为队列的特性FIFO,所以队列是最合适的数据结构

取数据时,直接从队列中取出

不过要记得加锁和互斥
zxdlms 2010-03-23
  • 打赏
  • 举报
回复
楼主可以用一个CByteArray作为缓冲区接受数据,然后根据你的通信协议处理CByteArray,取出需要的数据,然后删除。

你的串口线程就一直接收数据就行了,你想处理的时候就到CByteArray中去取需要的。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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