MFC下串口通信程序, 接收不到数据

MFC下串口通信程序, 接收不到数据,第1张

最好用线程来接受程序

static UINTRevThreadProc2(LPVOID pParam)

{

HANDLEh_gEvent

DWORDdwBytesRead

OVERLAPPEDOverlapped

BOOL bReadStatus = FALSE

dwBytesRead = 0

//MessageBox("abc")

memset(&Overlapped,0,sizeof(OVERLAPPED))

h_gEvent = NULL

h_gEvent = CreateEvent(

NULL,

TRUE,//手工设置事件有无信号

FALSE,//初始化事件为无信号状态

NULL//无名事件对像

)

if(h_gEvent == NULL) return 0

Overlapped.hEvent = h_gEvent//指定一个I/O *** 作完成后触发的事件

BYTE data[COM_BUFSIZE]

ZeroMemory(data,COM_BUFSIZE)

DWORD dwEvtMask=0

GetCommMask(g_pMainDlg->m_Io0.m_hHandle,&dwEvtMask)

dwEvtMask |=EV_RXCHAR

SetCommMask(g_pMainDlg->m_Io0.m_hHandle,dwEvtMask)

while(g_pMainDlg->m_Io0.m_hHandle)

{

WaitCommEvent(g_pMainDlg->m_Io0.m_hHandle,&dwEvtMask,NULL)

if (g_pMainDlg->m_Io0.m_hHandle == INVALID_HANDLE_VALUE)

{

return 0

}

if ((dwEvtMask&EV_RXCHAR) == EV_RXCHAR)

{

COMSTAT ComStat

DWORD dwLength,dwErrorFlags

ClearCommError(g_pMainDlg->m_Io0.m_hHandle, &dwErrorFlags, &ComStat )

dwLength = ComStat.cbInQue //输入缓冲区接收了多少数据?

if (dwLength >0)

{

//AfxMessageBox("RevThreadProc2")

bReadStatus = ReadFile( g_pMainDlg->m_Io0.m_hHandle, data,dwLength, &dwBytesRead, &Overlapped)

if(!bReadStatus)

{

if(GetLastError()==ERROR_IO_PENDING)

{

while(!GetOverlappedResult(g_pMainDlg->m_Io0.m_hHandle,

&Overlapped, &dwBytesRead, TRUE ))

{

if(GetLastError() == ERROR_IO_INCOMPLETE)

continue

}

for(DWORD i = 0i<dwBytesReadi++)

{

g_pMainDlg->m_RevData[rec_pos_lineless] = data[i]

rec_pos_lineless++

}

if (rec_pos_lineless >= 5)

{

SetStudentUpDownFromCom(g_pMainDlg->m_RevData,rec_pos_lineless)

rec_pos_lineless = 0

}

}

}

else

{

for(DWORD i = 0i<dwBytesReadi++)

{

g_pMainDlg->m_RevData[rec_pos_lineless] = data[i]

if (data[i] == 144 || data[i] == 80 ||data[i] == 255)

{

bvn++

}

rec_pos_lineless++

}

if (bvn >= 3)

{

、、、、、、、、处理接受到的数据

bvn =0

rec_pos_lineless = 0

}

}

}

}

}

ExitThread(0)

CloseHandle(h_gEvent)//读取时的OS

return 0

}

这个是我写的一个线程,可以接受的,希望对你有用

根据 EN 10088-1、EN 10302 和 EN 10269,添加了铌、钒和硼的高合金铬钼锅炉钢 X19CrMoNbVN11-1, 1.4913。专为热改进和渗氮而设计的高合金锅炉耐热钢。 在高温下工作时可耐受600℃,特点是具有良好的抗蠕变性和蠕变极限。 它用于生产能源、海事和航空航天工业中的螺栓、螺母、紧固件、圆盘和涡轮转子,以及注射元件。 钢很难焊接。

X19CrMoNbVN11-1, 1.4913化学成分

X19CrMoNbVN11-1, 1.4913 +QT 力学性能

性能符合EN 10088-1,EN 10269,EN 10302 QT,直径 <160mm

拉伸强度,Rm:900 - 1050 MPa

屈服点,Re:>750 MPa

伸长率,A:>12%

收缩,Z:>40%

抗冲击性,KV20℃:>20J

d性模量,E:216 GPa

热容量,cp20℃:460 J * kg-1 * K-1

热导率,λ:24,0 W * m-1 * K- 1

线膨胀系数,α:10,5 * 10-6 K-1

1.4913 相当于什么牌号?

18Cr11NiMoNbVN, 18Cr12MoVNbN, 2Cr11NiMoNbVN, 1.4916, 17H11MFNb, Z20CDNbV11, Z 20 CDNbV 11, Z21CDNbV11, Z 21 CDNbV 11, MM12G, 4916-600-77-J, X18CrMnMoNbVN12, X 18 CrMnMoNbVN 12, SUH600, F SUH 600, X19CrMoNbVN11-1, X 19 CrMoNbVN11-1, 1.4913, 56 T 5, 56T5, 1.4916, 18Ch11MNFB, 18Х11МНФБ, 2Х11МФБН, ЕП291.


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

原文地址:https://54852.com/bake/11205304.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存