社区
硬件/系统
帖子详情
高分:串口控件在win98和win2000下有什么不同?
chaojie2003
2004-04-12 05:39:06
在win2000下用串口控件写的软件通讯正常
在win98下用串口控件写的软件,通讯就经常出错
这主要是什么问题?
...全文
40
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
打赏
举报
回复
有谁遇过这种问题吗?
高分
二号、
高分
一号、资源三号卫星数据1A、2A级别有什么区别?
高分
二号、
高分
一号、资源三号卫星数据1A、2A级别有什么区别?
高分
二号、
高分
一号、资源三号卫星数据1A级别和2A级别有什么区别? 通俗点讲就是1A级别更原始,没有做正射几何校正,不带有准确的坐标,在后期处理上有更大的空间。2A数据经过了几何校正,具有了相对准确的坐标,但是因为高程数据的问题,偶尔会出现形变的情况。所以我们通常都是订购1A标准级别,后期自己选择需要匹配或者更合适的底图来进行处理,从而获得更好效果的成果数据。 国产卫星资源三号、
高分
一号、...
qt creator在
高分
辨率笔记本上
控件
运行显示不全的问题解决方法
qtcreator运行后
控件
显示不全? 要这样搞一下
学硕计算机考296算
高分
么,考研总分是多少算
高分
?考研340分是什么水平?
原标题:考研总分是多少算
高分
?考研340分是什么水平?每个考研的学生都想考一个
高分
,分数越高代表录取的希望越大,但是考研达到多少分算
高分
呢?有没有衡量考研分数的标准呢?小编为大家整理了关于考研总分
高分
相关的相关信息,一起来看看吧。考研总分是多少算
高分
?想知道考研总分是否算
高分
,需要先了解考研的分数线划分。考研国家线区分为学硕类和专硕类两个
不同
的分数线,其中学硕和专硕又分别按照一区和二区(即A、B区...
关于Qt适配
不同
分辨率和缩放率时可能遇到的问题和解决方案
如果没有特殊的处理,Qt的UI窗口在
不同
的分辨率和缩放率下,其显示效果可能会出现问题,常见的有:子
控件
堆叠,无法显示完整窗口尺寸变大,超出屏幕的显示范围
控件
变形,长宽比不合理界面模糊字体变大,
控件
尺寸却没有变化有两种方式可以对UI界面进行良好的缩放:Qt不做任何事情,由
win
dows系统负责缩放
win
dows系统不做任何事情,由Qt负责进行缩放。
用VS设计
Win
form
高分
屏上
控件
界面布局错乱的问题
1、手动在注册表中添加项 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Win
dows NT\CurrentVersion\Image File Execution Options\devenv.exe] "dpiAwareness"=dword:00000000 2、Bat一键处理(新建文本文件.txt ,将下面代码复制到刚新建的文件里保存,文件后缀改为bat,双击执行即可) reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Micr
硬件/系统
2,640
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章