pb串口编程问题

han9703 2009-09-19 06:27:13
我在网上找了一个pb调用串口的控件,控件通过调用windows的API打开串口,但是这个程序只能对COM3和COM5有效,而我需要的端口COM15,代码是这样的

if PortOpen then
messagebox("错误","端口已处于打开状态",StopSign!)
return false
end if
dcb lst_dcb
PortOpen = true
//打开串口
iu_file = CreateFileA(ls_com,3221225472,0,0,3,128,0)//3221225472表示读和写方式访问串口资源,3标识该资源必须存在,128以重叠I/O操作创建串口
if (iu_file < 0) then
messagebox("错误","无法打开" + ls_com + " #" + string(getlasterror ( )),StopSign!)
if PortOpen then closehandle(iu_file)
PortOpen=false
return PortOpen
end if
//初始化DCB
if (Not BuildCommDcbA ( ls_commset, lst_dcb )) then//波特率、奇偶校验、数据位、停止位
messagebox("错误","无法创建DCB" + " #" + string(getlasterror ( )),StopSign!)
if PortOpen then closehandle(iu_file)
PortOpen=false
return PortOpen
end if

//设置串口
if (Not setcommstate ( iu_file, lst_dcb )) then
//messagebox("",string(iu_file))
messagebox("错误","无法设置串口"+ ls_com + " #" + string(getlasterror ( )),StopSign!)
messagebox("",string(iu_file))
if PortOpen then closehandle(iu_file)
PortOpen=false
return PortOpen
end if

//设置超时
commtimeouts lst_to
lst_to.readintervaltimeout = 4294967295 //MAXDWORD
//lst_to.readtotaltimeoutconstant = 60000
//lst_to.readtotaltimeoutmultiplier = 10
SetCommTimeouts(iu_file, lst_to)
CommError=0
return PortOpen

如果ls_com是COM15,setcommstate 这个函数就返回false,getlasterror 返回的是6,我发现COM3和COM5的iu_file值是860而COM15是4294967295
请问有人能知道怎么解决么?
...全文
530 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenjilai 2010-12-06
  • 打赏
  • 举报
回复
回帖是美德。。那个楼主啊。。我最近也在弄串口。能否加我qq?40 4392417
WorldMobile 2009-09-20
  • 打赏
  • 举报
回复
应该是没有这个串口或者参数不对吧

或者把com口用\\.\com来试试
张义雄 2009-09-20
  • 打赏
  • 举报
回复
路过,关注
winwhere 2009-09-19
  • 打赏
  • 举报
回复
能否说的更具体点
han9703 2009-09-19
  • 打赏
  • 举报
回复
问题解决了,对于10以上的COM口要写成\\.\COM15
永生天地 2009-09-19
  • 打赏
  • 举报
回复
没弄过不太会,顶
永生天地 2009-09-19
  • 打赏
  • 举报
回复
没弄过不太会,顶
han9703 2009-09-19
  • 打赏
  • 举报
回复
我现在一添加ole,pb就非法退出,据说是系统问题,又不想重装系统,因此只能调API
pcwe2002 2009-09-19
  • 打赏
  • 举报
回复
看看这个PB如何操作串口,http://hi.baidu.com/tianyistar/blog/item/74de63636ecc8c640d33faa1.html

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧