c++开发wince 串口通讯不正常,接收几次后程序跑飞
使用顺序
p_port -> Activate(); //激活串口
p_port -> WritePort(&send_comm[0],COMM_LONG_SEND2); //发送数据
Sleep(110); //延时110ms
//线程接收
p_port -> ClosePort(); //关串口
以下是接收线程
/******************** 串口 读线程 *******************/
DWORD WINAPI CSerialPort::ReadPortThread(LPVOID lpParameter) //串口读 线程
{
CSerialPort * n_pserial; //类的对象指针
n_pserial = (CSerialPort *)lpParameter; //形参强制转换
BOOL n_read_state; //读 状态
DWORD n_length; //数据长度
while((n_pserial -> m_hComm != INVALID_HANDLE_VALUE) &&
(n_pserial -> m_receiving)) //串口句柄和接收标志同时有效
{
//if(g_read_over_flag != YES)
{
n_read_state = ReadFile(n_pserial -> m_hComm,g_read_buf,
n_pserial -> m_buffersize,&n_length,NULL); //串口读取数据
}
for(UC8 i=0;i<n_length;i++)
{
usart_rec[xp++] = g_read_buf[i]; //调试 待删
}
if(n_read_state)
{
n_read_state = CLEAR; //ReadFile返回值清零
g_read_over_flag = YES; //串口读取结束标志 置位
}
}
return 0;
}