SPCOMM 和CH341A 不兼容? delphi 问题解决:SPCOMM在端口号 大于10 的时候会出问题(
这几天delphi做的上位机 和STM32调试遇见奇怪问题
stm32 +CH341a +Spcomm做的串口上位机 一直显示
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_534824.jpg
(原文件名:33.jpg)
下载了网上用SPCOMM做的串口助手
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_534825.jpg
(原文件名:22.jpg)
同样的问题
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_534826.jpg
(原文件名:4444.jpg)
Stm32+pl2303+Spcomm做的串口上位机 没问题
stm32 +CH341a+其它控件做的上位机没问题
------------------------------------------------------------------
CH341A 的驱动已经重装N遍了 ./emotion/em037.gif
http://cache.amobbs.com/bbs_upload782111/files_26/ourdev_534827.jpg
(原文件名:55.jpg) SPCOMM在端口号 大于10 的时候会出问题?????????????? 问题答案出来了::::::::::::::::: SPCOMM在端口号 大于10 的时候会出问题(至少我这个版本是这样子的,郁闷) Delphi使用spcomm实现串口通信解决10个以上串口问题
如果你已经会使用SPCOMM且出现10个以上的串口问题
请改一下串口名
COM1.CommName='\\.\com18';
就这样 加'\\.\'就行了我也不知道什么回事....... 关注,SPCOMM兼容性问题的解决…… 建议使用CPORT \\.\com18是windows里边的SymbolLinkName,这个在WINAPI里边就需要这样写,SPCOMM的这部分的源代码如下:
procedure TComm.StartComm;
var
hNewCommFile: THandle;
begin
// Are we already doing comm?
if (hCommFile <> 0) then
raise ECommsError.Create( 'This serial port already opened' );
hNewCommFile := CreateFile( PChar(FCommName), <------就是这里,要加上\\.\
GENERIC_READ or GENERIC_WRITE,
0, {not shared}
nil, {no security ??}
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED,
0 {template} );
if hNewCommFile = INVALID_HANDLE_VALUE then
raise ECommsError.Create( 'Error opening serial port' );
^^^^^^^^^^^^^^^^^^^^^^^^^^^如果不是SymbolLinkName写法,串口号大于9这里就出错了 谢谢
让我解决了这个问题~
页:
[1]