c++开发wince 串口通讯不正常,接收几次后程序跑飞

yaoyg81 2015-08-06 01:30:52
使用顺序
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;
}
...全文
72 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2015-08-07
  • 打赏
  • 举报
回复
估计指针等异常了,多加点日志分析。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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