社区
API 调用
帖子详情
在pb中用Api函数与多个串口通讯
Fancy_Free
2005-04-12 02:55:53
现在可以与一个串口通讯,要实现同时与多个串口通讯,即同时打开,同时发送和同时接收怎么写,求助!
...全文
411
15
打赏
收藏
在pb中用Api函数与多个串口通讯
现在可以与一个串口通讯,要实现同时与多个串口通讯,即同时打开,同时发送和同时接收怎么写,求助!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hwh88888
2005-07-15
打赏
举报
回复
首先定义外部函数:
Function Boolean CloseHandle(ulong hObject ) Library "kernel32.dll"
在窗口中定义如下函数
FUNCTION boolean ReadFile(ulong fhand, &
ref string lpbuffer, &
ulong numbyte, &
ref ulong bytesread, &
ulong lpover) LIBRARY "kernel32.dll"
FUNCTION ulong CreateFileA(ref string fname, &
ulong f_access, &
ulong f_share, &
ulong f_sec, &
ulong f_create, &
ulong f_flag, &
ulong f_attrib) LIBRARY "kernel32.dll"
Function Boolean WriteFile(uLong handle,&
ref string lpbuffer, &
ulong numbytes, &
ref ulong bytesread, &
ulong lpOverLaped) Library "Kernel32.dll"
Function Boolean GetCommProperties(ulong hFile,&
ref COMMPROP lpCommProp ) Library "Kernel32.dll"
Function Boolean BuildCommDCBA(ref string lpDef,&
ref DCB lpDCB ) Library "Kernel32.dll"
Function Boolean SetCommState(ulong hCommDev,&
ref DCB lpdcb ) Library "Kernel32.dll"
Function Boolean GetCommState(ulong hCommDev,&
ref DCB lpdcb ) Library "Kernel32.dll"
Function ulong GetLastError() Library "Kernel32.dll"
Function Boolean SetCommTimeouts(ulong hCommDev,&
ref COMMTIMEOUTS lpctmo ) Library "Kernel32.dll"
Function Boolean PurgeComm(ulong hCommDev, &
ulong fdwAction ) Library "Kernel32.dll"
实例变量定义:
ulong iu_file
string is_buffer//数据缓冲
string is_valid_num = "123" //有效数据
第二是初始设置
string ls_com,ls_commset
dcb lst_dcb
ls_com = "COM1"
//ib_reading = true
//打开串口
iu_file = CreateFileA(ls_com,3221225472,0,0,3,128,0)
if (iu_file < 0) then
messagebox("错误","无法打开" + ls_com + " #" + string(getlasterror (
)),StopSign!)
end if
//初始化DCB
ls_commset = "4800,N,8,1"
if (Not BuildCommDcbA ( ls_commset, lst_dcb )) then
messagebox("错误","无法创建DCB" + " #" + string(getlasterror ( )),StopSign!)
end if
//设置串口
if (Not setcommstate ( iu_file, lst_dcb )) then
messagebox("错误","无法设置串口"+ ls_com + " #" + string(getlasterror (
)),StopSign!)
end if
//设置超时
commtimeouts lst_to
lst_to.readintervaltimeout = 4294967295 //MAXDWORD
//lst_to.readtotaltimeoutconstant = 60000
//lst_to.readtotaltimeoutmultiplier = 10
SetCommTimeouts(iu_file, lst_to)
第三步:读或写(例子中的是读,写可用writefile)
ulong lu_bytesread, lu_numbytes
string ls_buff
ulong lstr_locstruct //注意!这是ULONG 而不是STRUCT
ls_buff = space(100)
setnull(lstr_locstruct)
lu_numbytes = 100
if (not readfile ( iu_file, ls_buff, lu_numbytes, &
lu_bytesread, lstr_locstruct)) then
messagebox("错误","无法读取 #" + string(getlasterror ( )),StopSign!)
timer(0)
else
if( lu_bytesread > 0) then
is_buffer += trim(ls_buff)
mle_1.text += trim(ls_buff)
//处理数据
this.wf_is_valid_receieve ( ) //检验函数
end if
end if
第四步:完成后释放端口
closehandle ( iu_file )
其中有几个结构,如不知道可以查查其他的文档
hwh88888
2005-07-15
打赏
举报
回复
如果用api函数写串口通讯的话,则几个串口与一个串口是一样的写法,再定义的时候多定义几个即可
Fancy_Free
2005-07-15
打赏
举报
回复
有啊,比如说即使不加扩展卡,也可以有两个串口通讯端口的
PHDYCN
2005-07-13
打赏
举报
回复
我也只用过一对一的串口通讯, 一个主机哪来N个串口进行上下位机的通讯啊
Fancy_Free
2005-07-13
打赏
举报
回复
都这么久了,还没有人帮我解决啊?
Fancy_Free
2005-04-20
打赏
举报
回复
请问具体怎么写,有源代码吗?
wu_07
2005-04-19
打赏
举报
回复
将相关操作封装到用户对象,然后
SharedObjectRegister
SharedObjectGet
SharedObjectUnregister
试试
Fancy_Free
2005-04-19
打赏
举报
回复
难到pb就不能吗?
hygougou
2005-04-16
打赏
举报
回复
最好用其他线程比较支持的工具开发
Fancy_Free
2005-04-16
打赏
举报
回复
顶
Fancy_Free
2005-04-15
打赏
举报
回复
没有人知道阿?
j9dai
2005-04-14
打赏
举报
回复
API串口通讯?没用过,帮顶
Fancy_Free
2005-04-14
打赏
举报
回复
我也用过mscomm组件,感觉不太好,所以用api改了,但是只能同时与一个串口通讯,也可以先关闭一个串口再打开另一个串口,但是不知道怎么与多个串口通讯
hornbilltofy
2005-04-13
打赏
举报
回复
同时发送和同时接收是指多线程并行吗?
本人只试过在一个窗口中放了n个ms comm控件,分别设置他们的port,分别操作,分别响应,感觉跟同时差不多,似乎不需要API.
Fancy_Free
2005-04-13
打赏
举报
回复
自己顶一下
PB
串口通讯
API
源代码:项目推荐文章
PB
串口通讯
API
源代码:项目推荐文章 去发现同类优质开源项目:https://gitcode.com/
PB
串口通讯
API
源代码:项目的核心功能/场景 为
PB
开发者提供稳定且功能强大的
串口通讯
解决方案。 项目介绍 在众多编程语言和应用开发环境中,
PB
(PowerBuilder)因其强大的数据处理能力和简洁的界面设计,一直受到开发者的青睐。但在
串口通讯
方面,传统的开发手段往往需要依赖OCX控件,存...
PB
串口通讯
API
源代码
PB
串口通讯
API
源代码 去发现同类优质开源项目:https://gitcode.com/ 本源代码库提供了一个基于
PB
(PowerBuilder)语言的
串口通讯
API
,实现了对串口的高级访问功能。经过修改,现在的数据缓冲区使用BLOB类型,能够发送任意数据,增强了程序的灵活性和适用范围。 主要更新 数据缓冲区由String类型更改为BLOB类型,允许发送如H00等任意数据。 增加了两个新对象:...
PowerBuilder
串口通讯
实例与详解
串行通讯(Serial Communication)是计算机与其他设备之间进行数据交换的常见方式,特别是与远距离设备进行通讯时。
PB
(PowerBuilder)作为一种强大的开发工具,虽然最初并不专注于通讯开发,但其环境对串口操作提供了一定的支持,使得开发者能够通过编写代码来实现数据的发送与接收。
原生
PB
9通过
API
实现多线程串口COM通讯资源介绍
原生
PB
9通过
API
实现多线程串口COM通讯资源介绍 去发现同类优质开源项目:https://gitcode.com/ 原生
PB
9通过
API
实现多线程串口COM通讯资源,为开发者提供了一个稳定、高效的多线程
串口通讯
解决方案。 项目介绍 在现代软件开发中,串口通信作为一种传统的通信方式,在工业控制、数据采集等领域仍然占有重要地位。原生
PB
9通过
API
实现多线程串口COM通讯资源,正是针对这一需求而诞...
PB
使用WINDOWS
API
实现串口通信资源文件:高效稳定的串口通信解决方案
PB
使用WINDOWS
API
实现串口通信资源文件:高效稳定的串口通信解决方案 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在当今的嵌入式系统和工业控制领域,串口通信作为一种基础的通信方式仍然扮演着重要的角色。
PB
使用WINDOWS
API
实现串口通信资源文件正是一个针对这一需求而生的解决方案。该项目提供了一个不依赖MSCOMM32.ocx控件的串口通信程序,通过纯...
API 调用
681
社区成员
4,761
社区内容
发帖
与我相关
我的任务
API 调用
PowerBuilder API 调用
复制链接
扫一扫
分享
社区描述
PowerBuilder API 调用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章