串口接收限制OnCommunication(WPARAM ch, LPARAM port)

sweedy_cool 2009-06-24 11:06:19
串口通讯使用CSerialPort类,用OnCommunication(WPARAM ch, LPARAM port)在接收文件的时候,发现只能接收4K大小4096,为什么?代码如下:
LONG CCE3GROUNDTESTDlg::OnCommunication(WPARAM ch, LPARAM port)
{
if(port==2|| port==4) //COM2和COM4用来收发文件
{
fwrite(&ch,1,1,fp2);
return 0;
}
else
{
return -1;
}
}
...全文
360 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
MichaelBomb 2009-06-24
  • 打赏
  • 举报
回复
点击在线聊天
sweedy_cool 2009-06-24
  • 打赏
  • 举报
回复
好的 多谢,发你邮箱里?
MichaelBomb 2009-06-24
  • 打赏
  • 举报
回复
发送函数没什么问题啊,怎么联系你,我看看你的程序吧
sweedy_cool 2009-06-24
  • 打赏
  • 举报
回复
我的发送文件函数如下:
void CCE3GROUNDTESTDlg::OnButtonSendfile()
{
FILE *fp;
// sendcount++;
fp=fopen(m_strSendFilePathName,"rb");
fseek(fp,0,SEEK_END);

fplength=ftell(fp);
fseek(fp,0,SEEK_SET);

unsigned char *fpBuff;
fpBuff=(unsigned char*)malloc((fplength+1)*sizeof(unsigned char));
fread(fpBuff,1,fplength,fp);
if (m_Port.InitPort(this, 2, 115200, 'N',8,1,EV_RXFLAG|EV_RXCHAR, fplength))
{
m_Port.StartMonitoring();
m_bSendFile=TRUE;
m_strTempSendFilePathName=m_strSendFilePathName;
m_ctrlEditSendFile.SetWindowText("正在发送......");
m_Port.WriteToPort((LPCTSTR)fpBuff,fplength);
}
else
{
AfxMessageBox("Failed to send file!");
}

delete fpBuff;
}
MichaelBomb 2009-06-24
  • 打赏
  • 举报
回复
你看下自己代码里的SetupComm
sweedy_cool 2009-06-24
  • 打赏
  • 举报
回复
不是阿,CSerialPort类中根本没有SetupComm这个函数。除了发送缓冲区还有别的问题么?
MichaelBomb 2009-06-24
  • 打赏
  • 举报
回复
如果CSerialPort类没有帮你设置,那应该是你自己设置了。
MichaelBomb 2009-06-24
  • 打赏
  • 举报
回复
那肯定是发送缓冲区被设置成了4096了
你可以查看CSerialPort类里的SetupComm函数
是不是这样SetupComm(hCom,4096,4096);
其中第一个4096就是发送缓冲区大小,你可以更改它符合自己需求的就行了。
sweedy_cool 2009-06-24
  • 打赏
  • 举报
回复
奇怪啊 为什么是4K
sweedy_cool 2009-06-24
  • 打赏
  • 举报
回复
自己顶
sweedy_cool 2009-06-24
  • 打赏
  • 举报
回复
高手们,还是没解决呢,谁知道是怎么回事啊?

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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