首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

串口接收数据八个字节一组是什么原因

2013-10-24 
串口接收数据8个字节一组是什么原因?发现个很奇怪的现象。串口收数据时,不管一次来了多少个字节,只要是超过

串口接收数据8个字节一组是什么原因?
发现个很奇怪的现象。串口收数据时,不管一次来了多少个字节,只要是超过8个字节的就会给截成几段,按照8个字节一组的方式,比如接收15bytes,就是8+7,每次都这样,但是写入时,是多少个字节就一次性写入多少个字节。不知道什么原因?

我用的不是控件,是ReadFile函数哈、

有知道什么原因的吗?
[解决办法]
你ReadFile、超时设置、以及串口是如何打开的?检测过串口事件吗。这些不清楚 不好说原因
[解决办法]
把ReadFile函数的参数发一下
[解决办法]
你ReadFile的DWORD nNumberOfBytesToRead是不是设置成8了
[解决办法]
楼主上代码,

BOOL WINAPI ReadFile(
  _In_         HANDLE hFile,
  _Out_        LPVOID lpBuffer,
  _In_         DWORD nNumberOfBytesToRead,
  _Out_opt_    LPDWORD lpNumberOfBytesRead,
  _Inout_opt_  LPOVERLAPPED lpOverlapped

);
想看看你怎么填写的
[解决办法]
1. 如果不是你在ReadFile中指定收8字节的话,我猜测这应该与串口驱动有关,RS-232串口硬件模块16550中有16字节的接收FIFO缓冲。驱动程序可设置收几个字节后发硬件中断。通常设8个比较好。---没人能看到微软的源码。
2. 发送是另外一回事,是被操作系统缓冲了。
[解决办法]
这个是可以直接设置的,楼主直接搜索下
[解决办法]
你的下位机是单片机,so that is her style
 

热点排行