MFC串口编程的问题

MFC串口编程的问题,第1张

是不是端口句柄初始化问题

看看下面代码吧

DCB dcb;

m_hIDComDev=CreateFile( "COM2", GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVE RLAPPED, NULL ); // 打开串口,异步 *** 作

if( m_hIDComDev == NULL ) return( FALSE );

dcbDCBlength = sizeof( DCB );

GetCommState( m_hIDComDev, &dcb ); // 获得端口默认设置

dcbBaudRate=CBR_4800;

dcbByteSize=8;

dcbParity= NOPARITY;

。。。。。

WINCE不允许同时打开多个串口进行读写, 那么你就只能搞一个虚拟串口来 *** 作两个设备了,详见:

>

你是在破解别人的通讯协议吗?或者是你自己把协议设计成这样防别人破解?

看你的追问:

“我这边自己在发送之前先改了 接收串口的波特率,但是循环里它执行了一次,后面的发送串口就不发送了。”——执行了一次就不发送了,程序是否卡在了接收函数调用上?这种情况说明你发完之后,接收端口并没有产生数据。(请检查你发送的数据及波特率是否有问题,以致接收端不能产生正确响应)

“还有一个情况就是能够接收,但是改完以后它只能接收到正确的数据仅是第一次,之后收到的数据都是错误的。”——请检查你第一次接收数据,是否把所有返回的数据都接收完,一个byte都没有在接收队列中留下。(如果你不能确保接收队列中是否会剩余数据,请你每次接收之后,将串口队列数据清空,以确保下次接收的时候不会受上次接收结果干扰)

其他情况我就不了解了。

MFC抓?那是不太现实的。

有三种方式:

1、写驱动,进入RING0抓IRP;

2、逆向别的应用程序;

3、使用AccessPort。

3最简单,因为下载下来然后监控指定串口就行了。

以上就是关于MFC串口编程的问题全部的内容,包括:MFC串口编程的问题、WINCE应用程序MFC开发怎么同时读取两个串口的数据、MFC 串口通信设置串口问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9730601.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存