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

WriteFile 写串口数据写不全,该怎么处理

2013-07-08 
WriteFile 写串口数据写不全用WriteFile往串口发数据,发送的时候用串口监听工具监听,发送41个字节的数据,

WriteFile 写串口数据写不全
用WriteFile往串口发数据,发送的时候用串口监听工具监听,发送41个字节的数据,当波特率是9600的时候,能够全部发送,当波特率改为2400时,只发送出去16个字节。不知道是什么原因。有没有人知道,感谢 WriteFile 串口
[解决办法]
发送超时时间设长
[解决办法]
同意楼上的。
[解决办法]
请在我空间看配置串口的方法

配置串口
C++代码
SetupComm(hCom,1024,1024); //输入缓冲区和输出缓冲区的大小都是1024
 
COMMTIMEOUTS TimeOuts;
//设定读超时
TimeOuts.ReadIntervalTimeout=1000;
TimeOuts.ReadTotalTimeoutMultiplier=500;
TimeOuts.ReadTotalTimeoutConstant=5000;
//设定写超时
TimeOuts.WriteTotalTimeoutMultiplier=500;
TimeOuts.WriteTotalTimeoutConstant=2000;
SetCommTimeouts(hCom,&TimeOuts); //设置超时
 
DCB dcb;
GetCommState(hCom,&dcb);
dcb.BaudRate=9600; //波特率为9600
dcb.ByteSize=8; //每个字节有8位
dcb.Parity=NOPARITY; //无奇偶校验位
dcb.StopBits=TWOSTOPBITS; //两个停止位
SetCommState(hCom,&dcb);
 
PurgeComm(hCom,PURGE_TXCLEAR
[解决办法]
PURGE_RXCLEAR);
编辑 删除
描述:一般用CreateFile打开串口后,可以调用GetCommState函数来获取串口的初始配置。要修改串口的配置,应该先修改DCB结构,然后再调用SetCommState函数设置串口 如果通信的速率较高,则应该设置较大的缓冲区。调用SetupComm函数可以设置串行口的输入和输出缓冲区的大小

热点排行