串口通讯的大数据量发送问题

rocllllll 2007-07-07 09:16:52
我用第三方类CSerialPort实现了PC和单片机的通信,发送和接收数据都没有问题。但是当我发送大数据量时就发现程序有问题(VC提示出错)
(1)、VC中CSerialPort发送数据必须一次发送,不能分开发送。
例如:char chrArr[5]={0x12,0xff,0xfe,0xfe,0xfe};
m_serialport.WriteToPort(chrArr,5);
这样是成功的,如果连续发送5次m_serialport.WriteToPort(0x12,1),则只有
最后一次成功,为什么会这样?
(2)、当chrArr[1024]达到1024时,发送就会失败;我修改了第三方类中
的WriteBufferSize为3072,仍然不成功,为什么,怎么解决?如果我想分开发
送,又怎么实现(因为(1)所叙述的问题,不能分开发送)
(3)、我的波特率目前暂设为1200
请高手帮个忙,分不够可以再加!
...全文
809 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
rocllllll 2007-07-09
  • 打赏
  • 举报
回复
实际测试:计算机的速度和单片机的速度不匹配
还有那个Sleep(20)就可以了(单片机设定的晶振为6M)
兔子-顾问 2007-07-09
  • 打赏
  • 举报
回复
缓存尺寸最好是4k的整数倍。
菜牛 2007-07-08
  • 打赏
  • 举报
回复
你看看WriteToPort的参数类型。
rocllllll 2007-07-08
  • 打赏
  • 举报
回复
void CSerialPort::WriteToPort(unsigned char* string,int n)
void CSerialPort::WriteToPort(LPCTSTR string,int n)
从这能看出什么吗?
coolbixu 2007-07-08
  • 打赏
  • 举报
回复
注意缓冲区大小和一次发送的字节个数。
西山小月 2007-07-08
  • 打赏
  • 举报
回复
如果没有特殊要求的话,中间停顿一下比较好
rocllllll 2007-07-08
  • 打赏
  • 举报
回复
我为了方便就直接写m_serialport.WriteToPort(0x12,1),实际上是这样发送的:
unsigned char chrTemp;
chrTemp=0x12;//要么就是数组,实际发送都是成功的
m_serialport.WriteToPort(&chrTemp,sizeof(chrTemp))
谢谢大家,我会测试一下用Sleep延时
菜牛 2007-07-08
  • 打赏
  • 举报
回复
难道没发现WriteToPort参数是指针么?你用一个0x12值作为参数是什么意思呢?
rotApple 2007-07-08
  • 打赏
  • 举报
回复
同步?
tiger波波 2007-07-08
  • 打赏
  • 举报
回复
如果连续发送5次m_serialport.WriteToPort(0x12,1),则只有
最后一次成功,为什么会这样?

----------------
应该是计算机的速度远大于传口设备的速度,所以每次发送时,要保证上次发送完毕,可以这样试下
for(int i=0; i<5; i++)
{
m_serialport.WriteToPort(chrArr,5);
Sleep(500);
}
rocllllll 2007-07-07
  • 打赏
  • 举报
回复
我测试了"串口精灵"和VC自带的"MSComm控件"
一次发送1K的数据时,全部出错
(1)、"串口精灵"程序直接退出
(2)、"MSComm控件"提示出错

16,472

社区成员

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

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

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