【关于CSerialPort串口类不能连续发送数据,大家有什么好的解决方法?】

【关于CSerialPort串口类不能连续发送数据,大家有什么好的解决办法???】
如下:连续发送6次或者几次,都只能接受最前面和最后面的,如果没用延时就只能接收到最后面的疏浚。
我用串口监视工具查看的是直发送了最前面和最后面的数据,中间的数据都没用发送。

CString tempsend;
tempsend="(24106533)";
m_Commport.WriteToPort((char *)(LPCTSTR)tempsend);
Sleep(400);
tempsend="(150632454)";
m_Commport.WriteToPort((char *)(LPCTSTR)tempsend);
Sleep(400);
tempsend="(1062687)";
m_Commport.WriteToPort((char *)(LPCTSTR)tempsend);
Sleep(400);
tempsend="(10677582)";
m_Commport.WriteToPort((char *)(LPCTSTR)tempsend);
Sleep(400);
tempsend="(106457879)";
m_Commport.WriteToPort((char *)(LPCTSTR)tempsend);
Sleep(400);
tempsend="(10677127)";
m_Commport.WriteToPort((char *)(LPCTSTR)tempsend);
------解决思路----------------------
不懂帮你顶下?
是不是发送有最大时间?

------解决思路----------------------
sleep了400,发送之间不会有什么问题,即使下位机有反应,并且使用了485,都不会有什么问题;
但你的这个转换
(char *)(LPCTSTR)tempsend应该有问题,如果是unicode转完之后,不就只发送一个字符?

------解决思路----------------------
跟下位机也有关系吧,不加sleep是不行的
------解决思路----------------------
引用:
Quote: 引用:

sleep了400,发送之间不会有什么问题,即使下位机有反应,并且使用了485,都不会有什么问题;
但你的这个转换
(char *)(LPCTSTR)tempsend应该有问题,如果是unicode转完之后,不就只发送一个字符?

没有啊,我用串口监视查看的都是一个个数字显示的


串口监视什么?
------解决思路----------------------
建议使用PComm,上网下载一下,导入PComm.h和PComm.lib,直接调用打开串口和发送函数,简单又好用
------解决思路----------------------
CSerialPort 有很多版本 
LZ说的这个估计是  WriteToPort 里有清空缓冲区的 PurgeComm 操作, 把WriteToPort 贴出来看看
------解决思路----------------------
你多用一些例如tempsend1,tempsend2...
这样的缓存分别存储数据用来发送试一下