关于串口通讯问题,高分求助!!!

KEW 2003-12-15 03:16:23
我用单片机做了一个东西,然后用vc写了个程序和它通讯。
一开始没有通上的时候,下位一直在发一串特定的数据。
当上位需要和下位通讯的时候,发送一串数据过去,然后就等待握手信号,但是我发现我的readfile老是读到下位一开始没有连接上发送的数据,如果我用pugercomm清除发送缓冲,在接下去的发送接受程序中有可能会无法收到下位发送上来的数据,所以不知道怎么清除接受缓冲,或者读到当前下位发送的数据,请高手解答
...全文
27 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
checkyvc6 2003-12-15
  • 打赏
  • 举报
回复
可能是串口设置的问题
alfwolf 2003-12-15
  • 打赏
  • 举报
回复
可以这样
设置一个循环缓冲区,存放你从串口收到的数据,你可以从循环缓冲区中读取符合你的协议的完整数据帧。
而读串口可以采用单独线程循环读取的方法。
KEW 2003-12-15
  • 打赏
  • 举报
回复
能告诉我问题还有哪里不清楚吗?
KEW 2003-12-15
  • 打赏
  • 举报
回复
是用3线的
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = ODDPARITY;
dcb.StopBits = ONESTOPBIT;

dcb.fRtsControl = RTS_CONTROL_DISABLE;
dcb.fOutxCtsFlow = 0;
dcb.fOutxDsrFlow = 0;
dcb.fInX = dcb.fOutX = 0;
dcb.XonChar = 0x11;
dcb.XoffChar = 0x13;
dcb.XonLim = 3;
dcb.XoffLim = 3;
dcb.fBinary = TRUE;
dcb.fParity = TRUE;
dcb.fNull = FALSE;
采用异步的方式
alfwolf 2003-12-15
  • 打赏
  • 举报
回复
你的上下位串口通讯用3线还是5线,初始化设置合乎要求吗?
还有,你的描述不是很清楚。

18,356

社区成员

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

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