| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1148 人关注过本帖
标题:关于在VB中调用API函数实现串口通信的问题?
只看楼主 加入收藏
loria
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-9-8
收藏
 问题点数:0 回复次数:8 
关于在VB中调用API函数实现串口通信的问题?
用MsComm控件实现串口通信的程序已经调试完毕.项目要求通信的标特率是非标准波特率,所以只能重新用API函数写串口通信部分的程序.
在调用API的writefile及readfile函数实现数据的发送和接收的时候,发现一个问题:我把串口的2和3管脚连起来,所收即所发;把我的串口悬空,程序仍然能把我发送的数据返回回来,这是不应该的,貌似也没有实现与我的非标准波特率的设备之间的通信,API函数实现通信的机制与MScomm还不一样?

哪位做过相关方面的项目,给个意见,郁闷这了:(
搜索更多相关主题的帖子: 串口 API 函数 通信 
2007-10-11 20:58
ak990
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-6-18
收藏
得分:0 
最好用mscomm控件
2007-10-12 09:22
loria
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-9-8
收藏
得分:0 
在程序的开始,实用API文本编辑器对PurgeComm进行了声明,

然后调用PurgeComm Com_h, PURGE_TXCLEAR Or PURGE_RXCLEAR 清空串口的发送和接收缓冲区,调试时程序弹出"变量未定义",显示PURGE_TXCLEAR 出错.

PURGE_TXCLEAR 应该是系统默认的变量吧,怎么会提示未定义呢?
2007-10-12 20:06
loria
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-9-8
收藏
得分:0 

用API函数实现串口的通信,基本流程是这样的:

调用CreateFile函数打开串口-----用GetCommState和SetCommState设置串口---SetupComm设置缓冲区----PurgeComm清空缓冲区---设置超时结构体-----SetCommMask使能串口通信事件-----WaitCommEvent等待事件发生---调用WriteFile发送一个字节---重新设置串口波特率---调用WriteFile发送一个数组----调用FlushFileBuffers清空缓冲区---调用ReadFile接收设备的返回值

两次设置的波特率均为非标准波特率,用示波器观察端口的波形,貌似字节没有被成功发送到设备上,但是用readfile可以读取到我两次发送给设备的值,设备无返回(正确情况下设备应该有相应的返回值的)

奇怪了,哪位帮忙分析一下是哪块可能出现错误了吧,应该是个很细节的问题,求救

SOS!!!!!

2007-10-12 20:26
loria
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-9-8
收藏
得分:0 
比如我用writefile函数单独发送出去一个0xF0,不管我怎么改变波特率,串口的发送端观察到的波形都是一样的,丝毫没有变化,这肯定是不对的
2007-10-12 20:28
loria
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-9-8
收藏
得分:0 
发现了一个问题,在我的程序中,我设置了两次波特率,分别以不同的波特率把两个数组发送出去,我改变这两个波特率的大小,观察示波器的波形,发现其实这两个数组都是按照我第二次设置的波特率发送出去的,在两个波特率设置的中间加了延时也仍是一样的效果.
VB调用WIn 32函数的过程很复杂吗?导致在程序进行的过程中不能改变串口的波特率?????!!!!
2007-10-12 20:55
loria
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-9-8
收藏
得分:0 
为什么第一次设置的串口波特率似乎没起作用?程序运行时,发送第一个数组的波特率总是上一次设置的第二个波特率??
2007-10-12 21:15
蛤蟆里的魔王
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-10-12
收藏
得分:0 

看不懂

2007-10-12 21:19
蛤蟆里的魔王
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-10-12
收藏
得分:0 

郁闷啊

2007-10-12 21:25
快速回复:关于在VB中调用API函数实现串口通信的问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045441 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved