社区
硬件/系统
帖子详情
高分:串口控件在win98和win2000下有什么不同?
chaojie2003
2004-04-12 05:39:06
在win2000下用串口控件写的软件通讯正常
在win98下用串口控件写的软件,通讯就经常出错
这主要是什么问题?
...全文
82
11
打赏
收藏
高分:串口控件在win98和win2000下有什么不同?
在win2000下用串口控件写的软件通讯正常 在win98下用串口控件写的软件,通讯就经常出错 这主要是什么问题?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangnanonnet
2004-04-15
打赏
举报
回复
对了,你还可以把串口的超时设的大一些。。这样读写数据都比较稳定,但是速度会受影响,你可以测试一下,找到最优化的值
COMMTIMEOUTS timeouts;
GetCommTimeouts(idComDev,&timeouts);
timeouts.ReadIntervalTimeout=ReadIntervalTimeout;
timeouts.ReadTotalTimeoutMultiplier=ReadTotalTimeoutMultiplier;
timeouts.ReadTotalTimeoutConstant=ReadTotalTimeoutConstant;
return SetCommTimeouts(idComDev,&timeouts);
shanhqk
2004-04-15
打赏
举报
回复
我也是刚开始学习,我想提出我的一点看法:
tempbyte = (para2>>8) & 0xff;位移本身就有一定的问题,存在一定的副面的影响,如果想用的话,我想最好还是改成tempbyte = (para2%256) & 0xff这样的话会好一点,还有就是在初始化串口的时候,在设置延时时,如果设置不好的话,也有一定的问题.我在做的时候出现了类似的问题,主要是因为延时设置的问题.
chaojie2003
2004-04-15
打赏
举报
回复
我用的是vc串口控件和单片机通讯,相互传输数据
void CCOMDlg::OnComm()
{
long len,k;
COleVariant myVar;
COleSafeArray safearray_inp;
BYTE rxdata[5]; //设置BYTE数组
switch(m_msComm.GetCommEvent())
{
case 2://事件值为2表示接收缓冲区内有字符
myVar.Attach (m_msComm.GetInput());
safearray_inp = myVar; //COleVariant型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //验证得到有效数据长度
assert(len == 5);
for(k=0;k<len;k++) //len is 5 in normal case
safearray_inp.GetElement(&k,rxdata+k); //转换为BYTE型数组
HandleCommand(rxdata); //这是接收数据处理函数
break;
}
}
//发送
void CCOMDlg::SendCommand(unsigned char commandID,int para1,int para2)
{
BYTE strBuf[5],tempbyte;
CByteArray OutBuf;
COleVariant varOutput;
//命令字
strBuf[0] = commandID;
//地址高位
tempbyte = (para1>>8) & 0xff;
strBuf[1] = tempbyte;
//地址低位
tempbyte = para1 & 0xff;
strBuf[2] = tempbyte;
//数据高位
tempbyte = (para2>>8) & 0xff;
strBuf[3] = tempbyte;
//数据低位
tempbyte = para2 & 0xff;
strBuf[4] = tempbyte;
OutBuf.SetSize(5);
for(int i=0;i<5;i++)
OutBuf[i] = strBuf[i];
varOutput = OutBuf;
m_msComm.SetOutput(varOutput);
}
也不是完全不能通讯,就是通讯数据错误很多,我怀疑是98和2000对字节最高位的处理不一样
zhangnanonnet
2004-04-14
打赏
举报
回复
没什么影响应该
red-fly
2004-04-14
打赏
举报
回复
我在一个按钮的click里边,通过com1发送数据,然后在一个函数里边接收,试了好多次,只有第一次的时候,收到了正确的字符,后来再怎么试都是乱字符
不知道为什么
还有就是说,串口的接口有9,15,24针的,书上只说了9和24针的,而我买了一个游戏手柄,是15针的,没什么影响吧?
还有,如果我按手柄上边的按钮,通过com口是否可以接收到有关的消息?
(我在游戏手柄的设置里边,有方向钮和1,2,3,4钮可用)
zhangnanonnet
2004-04-14
打赏
举报
回复
还有就是看你的串口设备是什么了,是否支持低速传输
zhangnanonnet
2004-04-14
打赏
举报
回复
是的,但是我用9600通讯没有什么问题,你再检查一下
zhangnanonnet
2004-04-13
打赏
举报
回复
把波特率调低就可以了
itmaster
2004-04-13
打赏
举报
回复
具体出现哪些问题呢?
chaojie2003
2004-04-13
打赏
举报
回复
波特率调低也不行,好象是win98的稳定性没有win2000好吧
chaojie2003
2004-04-12
打赏
举报
回复
有谁遇过这种问题吗?
Win
2000
、NT 环境真正 RPL 无盘
WIN
98
安装指南(转)
此博客为
Win
2000
、NT 环境下真正 RPL 无盘
WIN
98
的安装指南。虽未给出具体安装步骤,但提供了原博客链接,提醒转载需注明出处,否则追究法律责任。
虚拟机中安装
Win
98
本文详细介绍了如何在VMware和Qemu中安装经典操作系统
Win
98
,包括下载、制作可启动光盘、设置虚拟机硬件、安装步骤和驱动程序配置,让读者能在虚拟环境中回味
Win
98
的风采。
Win
2000
/XP与
Win
98
互访
本文主要探讨了
Win
98
与
Win
2000
/XP组建局域网时互访问题及解决办法。如在
Win
2000
/XP中启用Guest用户、检查安全策略限制、停用本地连接防火墙、为
Win
XP添加NetBEUI协议、启用
Win
98
的“文件及打印机共享”等,还提及其他可能影响互访的因素。
win
xp下安装
win
98
/
win
2000
本文提供了一种在不破坏原有
Win
dows XP 系统的前提下,反向安装
Win
dows
98
和
Win
dows
2000
的方法。通过准备启动软盘和 DEBUG 文件,遵循特定步骤,可以实现操作系统反向安装,过程简单明了。
让你的
win
2000
能运行
98
的程序如同xp兼容模式
博客介绍了在
Win
2000
安装小软件无法正常运行时的解决办法,可让
Win
2000
模拟
Win
98
的兼容环境来运行程序。在SP4下的
Win
2000
,直接运行注册regsvr32 c:/
win
nt/apppatch/slayerui.dll,运行后系统右键会多出兼容模式选项,选择
Win
98
即可。
硬件/系统
2,644
社区成员
17,229
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章