串口数据转化问题

AlexSun 2003-12-29 03:59:18
我用下面的函数把收到的数据存放在buffer中。但是不知道怎么去转化为字符!
帮忙看一下,具体应该怎么做?
int CSerial::ReadData( void *buffer, int limit )
{

if( !m_bOpened || m_hIDComDev == NULL ) return( 0 );

BOOL bReadStatus;
DWORD dwBytesRead, dwErrorFlags;
COMSTAT ComStat;

ClearCommError( m_hIDComDev, &dwErrorFlags, &ComStat );
if( !ComStat.cbInQue ) return( 0 );

dwBytesRead = (DWORD) ComStat.cbInQue;
if( limit < (int) dwBytesRead ) dwBytesRead = (DWORD) limit;

bReadStatus = ReadFile( m_hIDComDev, buffer, dwBytesRead, &dwBytesRead, &m_OverlappedRead );
if( !bReadStatus ){
if( GetLastError() == ERROR_IO_PENDING ){
WaitForSingleObject( m_OverlappedRead.hEvent, 2000 );
return( (int) dwBytesRead );
}
return( 0 );
}

return( (int) dwBytesRead );

}
...全文
68 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
AlexSun 2004-01-05
  • 打赏
  • 举报
回复
高手们帮帮忙。不知道具体怎么做
AlexSun 2003-12-31
  • 打赏
  • 举报
回复
具体怎么强制转化啊?我都试过了还是不行
duyhui 2003-12-30
  • 打赏
  • 举报
回复
把buffer转化为(char*)buffer
然后再读去里面的数据就可以了

因为你的buffer不是指向字符型的,需要转化一下
hujun4u 2003-12-29
  • 打赏
  • 举报
回复

强制性的把*buffer转化为字符类型的就可以使用了!

笨法子:
再申请一个字符类型的内存区
直接拷贝过去
NowCan 2003-12-29
  • 打赏
  • 举报
回复
调试的时候监视一下Buffer,看看是否符合你的要求。
AlexSun 2003-12-29
  • 打赏
  • 举报
回复
已经是这样设置的了,还是不行。
或者是我理解错误?
tobetter 2003-12-29
  • 打赏
  • 举报
回复
你可以将指针设置为字符数组的指针就可以了。

2,643

社区成员

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

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